com.liferay.adaptive.media.image.internal.handler.AMImageRequestHandler Maven / Gradle / Ivy
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.adaptive.media.image.internal.handler;
import com.liferay.adaptive.media.AMAttribute;
import com.liferay.adaptive.media.AdaptiveMedia;
import com.liferay.adaptive.media.exception.AMRuntimeException;
import com.liferay.adaptive.media.handler.AMRequestHandler;
import com.liferay.adaptive.media.image.configuration.AMImageConfigurationEntry;
import com.liferay.adaptive.media.image.configuration.AMImageConfigurationHelper;
import com.liferay.adaptive.media.image.finder.AMImageFinder;
import com.liferay.adaptive.media.image.internal.configuration.AMImageAttributeMapping;
import com.liferay.adaptive.media.image.internal.processor.AMImage;
import com.liferay.adaptive.media.image.internal.util.Tuple;
import com.liferay.adaptive.media.image.processor.AMImageAttribute;
import com.liferay.adaptive.media.image.processor.AMImageProcessor;
import com.liferay.adaptive.media.processor.AMAsyncProcessor;
import com.liferay.adaptive.media.processor.AMAsyncProcessorLocator;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.repository.model.FileVersion;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import java.io.IOException;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Stream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Adolfo Pérez
* @author Alejandro Tardín
*/
@Component(
immediate = true, property = "adaptive.media.handler.pattern=image",
service = AMRequestHandler.class
)
public class AMImageRequestHandler
implements AMRequestHandler {
@Override
public Optional> handleRequest(
HttpServletRequest request)
throws IOException, ServletException {
Optional>
interpretedPathOptional = _interpretPath(request.getPathInfo());
return interpretedPathOptional.flatMap(
tuple -> {
Optional>
adaptiveMediaOptional = _findAdaptiveMedia(
tuple.first, tuple.second);
adaptiveMediaOptional.ifPresent(
adaptiveMedia -> _processAMImage(
adaptiveMedia, tuple.first, tuple.second));
return adaptiveMediaOptional;
});
}
@Reference(unbind = "-")
public void setAMAsyncProcessorLocator(
AMAsyncProcessorLocator amAsyncProcessorLocator) {
_amAsyncProcessorLocator = amAsyncProcessorLocator;
}
@Reference(unbind = "-")
public void setAMImageConfigurationHelper(
AMImageConfigurationHelper amImageConfigurationHelper) {
_amImageConfigurationHelper = amImageConfigurationHelper;
}
@Reference(unbind = "-")
public void setAMImageFinder(AMImageFinder amImageFinder) {
_amImageFinder = amImageFinder;
}
@Reference(unbind = "-")
public void setPathInterpreter(PathInterpreter pathInterpreter) {
_pathInterpreter = pathInterpreter;
}
private AdaptiveMedia _createRawAdaptiveMedia(
FileVersion fileVersion)
throws PortalException {
Map properties = new HashMap<>();
AMAttribute © 2015 - 2025 Weber Informatics LLC | Privacy Policy