diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml index f479539c..c5024059 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml @@ -3,7 +3,7 @@ 4.0.0 alfresco-transform-core-aio-boot - Alfresco Core All in One Transformer Spring Boot + Alfresco Core All-In-One Transformer Spring Boot jar @@ -14,7 +14,7 @@ - alfresco/alfresco-transform-aio + alfresco/alfresco-transform-core-aio quay.io ${project.artifactId} diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java index 93b79ec0..92badbb8 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java @@ -32,17 +32,26 @@ import static org.alfresco.transformer.fs.FileManager.createAttachment; import static org.alfresco.transformer.fs.FileManager.createSourceFile; import static org.alfresco.transformer.fs.FileManager.createTargetFile; import static org.alfresco.transformer.fs.FileManager.createTargetFileName; +import static org.alfresco.transformer.util.RequestParamMap.SOURCE_ENCODING; +import static org.alfresco.transformer.util.RequestParamMap.SOURCE_EXTENSION; +import static org.alfresco.transformer.util.RequestParamMap.SOURCE_MIMETYPE; +import static org.alfresco.transformer.util.RequestParamMap.TARGET_EXTENSION; +import static org.alfresco.transformer.util.RequestParamMap.TARGET_MIMETYPE; +import static org.alfresco.transformer.util.RequestParamMap.TEST_DELAY; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; import static org.springframework.http.HttpStatus.OK; import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE; import java.io.File; +import java.util.List; import java.util.Map; import java.util.Arrays; import java.util.HashMap; -import java.util.Iterator; import javax.servlet.http.HttpServletRequest; +import org.alfresco.transform.exceptions.TransformException; import org.alfresco.transformer.logging.LogEntry; import org.alfresco.transformer.probes.ProbeTestTransform; import org.alfresco.transformer.transformers.AllInOneTransformer; @@ -61,20 +70,6 @@ public class AIOController extends AbstractTransformerController { private static final Logger logger = LoggerFactory.getLogger(AIOController.class); - //TODO Should these be moved to the AbstractTransformerController or are they present in the transform.client? They are used by most controllers... - private static final String SOURCE_ENCODING = "sourceEncoding"; - private static final String SOURCE_EXTENSION = "sourceExtension"; - private static final String TARGET_EXTENSION = "targetExtension"; - private static final String TARGET_MIMETYPE = "targetMimetype"; - private static final String SOURCE_MIMETYPE = "sourceMimetype"; - private static final String TEST_DELAY = "testDelay"; - private static final String[] UNWANTED_OPTIONS = {SOURCE_EXTENSION, - TARGET_EXTENSION, - TARGET_MIMETYPE, - SOURCE_MIMETYPE, - TEST_DELAY - }; - @Autowired private AllInOneTransformer transformer; @@ -94,18 +89,23 @@ public class AIOController extends AbstractTransformerController public void processTransform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype, Map transformOptions, Long timeout) { - debugLogTransform("Processing transform", sourceMimetype, targetMimetype, transformOptions); + logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + + " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); + final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); transformOptions.put(AllInOneTransformer.TRANSFORM_NAME_PARAMETER, transform); - try { transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions); - } - catch (Exception e) + } + catch (IllegalArgumentException e) { - logger.error(e.getMessage(), e); + throw new TransformException(BAD_REQUEST.value(), e.getMessage(), e); + } + catch (Exception e) + { + throw new TransformException(INTERNAL_SERVER_ERROR.value(), e.getMessage(), e); } @@ -134,7 +134,7 @@ public class AIOController extends AbstractTransformerController } catch(Exception e) { - logger.error(e.getMessage(), e); + throw new TransformException(INTERNAL_SERVER_ERROR.value(), e.getMessage(), e); } } @@ -144,19 +144,22 @@ public class AIOController extends AbstractTransformerController @PostMapping(value = "/transform", consumes = MULTIPART_FORM_DATA_VALUE) public ResponseEntity transform(HttpServletRequest request, @RequestParam("file") MultipartFile sourceMultipartFile, - @RequestParam(TARGET_EXTENSION) String targetExtension, - @RequestParam(TARGET_MIMETYPE) String targetMimetype, @RequestParam(SOURCE_MIMETYPE) String sourceMimetype, - @RequestParam Map transformOptions, + @RequestParam(TARGET_MIMETYPE) String targetMimetype, + @RequestParam(TARGET_EXTENSION) String targetExtension, + @RequestParam Map requestParameters, @RequestParam (value = TEST_DELAY, required = false) Long testDelay) { - // TODO - remove this logginng - debugLogTransform("Entering request with: ", sourceMimetype, targetMimetype, transformOptions); + debugLogTransform("Request parameters: ", sourceMimetype, targetMimetype, targetExtension, requestParameters); + //Remove all required parameters from request parameters to get the list of options + List optionsToFilter = Arrays.asList(SOURCE_EXTENSION, TARGET_EXTENSION, TARGET_MIMETYPE, + SOURCE_MIMETYPE, TEST_DELAY); + Map transformOptions = new HashMap<>(requestParameters); + transformOptions.keySet().removeAll(optionsToFilter); + transformOptions.values().removeIf(v -> v.isEmpty()); - //Using @RequestParam Map will gather all text params, including those specified seperately above. - removeUnwantedOptions(transformOptions, UNWANTED_OPTIONS, true); final String targetFilename = createTargetFileName( sourceMultipartFile.getOriginalFilename(), targetExtension); @@ -164,24 +167,25 @@ public class AIOController extends AbstractTransformerController final File sourceFile = createSourceFile(request, sourceMultipartFile); final File targetFile = createTargetFile(request, targetFilename); - // TODO Currently sourceMimetype and targetMimetype could be an empty string how does this affect getting the name? - // not all controllers take these from the request? Do requests intended for these transforms provide these? - final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); + final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); transformOptions.put(AllInOneTransformer.TRANSFORM_NAME_PARAMETER, transform); - // TODO - remove this logginng - debugLogTransform("After filtering props request with: ", sourceMimetype, targetMimetype, transformOptions); + debugLogTransform("Performing transform with parameters: ", sourceMimetype, targetMimetype, + targetExtension, requestParameters); try { transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions); } - catch (Exception e) + catch (IllegalArgumentException e) { - logger.error(e.getMessage(), e); + throw new TransformException(BAD_REQUEST.value(), e.getMessage(), e); + } + catch (Exception e) + { + throw new TransformException(INTERNAL_SERVER_ERROR.value(), e.getMessage(), e); } - final ResponseEntity body = createAttachment(targetFilename, targetFile); LogEntry.setTargetSize(targetFile.length()); @@ -191,39 +195,13 @@ public class AIOController extends AbstractTransformerController return body; } - private void debugLogTransform(String message, String sourceMimetype, String targetMimetype, Map transformOptions) { + private void debugLogTransform(String message, String sourceMimetype, String targetMimetype, String targetExtension, + Map transformOptions) { if (logger.isDebugEnabled()) { logger.debug( - "{} : sourceMimetype: '{}', targetMimetype: '{}', transformOptions: '{}'", - message, sourceMimetype, targetMimetype, transformOptions); - } - } - - /** - * Removes entries from transformOptions that have keys that match a value - * contained in unwantedStrings. - * Entries that contain empty strings can optionally be removed. - * - * @param transformOptions - * @param unwantedStrings - * @param emptyStrings - */ - private void removeUnwantedOptions(Map transformOptions, String[] unwantedStrings, boolean emptyStrings) - { - for (Iterator> iter = transformOptions.entrySet().iterator();iter.hasNext();) - { - Map.Entry entry = iter.next(); - if (entry.getValue().isEmpty() || Arrays.asList(unwantedStrings).contains(entry.getKey())) - { - iter.remove(); - if (logger.isDebugEnabled()) - { - logger.debug("Key={} has been removed from the provided RequestParameters and it was passed value={}", - entry.getKey(), entry.getValue() - ); - } - } + "{} : sourceMimetype: '{}', targetMimetype: '{}', targetExtension: '{}', transformOptions: '{}'", + message, sourceMimetype, targetMimetype, targetExtension, transformOptions); } } } diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AbstractTransformer.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AbstractTransformer.java index aff9f669..ab299cbb 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AbstractTransformer.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AbstractTransformer.java @@ -72,9 +72,6 @@ public abstract class AbstractTransformer implements Transformer return transformConfig; } - /* - * TODO - Override default config name by a configurable location defined by a property - */ private TransformConfig loadTransformConfig() throws Exception { String configFileName = getTransformerConfigPrefix() + TRANSFORMER_CONFIG_SUFFIX; diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/ImageMagickAdapter.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/ImageMagickAdapter.java index 7935131d..9b57a22d 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/ImageMagickAdapter.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/ImageMagickAdapter.java @@ -26,6 +26,24 @@ */ package org.alfresco.transformer.transformers; +import static org.alfresco.transformer.util.RequestParamMap.ALLOW_ENLARGEMENT; +import static org.alfresco.transformer.util.RequestParamMap.ALPHA_REMOVE; +import static org.alfresco.transformer.util.RequestParamMap.AUTO_ORIENT; +import static org.alfresco.transformer.util.RequestParamMap.COMMAND_OPTIONS; +import static org.alfresco.transformer.util.RequestParamMap.CROP_GRAVITY; +import static org.alfresco.transformer.util.RequestParamMap.CROP_HEIGHT; +import static org.alfresco.transformer.util.RequestParamMap.CROP_PERCENTAGE; +import static org.alfresco.transformer.util.RequestParamMap.CROP_WIDTH; +import static org.alfresco.transformer.util.RequestParamMap.CROP_X_OFFSET; +import static org.alfresco.transformer.util.RequestParamMap.CROP_Y_OFFSET; +import static org.alfresco.transformer.util.RequestParamMap.END_PAGE; +import static org.alfresco.transformer.util.RequestParamMap.MAINTAIN_ASPECT_RATIO; +import static org.alfresco.transformer.util.RequestParamMap.RESIZE_HEIGHT; +import static org.alfresco.transformer.util.RequestParamMap.RESIZE_PERCENTAGE; +import static org.alfresco.transformer.util.RequestParamMap.RESIZE_WIDTH; +import static org.alfresco.transformer.util.RequestParamMap.START_PAGE; +import static org.alfresco.transformer.util.RequestParamMap.THUMBNAIL; +import static org.alfresco.transformer.util.RequestParamMap.TIMEOUT; import static org.alfresco.transformer.util.Util.stringToInteger; import static org.alfresco.transformer.util.Util.stringToLong; @@ -41,27 +59,6 @@ public class ImageMagickAdapter extends AbstractTransformer private static String CONFIG_PREFIX = "imagemagick"; private ImageMagickCommandExecutor commandExecutor; - //TODO move key strings to a central class - private static final String START_PAGE = "startPage"; - private static final String END_PAGE = "endPage"; - private static final String ALPHA_REMOVE = "alphaRemove"; - private static final String AUTO_ORIENT = "autoOrient"; - private static final String CROP_GRAVITY = "cropGravity"; - private static final String CROP_WIDTH = "cropWidth"; - private static final String CROP_HEIGHT = "cropHeight"; - private static final String CROP_PERCENTAGE = "cropPercentage"; - private static final String CROP_X_OFFSET = "cropXOffset"; - private static final String CROP_Y_OFFSET = "cropYOffset"; - private static final String THUMBNAIL = "thumbnail"; - private static final String RESIZE_WIDTH = "resizeWidth"; - private static final String RESIZE_HEIGHT = "resizeHeight"; - private static final String RESIZE_PERCENTAGE = "resizePercentage"; - private static final String ALLOW_ENLARGEMENT = "allowEnlargement"; - private static final String MAINTAIN_ASPECT_RATIO = "maintainAspectRatio"; - private static final String COMMAND_OPTIONS = "commandOptions"; - private static final String TIMEOUT_REQUEST_PARAM = "timeOut"; - - public ImageMagickAdapter() throws Exception { super(); @@ -105,7 +102,7 @@ public class ImageMagickAdapter extends AbstractTransformer stringToInteger(transformOptions.get(END_PAGE)) ); - Long timeout = stringToLong(transformOptions.get(TIMEOUT_REQUEST_PARAM)); + Long timeout = stringToLong(transformOptions.get(TIMEOUT)); commandExecutor.run(options, sourceFile, pageRange, targetFile, timeout); } diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/PdfRendererAdapter.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/PdfRendererAdapter.java index f4514645..7d2b8e69 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/PdfRendererAdapter.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/PdfRendererAdapter.java @@ -26,6 +26,12 @@ */ package org.alfresco.transformer.transformers; +import static org.alfresco.transformer.util.RequestParamMap.ALLOW_PDF_ENLARGEMENT; +import static org.alfresco.transformer.util.RequestParamMap.HEIGHT_REQUEST_PARAM; +import static org.alfresco.transformer.util.RequestParamMap.MAINTAIN_PDF_ASPECT_RATIO; +import static org.alfresco.transformer.util.RequestParamMap.PAGE_REQUEST_PARAM; +import static org.alfresco.transformer.util.RequestParamMap.TIMEOUT; +import static org.alfresco.transformer.util.RequestParamMap.WIDTH_REQUEST_PARAM; import static org.alfresco.transformer.util.Util.stringToLong; import java.io.File; @@ -39,15 +45,6 @@ public class PdfRendererAdapter extends AbstractTransformer { private static String CONFIG_PREFIX = "pdfrenderer"; private PdfRendererCommandExecutor pdfExecutor; - - //TODO move key strings to a central class - private final static String PAGE_REQUEST_PARAM = "page"; - private final static String WIDTH_REQUEST_PARAM = "width"; - private final static String HEIGHT_REQUEST_PARAM = "height"; - private final static String ALLOW_PDF_ENLARGEMENT = "allowPdfEnlargement"; - private final static String MAINTAIN_PDF_ASPECT_RATIO = "maintainPdfAspectRatio"; - private final static String TIMEOUT_REQUEST_PARAM = "timeout"; - public PdfRendererAdapter() throws Exception { @@ -75,7 +72,7 @@ public class PdfRendererAdapter extends AbstractTransformer .withMaintainPdfAspectRatio(transformOptions.get(MAINTAIN_PDF_ASPECT_RATIO)) .build(); - Long timeout = stringToLong(transformOptions.get(TIMEOUT_REQUEST_PARAM)); + Long timeout = stringToLong(transformOptions.get(TIMEOUT)); pdfExecutor.run(options, sourceFile, targetFile, timeout); } diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/Transformer.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/Transformer.java index 0233f2fc..8faca730 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/Transformer.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/Transformer.java @@ -35,11 +35,6 @@ import java.util.Map; /** * Interface for transformers which can perform transformations and specify their own supported configuration. - * - * TODO - This could be implemented by each individual Transform engine in its own module - * and used by controllers for simplicity and clarity. Controllers could be made generic - * - * @author eknizat */ public interface Transformer { @@ -51,10 +46,6 @@ public interface Transformer /** * Implementation of the actual transformation. * - * - * TODO - Do we really need the sourceMimetype and targetMimetype as separate arguments? - * they could be passed in parameters with predefined keys like TRANSFORM_NAME_PARAMETER - * * @param sourceFile * @param targetFile * @param transformOptions @@ -67,8 +58,6 @@ public interface Transformer /** * @return Supported config for the transformer implementation. * - * TODO - maybe this does not have to be part of the common transform interface? - * */ TransformConfig getTransformConfig(); diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/test/java/org/alfresco/transformer/transformers/AllInOneTransformerTest.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/test/java/org/alfresco/transformer/transformers/AllInOneTransformerTest.java index d08391c7..b947f40d 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/test/java/org/alfresco/transformer/transformers/AllInOneTransformerTest.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/test/java/org/alfresco/transformer/transformers/AllInOneTransformerTest.java @@ -80,7 +80,6 @@ public class AllInOneTransformerTest return new String(Files.readAllBytes(file.toPath()), encoding); } - // TODO - add more thorough test @Test public void testConfigAggregation() throws Exception { diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml index 6d7c1b47..320d4c59 100644 --- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml +++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml @@ -1,7 +1,7 @@ 4.0.0 alfresco-transform-imagemagick-boot - Alfresco ImageMagick Transformer SpringBoot + Alfresco ImageMagick Transformer Spring Boot jar diff --git a/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml b/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml index 1a1b6a81..d8f6e886 100644 --- a/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml +++ b/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml @@ -3,7 +3,7 @@ 4.0.0 alfresco-transform-misc-boot - Alfresco Docker Miscellaneous Transformers + Alfresco Miscellaneous Transformer Spring Boot jar diff --git a/alfresco-transform-misc/alfresco-transform-misc/pom.xml b/alfresco-transform-misc/alfresco-transform-misc/pom.xml index 9e22e212..2a57f185 100644 --- a/alfresco-transform-misc/alfresco-transform-misc/pom.xml +++ b/alfresco-transform-misc/alfresco-transform-misc/pom.xml @@ -3,7 +3,7 @@ 4.0.0 alfresco-transform-misc - Alfresco Miscellaneous Transformers + Alfresco Miscellaneous Transformer jar diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformRegistryImpl.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformRegistryImpl.java index efa3ade5..f08f4cea 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformRegistryImpl.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformRegistryImpl.java @@ -40,10 +40,12 @@ import org.alfresco.transform.client.registry.TransformCache; import org.alfresco.transform.exceptions.TransformException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.core.io.ResourceLoader; /** * Used by clients to work out if a transformation is supported based on the engine_config.json. @@ -52,13 +54,22 @@ public class TransformRegistryImpl extends AbstractTransformRegistry { private static final Logger log = LoggerFactory.getLogger(TransformRegistryImpl.class); - // TODO - do we really need this string? + @Autowired + ResourceLoader resourceLoader; + @Value("${transform.config.location:classpath:engine_config.json}") private String locationFromProperty; - @Value("${transform.config.location:classpath:engine_config.json}") private Resource engineConfig; + @PostConstruct + public void afterPropertiesSet() + { + engineConfig = resourceLoader.getResource(locationFromProperty); + TransformConfig transformConfig = getTransformConfig(); + registerAll(transformConfig, null, locationFromProperty); + } + // Holds the structures used by AbstractTransformRegistry to look up what is supported. // Unlike other sub classes this class does not extend Data or replace it at run time. private TransformCache data = new TransformCache(); @@ -74,17 +85,10 @@ public class TransformRegistryImpl extends AbstractTransformRegistry catch (IOException e) { throw new TransformException(INTERNAL_SERVER_ERROR.value(), - "Could not read " + engineConfig.getDescription(), e); + "Could not read " + locationFromProperty, e); } } - @PostConstruct - public void afterPropertiesSet() - { - TransformConfig transformConfig = getTransformConfig(); - registerAll(transformConfig, null, locationFromProperty); - } - @Override public TransformCache getData() { diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/util/RequestParamMap.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/util/RequestParamMap.java new file mode 100644 index 00000000..db414cd5 --- /dev/null +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/util/RequestParamMap.java @@ -0,0 +1,60 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 200 Alfresco Software Limited + * %% + * This file is part of the Alfresco software. + * - + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * - + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * - + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * - + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + * #L% + */ +package org.alfresco.transformer.util; + +public interface RequestParamMap +{ + String SOURCE_ENCODING = "sourceEncoding"; + String SOURCE_EXTENSION = "sourceExtension"; + String SOURCE_MIMETYPE = "sourceMimetype"; + String TARGET_EXTENSION = "targetExtension"; + String TARGET_MIMETYPE = "targetMimetype"; + String TEST_DELAY = "testDelay"; + String PAGE_REQUEST_PARAM = "page"; + String WIDTH_REQUEST_PARAM = "width"; + String HEIGHT_REQUEST_PARAM = "height"; + String ALLOW_PDF_ENLARGEMENT = "allowPdfEnlargement"; + String MAINTAIN_PDF_ASPECT_RATIO = "maintainPdfAspectRatio"; + String START_PAGE = "startPage"; + String END_PAGE = "endPage"; + String ALPHA_REMOVE = "alphaRemove"; + String AUTO_ORIENT = "autoOrient"; + String CROP_GRAVITY = "cropGravity"; + String CROP_WIDTH = "cropWidth"; + String CROP_HEIGHT = "cropHeight"; + String CROP_PERCENTAGE = "cropPercentage"; + String CROP_X_OFFSET = "cropXOffset"; + String CROP_Y_OFFSET = "cropYOffset"; + String THUMBNAIL = "thumbnail"; + String RESIZE_WIDTH = "resizeWidth"; + String RESIZE_HEIGHT = "resizeHeight"; + String RESIZE_PERCENTAGE = "resizePercentage"; + String ALLOW_ENLARGEMENT = "allowEnlargement"; + String MAINTAIN_ASPECT_RATIO = "maintainAspectRatio"; + String COMMAND_OPTIONS = "commandOptions"; + String TIMEOUT = "timeOut"; +} \ No newline at end of file