From d9747f015dfcb5f322079319bc864bd06aaf56c4 Mon Sep 17 00:00:00 2001 From: CezarLeahu <35226487+CezarLeahu@users.noreply.github.com> Date: Mon, 26 Aug 2019 13:59:38 +0300 Subject: [PATCH] ATS-466/ATS-538/ATS-539: Incorporate Misc T-Engine in ATS (#98) - fix multiple Misc Transformer bugs related to file mimeTypes - remove usage of 'source/targetMimetype' as transform options/parameters - add 'source/targetMimetype' arguments to the 'processTransform' method - remove unnecessary code (e.g. useless overridden methods) - add quick* test resource files - add integration test for 'Local Transformations' on the Misc engine - set up Integration Tests POM configuration for all T-Engine modules --- _ci/cache_artifacts.sh | 10 +- alfresco-docker-alfresco-pdf-renderer/pom.xml | 92 ++++-- .../AlfrescoPdfRendererController.java | 5 +- .../transformer/TransformationIT.java | 76 +++++ .../src/test/resources/quick.pdf | Bin 0 -> 23697 bytes alfresco-docker-imagemagick/pom.xml | 94 ++++-- .../transformer/ImageMagickController.java | 1 + alfresco-docker-libreoffice/pom.xml | 94 ++++-- .../transformer/LibreOfficeController.java | 5 +- alfresco-docker-tika/pom.xml | 94 ++++-- .../alfresco/transformer/TikaController.java | 14 +- alfresco-docker-transform-misc/pom.xml | 92 ++++-- .../alfresco/transformer/MiscController.java | 21 +- .../AppleIWorksContentTransformer.java | 6 +- .../HtmlParserContentTransformer.java | 4 +- .../OOXMLThumbnailContentTransformer.java | 7 +- .../transformers/SelectableTransformer.java | 6 +- .../transformers/SelectingTransformer.java | 7 +- .../StringExtractingContentTransformer.java | 5 +- .../TextToPdfContentTransformer.java | 4 +- .../transformer/MiscTransformsIT.java | 267 ++++++++++++++++++ .../HtmlParserContentTransformerTest.java | 11 +- .../TextToPdfContentTransformerTest.java | 2 +- .../src/test/resources/people.csv | 4 + .../src/test/resources/quick.html | 17 ++ .../src/test/resources/quick.xml | 5 + .../src/test/resources/quickConcept.dita | 31 ++ .../src/test/resources/sample.mw | 5 + .../src/test/resources/script.js | 29 ++ .../src/test/resources/style.css | 8 + .../AbstractTransformerController.java | 3 +- .../transformer/TransformController.java | 5 +- pom.xml | 34 --- 33 files changed, 864 insertions(+), 194 deletions(-) create mode 100644 alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/TransformationIT.java create mode 100644 alfresco-docker-alfresco-pdf-renderer/src/test/resources/quick.pdf create mode 100644 alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscTransformsIT.java create mode 100644 alfresco-docker-transform-misc/src/test/resources/people.csv create mode 100644 alfresco-docker-transform-misc/src/test/resources/quick.html create mode 100644 alfresco-docker-transform-misc/src/test/resources/quick.xml create mode 100644 alfresco-docker-transform-misc/src/test/resources/quickConcept.dita create mode 100644 alfresco-docker-transform-misc/src/test/resources/sample.mw create mode 100644 alfresco-docker-transform-misc/src/test/resources/script.js create mode 100644 alfresco-docker-transform-misc/src/test/resources/style.css diff --git a/_ci/cache_artifacts.sh b/_ci/cache_artifacts.sh index 2101a9c4..135a1373 100644 --- a/_ci/cache_artifacts.sh +++ b/_ci/cache_artifacts.sh @@ -5,16 +5,18 @@ PS4="\[\e[35m\]+ \[\e[m\]" set -vex pushd "$(dirname "${BASH_SOURCE[0]}")/../" +LIBREOFFICE_VERSION=6.1.6 + # Cache the LibreOffice distribution, as it is takes a long time to download and it can cause the # build to fail (no output for more than 10 minutes) -LIBREOFFICE_RPM_URL="https://nexus.alfresco.com/nexus/service/local/repositories/thirdparty/content/org/libreoffice/libreoffice-dist/5.4.6/libreoffice-dist-5.4.6-linux.gz" -if [ -f "${HOME}/artifacts/libreoffice-dist-5.4.6-linux.gz" ]; then +LIBREOFFICE_RPM_URL="https://nexus.alfresco.com/nexus/service/local/repositories/thirdparty/content/org/libreoffice/libreoffice-dist/${LIBREOFFICE_VERSION}/libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz" +if [ -f "${HOME}/artifacts/libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz" ]; then echo "Using cached LibreOffice distribution..." else echo "Downloading LibreOffice distribution..." - curl -s -S ${LIBREOFFICE_RPM_URL} -o "${HOME}/artifacts/libreoffice-dist-5.4.6-linux.gz" + curl -s -S ${LIBREOFFICE_RPM_URL} -o "${HOME}/artifacts/libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz" fi -cp "${HOME}/artifacts/libreoffice-dist-5.4.6-linux.gz" alfresco-docker-libreoffice/ +cp "${HOME}/artifacts/libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz" alfresco-docker-libreoffice/ popd diff --git a/alfresco-docker-alfresco-pdf-renderer/pom.xml b/alfresco-docker-alfresco-pdf-renderer/pom.xml index 9d88786f..850f6397 100644 --- a/alfresco-docker-alfresco-pdf-renderer/pom.xml +++ b/alfresco-docker-alfresco-pdf-renderer/pom.xml @@ -77,23 +77,6 @@ org.apache.maven.plugins maven-failsafe-plugin - - io.fabric8 - fabric8-maven-plugin - - - - ${image.name}:${image.tag} - - ${project.basedir}/ - - true - - - - - - @@ -107,6 +90,56 @@ io.fabric8 docker-maven-plugin + + + + activemq + alfresco/alfresco-activemq:5.15.6 + + activemq + + 8161:8161 + 5672:5672 + 61616:61616 + + + Apache ActiveMQ 5.15.6 .* started + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + + alfresco-pdf-renderer + ${image.name}:${image.tag} + + + 8090:8090 + + + + http://localhost:8090/transform/config + GET + 200...299 + + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + @@ -119,10 +152,23 @@ io.fabric8 fabric8-maven-plugin + + + + ${image.name}:${image.tag} + + ${project.basedir}/ + + true + + + + + build-image - install + package build @@ -167,10 +213,16 @@ - build-push-image - install + build-image + package build + + + + push-image + install + push diff --git a/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java b/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java index 0e62a056..c02e9175 100644 --- a/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java +++ b/alfresco-docker-alfresco-pdf-renderer/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java @@ -108,8 +108,9 @@ public class AlfrescoPdfRendererController extends AbstractTransformerController } @Override - public void processTransform(File sourceFile, File targetFile, - Map transformOptions, Long timeout) + public void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, + final Map transformOptions, final Long timeout) { logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); diff --git a/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/TransformationIT.java b/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/TransformationIT.java new file mode 100644 index 00000000..739beb5c --- /dev/null +++ b/alfresco-docker-alfresco-pdf-renderer/src/test/java/org/alfresco/transformer/TransformationIT.java @@ -0,0 +1,76 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2019 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; + +import static org.springframework.http.MediaType.MULTIPART_FORM_DATA; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +/** + * @author Cezar Leahu + */ +public class TransformationIT +{ + private static final Logger logger = LoggerFactory.getLogger(TransformationIT.class); + private static final String ENGINE_URL = "http://localhost:8090"; + + @Test + public void testPdfToPng() throws Exception + { + sendTRequest("quick.pdf", "png"); + } + + private static void sendTRequest(final String sourceFile, final String targetExtension) + { + final RestTemplate restTemplate = new RestTemplate(); + final HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MULTIPART_FORM_DATA); + //headers.setAccept(MULTIPART_FORM_DATA_VALUE); + + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("file", new ClassPathResource(sourceFile)); + body.add("targetExtension", targetExtension); + + final HttpEntity> entity = new HttpEntity<>(body, headers); + + final ResponseEntity response = restTemplate.postForEntity( + ENGINE_URL + "/transform", + entity, Resource.class); + + logger.info("Response: {}", response); + } +} diff --git a/alfresco-docker-alfresco-pdf-renderer/src/test/resources/quick.pdf b/alfresco-docker-alfresco-pdf-renderer/src/test/resources/quick.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1779afd8b4d1b7d75456c61900c5cead5444abb GIT binary patch literal 23697 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≺ND&( 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 Pz?x-07<5&PtcCX{dE{yb literal 0 HcmV?d00001 diff --git a/alfresco-docker-imagemagick/pom.xml b/alfresco-docker-imagemagick/pom.xml index 7c5bb5a1..45ee5d6c 100644 --- a/alfresco-docker-imagemagick/pom.xml +++ b/alfresco-docker-imagemagick/pom.xml @@ -77,23 +77,6 @@ org.apache.maven.plugins maven-failsafe-plugin - - io.fabric8 - fabric8-maven-plugin - - - - ${image.name}:${image.tag} - - ${project.basedir}/ - - true - - - - - - @@ -107,6 +90,56 @@ io.fabric8 docker-maven-plugin + + + + activemq + alfresco/alfresco-activemq:5.15.6 + + activemq + + 8161:8161 + 5672:5672 + 61616:61616 + + + Apache ActiveMQ 5.15.6 .* started + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + + imagemagick + ${image.name}:${image.tag} + + + 8090:8090 + + + + http://localhost:8090/transform/config + GET + 200...299 + + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + @@ -119,10 +152,23 @@ io.fabric8 fabric8-maven-plugin + + + + ${image.name}:${image.tag} + + ${project.basedir}/ + + true + + + + + build-image - install + package build @@ -167,10 +213,16 @@ - build-push-image - install + build-image + package build + + + + push-image + install + push @@ -227,4 +279,4 @@ - + \ No newline at end of file diff --git a/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java b/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java index da020a5e..69dad57a 100644 --- a/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java +++ b/alfresco-docker-imagemagick/src/main/java/org/alfresco/transformer/ImageMagickController.java @@ -191,6 +191,7 @@ public class ImageMagickController extends AbstractTransformerController @Override public void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, final Map transformOptions, final Long timeout) { logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + diff --git a/alfresco-docker-libreoffice/pom.xml b/alfresco-docker-libreoffice/pom.xml index 94296a85..4874c11f 100644 --- a/alfresco-docker-libreoffice/pom.xml +++ b/alfresco-docker-libreoffice/pom.xml @@ -86,23 +86,6 @@ org.apache.maven.plugins maven-failsafe-plugin - - io.fabric8 - fabric8-maven-plugin - - - - ${image.name}:${image.tag} - - ${project.basedir}/ - - true - - - - - - @@ -116,6 +99,56 @@ io.fabric8 docker-maven-plugin + + + + activemq + alfresco/alfresco-activemq:5.15.6 + + activemq + + 8161:8161 + 5672:5672 + 61616:61616 + + + Apache ActiveMQ 5.15.6 .* started + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + + libreoffice + ${image.name}:${image.tag} + + + 8090:8090 + + + + http://localhost:8090/transform/config + GET + 200...299 + + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + @@ -128,10 +161,23 @@ io.fabric8 fabric8-maven-plugin + + + + ${image.name}:${image.tag} + + ${project.basedir}/ + + true + + + + + build-image - install + package build @@ -176,10 +222,16 @@ - build-push-image - install + build-image + package build + + + + push-image + install + push @@ -236,4 +288,4 @@ - + \ No newline at end of file diff --git a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java index 1f0ebd3e..11b30915 100644 --- a/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java +++ b/alfresco-docker-libreoffice/src/main/java/org/alfresco/transformer/LibreOfficeController.java @@ -133,8 +133,9 @@ public class LibreOfficeController extends AbstractTransformerController } @Override - public void processTransform(File sourceFile, File targetFile, - Map transformOptions, Long timeout) + public void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, + final Map transformOptions, final Long timeout) { logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); diff --git a/alfresco-docker-tika/pom.xml b/alfresco-docker-tika/pom.xml index 819b9f42..c52af7db 100644 --- a/alfresco-docker-tika/pom.xml +++ b/alfresco-docker-tika/pom.xml @@ -150,23 +150,6 @@ org.codehaus.mojo license-maven-plugin - - io.fabric8 - fabric8-maven-plugin - - - - ${image.name}:${image.tag} - - ${project.basedir}/ - - true - - - - - - @@ -180,6 +163,56 @@ io.fabric8 docker-maven-plugin + + + + activemq + alfresco/alfresco-activemq:5.15.6 + + activemq + + 8161:8161 + 5672:5672 + 61616:61616 + + + Apache ActiveMQ 5.15.6 .* started + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + + tika + ${image.name}:${image.tag} + + + 8090:8090 + + + + http://localhost:8090/transform/config + GET + 200...299 + + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + @@ -192,10 +225,23 @@ io.fabric8 fabric8-maven-plugin + + + + ${image.name}:${image.tag} + + ${project.basedir}/ + + true + + + + + build-image - install + package build @@ -240,10 +286,16 @@ - build-push-image - install + build-image + package build + + + + push-image + install + push @@ -300,4 +352,4 @@ - + \ No newline at end of file diff --git a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java index 8c1c6f44..b91bf3dc 100644 --- a/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java +++ b/alfresco-docker-tika/src/main/java/org/alfresco/transformer/TikaController.java @@ -162,17 +162,17 @@ public class TikaController extends AbstractTransformerController } @Override - public void processTransform(File sourceFile, File targetFile, - Map transformOptions, Long timeout) + public void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, + final Map transformOptions, final Long timeout) { logger.debug("Processing request with: sourceFile '{}', targetFile '{}', transformOptions" + " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); - String transform = transformOptions.get("transform"); - Boolean includeContents = stringToBoolean("includeContents"); - Boolean notExtractBookmarksText = stringToBoolean("notExtractBookmarksText"); - String targetMimetype = transformOptions.get("targetMimetype"); - String targetEncoding = transformOptions.get("targetEncoding"); + final String transform = transformOptions.get("transform"); + final Boolean includeContents = stringToBoolean("includeContents"); + final Boolean notExtractBookmarksText = stringToBoolean("notExtractBookmarksText"); + final String targetEncoding = transformOptions.get("targetEncoding"); javaExecutor.call(sourceFile, targetFile, transform, includeContents != null && includeContents ? INCLUDE_CONTENTS : null, diff --git a/alfresco-docker-transform-misc/pom.xml b/alfresco-docker-transform-misc/pom.xml index df824b5a..1770fc72 100644 --- a/alfresco-docker-transform-misc/pom.xml +++ b/alfresco-docker-transform-misc/pom.xml @@ -106,23 +106,6 @@ org.apache.maven.plugins maven-failsafe-plugin - - io.fabric8 - fabric8-maven-plugin - - - - ${image.name}:${image.tag} - - ${project.basedir}/ - - true - - - - - - @@ -136,6 +119,56 @@ io.fabric8 docker-maven-plugin + + + + activemq + alfresco/alfresco-activemq:5.15.6 + + activemq + + 8161:8161 + 5672:5672 + 61616:61616 + + + Apache ActiveMQ 5.15.6 .* started + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + + misc + ${image.name}:${image.tag} + + + 8090:8090 + + + + http://localhost:8090/transform/config + GET + 200...299 + + + 500 + 100 + + kill 1 + kill -9 1 + + + + + + @@ -148,10 +181,23 @@ io.fabric8 fabric8-maven-plugin + + + + ${image.name}:${image.tag} + + ${project.basedir}/ + + true + + + + + build-image - install + package build @@ -196,10 +242,16 @@ - build-push-image - install + build-image + package build + + + + push-image + install + push diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/MiscController.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/MiscController.java index 6d7e632f..7cdf9e60 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/MiscController.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/MiscController.java @@ -98,8 +98,9 @@ public class MiscController extends AbstractTransformerController } @Override - public void processTransform(File sourceFile, File targetFile, - Map transformOptions, Long timeout) + public void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, + final Map transformOptions, final Long timeout) { if (logger.isDebugEnabled()) { @@ -108,8 +109,6 @@ public class MiscController extends AbstractTransformerController " '{}', timeout {} ms", sourceFile, targetFile, transformOptions, timeout); } - String sourceMimetype = transformOptions.get("sourceMimetype"); - String targetMimetype = transformOptions.get("targetMimetype"); transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions); } @@ -117,9 +116,9 @@ public class MiscController extends AbstractTransformerController @PostMapping(value = "/transform", consumes = MULTIPART_FORM_DATA_VALUE) public ResponseEntity transform(HttpServletRequest request, @RequestParam("file") MultipartFile sourceMultipartFile, - @RequestParam(value = "targetExtension") String targetExtension, - @RequestParam(value = "targetMimetype") String targetMimetype, - @RequestParam(value = "sourceMimetype") String sourceMimetype, + @RequestParam("targetExtension") String targetExtension, + @RequestParam("targetMimetype") String targetMimetype, + @RequestParam("sourceMimetype") String sourceMimetype, @RequestParam(value = "testDelay", required = false) Long testDelay, @RequestParam Map parameters) { @@ -130,11 +129,11 @@ public class MiscController extends AbstractTransformerController ", parameters '{}'", sourceMimetype, targetMimetype, targetExtension, parameters); } - String targetFilename = createTargetFileName(sourceMultipartFile.getOriginalFilename(), - targetExtension); + final String targetFilename = createTargetFileName( + sourceMultipartFile.getOriginalFilename(), targetExtension); getProbeTestTransform().incrementTransformerCount(); - File sourceFile = createSourceFile(request, sourceMultipartFile); - File targetFile = createTargetFile(request, targetFilename); + final File sourceFile = createSourceFile(request, sourceMultipartFile); + final File targetFile = createTargetFile(request, targetFilename); transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, parameters); diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/AppleIWorksContentTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/AppleIWorksContentTransformer.java index c572fe01..38edf4f5 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/AppleIWorksContentTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/AppleIWorksContentTransformer.java @@ -82,11 +82,9 @@ public class AppleIWorksContentTransformer implements SelectableTransformer } @Override - public void transform(File sourceFile, File targetFile, Map parameters) + public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, + final String targetMimetype, final Map parameters) { - final String sourceMimetype = parameters.get(SOURCE_MIMETYPE); - final String targetMimetype = parameters.get(TARGET_MIMETYPE); - logger.debug("Performing IWorks to jpeg transform with sourceMimetype={} targetMimetype={}", sourceMimetype, targetMimetype); diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/HtmlParserContentTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/HtmlParserContentTransformer.java index a0cac4ad..033aa092 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/HtmlParserContentTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/HtmlParserContentTransformer.java @@ -85,8 +85,8 @@ public class HtmlParserContentTransformer implements SelectableTransformer } @Override - public void transform(File sourceFile, File targetFile, Map parameters) - throws Exception + public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, + final String targetMimetype, final Map parameters) throws Exception { String sourceEncoding = parameters.get(SOURCE_ENCODING); checkEncodingParameter(sourceEncoding, SOURCE_ENCODING); diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/OOXMLThumbnailContentTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/OOXMLThumbnailContentTransformer.java index 44f858dc..d32830a6 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/OOXMLThumbnailContentTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/OOXMLThumbnailContentTransformer.java @@ -109,12 +109,9 @@ public class OOXMLThumbnailContentTransformer implements SelectableTransformer } @Override - public void transform(File sourceFile, File targetFile, Map parameters) - throws Exception + public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, + final String targetMimetype, final Map parameters) throws Exception { - final String sourceMimetype = parameters.get(SOURCE_MIMETYPE); - final String targetMimetype = parameters.get(TARGET_MIMETYPE); - if (logger.isDebugEnabled()) { logger.debug("Performing OOXML to jpeg transform with sourceMimetype=" + sourceMimetype diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectableTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectableTransformer.java index 53103768..463a7c20 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectableTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectableTransformer.java @@ -38,8 +38,6 @@ public interface SelectableTransformer { String SOURCE_ENCODING = "sourceEncoding"; String TARGET_ENCODING = "targetEncoding"; - String SOURCE_MIMETYPE = "sourceMimetype"; - String TARGET_MIMETYPE = "targetMimetype"; /** * Implementation of the actual transformation. @@ -49,8 +47,8 @@ public interface SelectableTransformer * @param parameters * @throws Exception */ - void transform(File sourceFile, File targetFile, Map parameters) - throws Exception; + void transform(File sourceFile, File targetFile, String sourceMimetype, + String targetMimetype, Map parameters) throws Exception; /** * Determine whether this transformer is applicable for the given MIME types. diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java index 1b47cfb7..4abd8629 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/SelectingTransformer.java @@ -82,7 +82,8 @@ public class SelectingTransformer final SelectableTransformer transformer = selectTransformer(sourceMimetype, targetMimetype, parameters); logOptions(sourceFile, targetFile, parameters); - transformer.transform(sourceFile, targetFile, parameters); + transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, + parameters); } catch (IllegalArgumentException e) { @@ -126,7 +127,7 @@ public class SelectingTransformer return e.getMessage() == null || e.getMessage().isEmpty() ? e.getClass().getSimpleName() : e.getMessage(); } - private void logOptions(File sourceFile, File targetFile, Map parameters) + private static void logOptions(File sourceFile, File targetFile, Map parameters) { StringJoiner sj = new StringJoiner(" "); parameters.forEach((k, v) -> sj.add( @@ -136,7 +137,7 @@ public class SelectingTransformer LogEntry.setOptions(sj.toString()); } - private String getExtension(File file) + private static String getExtension(File file) { final String name = file.getName(); int i = name.lastIndexOf('.'); diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/StringExtractingContentTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/StringExtractingContentTransformer.java index c9be21e5..4a08d242 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/StringExtractingContentTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/StringExtractingContentTransformer.java @@ -83,10 +83,9 @@ public class StringExtractingContentTransformer implements SelectableTransformer * be unformatted but valid. */ @Override - public void transform(File sourceFile, File targetFile, Map parameters) - throws Exception + public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, + final String targetMimetype, final Map parameters) throws Exception { - String sourceEncoding = parameters.get(SOURCE_ENCODING); String targetEncoding = parameters.get(TARGET_ENCODING); diff --git a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/TextToPdfContentTransformer.java b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/TextToPdfContentTransformer.java index bf577184..da55f037 100644 --- a/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/TextToPdfContentTransformer.java +++ b/alfresco-docker-transform-misc/src/main/java/org/alfresco/transformer/transformers/TextToPdfContentTransformer.java @@ -115,8 +115,8 @@ public class TextToPdfContentTransformer implements SelectableTransformer } @Override - public void transform(File sourceFile, File targetFile, Map parameters) - throws Exception + public void transform(final File sourceFile, final File targetFile, final String sourceMimetype, + final String targetMimetype, final Map parameters) throws Exception { String sourceEncoding = parameters.get(SOURCE_ENCODING); String stringPageLimit = parameters.get(PAGE_LIMIT); diff --git a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscTransformsIT.java b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscTransformsIT.java new file mode 100644 index 00000000..e10a79f9 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/MiscTransformsIT.java @@ -0,0 +1,267 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2019 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; + +import static java.util.function.Function.identity; +import static java.util.stream.Collectors.toMap; +import static java.util.stream.Collectors.toSet; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_DITA; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_EXCEL; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_GIF; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_JPEG; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_PNG; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IMAGE_TIFF; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_KEYNOTE; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_NUMBERS; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_IWORK_PAGES; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_JAVASCRIPT; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_PRESENTATION; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_SPREADSHEET; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OPENXML_WORDPROCESSING; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_OUTLOOK_MSG; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_PDF; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_PPT; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_CSS; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_CSV; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_JAVASCRIPT; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_MEDIAWIKI; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_WORD; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_XML; +import static org.alfresco.transformer.MiscTransformsIT.TestFileInfo.testFile; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.springframework.http.MediaType.MULTIPART_FORM_DATA; + +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.stream.Stream; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +/** + * @author Cezar Leahu + */ +@RunWith(Parameterized.class) +public class MiscTransformsIT +{ + private static final Logger logger = LoggerFactory.getLogger(MiscTransformsIT.class); + private static final String ENGINE_URL = "http://localhost:8090"; + + private static final Map TEST_FILES = Stream.of( + testFile(MIMETYPE_IMAGE_GIF, "gif", "quick.gif", true), + testFile(MIMETYPE_IMAGE_JPEG, "jpg", "quick.jpg", true), + testFile(MIMETYPE_IMAGE_PNG, "png", "quick.png", true), + testFile(MIMETYPE_IMAGE_TIFF, "tiff", "quick.tiff", true), + testFile(MIMETYPE_WORD, "doc", "quick.doc", true), + testFile(MIMETYPE_OPENXML_WORDPROCESSING, "docx", "quick.docx", true), + testFile(MIMETYPE_EXCEL, "xls", "quick.xls", true), + testFile(MIMETYPE_OPENXML_SPREADSHEET, "xlsx", "quick.xlsx", true), + testFile(MIMETYPE_PPT, "ppt", "quick.ppt", true), + testFile(MIMETYPE_OPENXML_PRESENTATION, "pptx", "quick.pptx", true), + testFile(MIMETYPE_OUTLOOK_MSG, "msg", "quick.msg", true), + testFile(MIMETYPE_PDF, "pdf", "quick.pdf", true), + testFile(MIMETYPE_TEXT_PLAIN, "txt", "quick.txt", true), + + testFile(MIMETYPE_TEXT_MEDIAWIKI, "mw", "sample.mw", false), + testFile(MIMETYPE_TEXT_CSS, "css", "style.css", false), + testFile(MIMETYPE_TEXT_CSV, "csv", "people.csv", false), + testFile(MIMETYPE_TEXT_JAVASCRIPT, "js", "script.js", false), + testFile(MIMETYPE_XML, "xml", "quick.xml", true), + testFile(MIMETYPE_HTML, "html", "quick.html", true), + testFile(MIMETYPE_JAVASCRIPT, "js", "script.js", false), + testFile(MIMETYPE_DITA, "dita", "quickConcept.dita", false), + testFile(MIMETYPE_IWORK_KEYNOTE, "key", "quick.key", false), + testFile(MIMETYPE_IWORK_NUMBERS, "number", "quick.numbers", false), + testFile(MIMETYPE_IWORK_PAGES, "pages", "quick.pages", false) + ).collect(toMap(TestFileInfo::getMimeType, identity())); + + private final String sourceMimetype; + private final String targetMimetype; + + public MiscTransformsIT(final SourceTarget sourceTarget) + { + sourceMimetype = sourceTarget.source; + targetMimetype = sourceTarget.target; + } + + @Parameterized.Parameters + public static Set engineTransformations() + { + return Stream.of( + SourceTarget.of("text/html", "text/plain"), //duplicate + SourceTarget.of("text/plain", "text/plain"), + SourceTarget.of("text/mediawiki", "text/plain"), + SourceTarget.of("text/css", "text/plain"), + SourceTarget.of("text/csv", "text/plain"), + SourceTarget.of("text/javascript", "text/plain"), + SourceTarget.of("text/xml", "text/plain"), + SourceTarget.of("text/html", "text/plain"), + SourceTarget.of("application/x-javascript", "text/plain"), + SourceTarget.of("application/dita+xml", "text/plain"), + SourceTarget.of("application/vnd.apple.keynote", "image/jpeg"), + SourceTarget.of("application/vnd.apple.numbers", "image/jpeg"), + SourceTarget.of("application/vnd.apple.pages", "image/jpeg"), + SourceTarget.of("text/plain", "application/pdf"), + SourceTarget.of("text/csv", "application/pdf"), + SourceTarget.of("application/dita+xml", "application/pdf"), + SourceTarget.of("text/xml", "application/pdf") + ).collect(toSet()); + } + + @Test + public void testTransformation() + { + final TestFileInfo sourceFile = TEST_FILES.get(sourceMimetype); + final TestFileInfo targetFile = TEST_FILES.get(targetMimetype); + assertNotNull(sourceFile); + assertNotNull(targetFile); + + final ResponseEntity response = sendTRequest(sourceFile.path, + sourceMimetype, targetMimetype, targetFile.extension); + + logger.info("Response: {}", response); + + final int status = response.getStatusCode().value(); + assertTrue("Transformation failed", status >= 200 && status < 300); + } + + private static ResponseEntity sendTRequest(final String sourceFile, + final String sourceMimetype, final String targetMimetype, final String targetExtension) + { + final RestTemplate restTemplate = new RestTemplate(); + final HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MULTIPART_FORM_DATA); + //headers.setAccept(ImmutableList.of(MULTIPART_FORM_DATA)); + + final MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("file", new ClassPathResource(sourceFile)); + body.add("targetExtension", targetExtension); + body.add("targetMimetype", targetMimetype); + body.add("sourceMimetype", sourceMimetype); + + final HttpEntity> entity = new HttpEntity<>(body, headers); + + return restTemplate.postForEntity(ENGINE_URL + "/transform", entity, Resource.class); + } + + static class TestFileInfo + { + private final String mimeType; + private final String extension; + private final String path; + private final boolean exactMimeType; + + public TestFileInfo(final String mimeType, final String extension, final String path, + final boolean exactMimeType) + { + this.mimeType = mimeType; + this.extension = extension; + this.path = path; + this.exactMimeType = exactMimeType; + } + + public String getMimeType() + { + return mimeType; + } + + public String getExtension() + { + return extension; + } + + public String getPath() + { + return path; + } + + public boolean isExactMimeType() + { + return exactMimeType; + } + + public static TestFileInfo testFile(final String mimeType, final String extension, + final String path, final boolean exactMimeType) + { + return new TestFileInfo(mimeType, extension, path, exactMimeType); + } + } + + public static class SourceTarget + { + final String source; + final String target; + + private SourceTarget(final String source, final String target) + { + this.source = source; + this.target = target; + } + + @Override + public boolean equals(Object o) + { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + SourceTarget that = (SourceTarget) o; + return Objects.equals(source, that.source) && + Objects.equals(target, that.target); + } + + @Override + public int hashCode() + { + return Objects.hash(source, target); + } + + @Override + public String toString() + { + return source + '|' + target; + } + + public static SourceTarget of(final String source, final String target) + { + return new SourceTarget(source, target); + } + } +} diff --git a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/HtmlParserContentTransformerTest.java b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/HtmlParserContentTransformerTest.java index 08c4ef12..3141e96c 100644 --- a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/HtmlParserContentTransformerTest.java +++ b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/HtmlParserContentTransformerTest.java @@ -46,6 +46,9 @@ import org.springframework.test.context.junit4.SpringRunner; @Import(HtmlParserContentTransformer.class) public class HtmlParserContentTransformerTest { + private static final String SOURCE_MIMETYPE = "text/html"; + private static final String TARGET_MIMETYPE = "text/plain"; + @Autowired HtmlParserContentTransformer transformer; @@ -85,7 +88,7 @@ public class HtmlParserContentTransformerTest Map parameters = new HashMap<>(); parameters.put(SOURCE_ENCODING, "ISO-8859-1"); - transformer.transform(tmpS, tmpD, parameters); + transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters); assertEquals(expected, readFromFile(tmpD, "UTF-8")); tmpS.delete(); @@ -98,7 +101,7 @@ public class HtmlParserContentTransformerTest tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt"); parameters = new HashMap<>(); parameters.put(SOURCE_ENCODING, "UTF-8"); - transformer.transform(tmpS, tmpD, parameters); + transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters); assertEquals(expected, readFromFile(tmpD, "UTF-8")); tmpS.delete(); tmpD.delete(); @@ -110,7 +113,7 @@ public class HtmlParserContentTransformerTest tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt"); parameters = new HashMap<>(); parameters.put(SOURCE_ENCODING, "UTF-16"); - transformer.transform(tmpS, tmpD, parameters); + transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters); assertEquals(expected, readFromFile(tmpD, "UTF-8")); tmpS.delete(); tmpD.delete(); @@ -135,7 +138,7 @@ public class HtmlParserContentTransformerTest parameters = new HashMap<>(); parameters.put(SOURCE_ENCODING, "ISO-8859-1"); - transformer.transform(tmpS, tmpD, parameters); + transformer.transform(tmpS, tmpD, SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters); assertEquals(expected, readFromFile(tmpD, "UTF-8")); tmpS.delete(); tmpD.delete(); diff --git a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/TextToPdfContentTransformerTest.java b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/TextToPdfContentTransformerTest.java index fdd15bb5..70acf5e8 100644 --- a/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/TextToPdfContentTransformerTest.java +++ b/alfresco-docker-transform-misc/src/test/java/org/alfresco/transformer/transformers/TextToPdfContentTransformerTest.java @@ -116,7 +116,7 @@ public class TextToPdfContentTransformerTest // Transform to PDF Map parameters = new HashMap<>(); parameters.put(PAGE_LIMIT, pageLimit); - transformer.transform(sourceFile, targetFile, parameters); + transformer.transform(sourceFile, targetFile, "text/plain", "application/pdf", parameters); // Read back in the PDF and check it PDDocument doc = PDDocument.load(targetFile); diff --git a/alfresco-docker-transform-misc/src/test/resources/people.csv b/alfresco-docker-transform-misc/src/test/resources/people.csv new file mode 100644 index 00000000..ed3dc2fe --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/people.csv @@ -0,0 +1,4 @@ +:ID,name,joined:date,active:boolean,points:int +user01,Joe Soap,2017-05-05,true,10 +user02,Jane Doe,2017-08-21,true,15 +user03,Moe Know,2018-02-17,false,7 diff --git a/alfresco-docker-transform-misc/src/test/resources/quick.html b/alfresco-docker-transform-misc/src/test/resources/quick.html new file mode 100644 index 00000000..76c633d7 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/quick.html @@ -0,0 +1,17 @@ + + + + + The quick brown fox jumps over the lazy dog + + + + + + + +The quick brown fox jumps over the lazy dog + + + + diff --git a/alfresco-docker-transform-misc/src/test/resources/quick.xml b/alfresco-docker-transform-misc/src/test/resources/quick.xml new file mode 100644 index 00000000..aa0c3f25 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/quick.xml @@ -0,0 +1,5 @@ + + + + The quick brown fox jumps over the lazy dog + \ No newline at end of file diff --git a/alfresco-docker-transform-misc/src/test/resources/quickConcept.dita b/alfresco-docker-transform-misc/src/test/resources/quickConcept.dita new file mode 100644 index 00000000..5c011480 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/quickConcept.dita @@ -0,0 +1,31 @@ + + + + The quick brown fox jumps over the lazy dog + Gym class featuring a brown fox and lazy dog + + Alfresco Documentation + + + Alfresco Software, Inc. + + + + Testing + + Pangram + Fox + Dog + + + Enterprise + + + + + + + +

The quick brown fox jumps over the lazy dog

+
+
diff --git a/alfresco-docker-transform-misc/src/test/resources/sample.mw b/alfresco-docker-transform-misc/src/test/resources/sample.mw new file mode 100644 index 00000000..8dcb3938 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/sample.mw @@ -0,0 +1,5 @@ +"Take some more [[tea]]," the March Hare said to Alice, very earnestly. + +"I've had '''nothing''' yet," Alice replied in an offended tone, "so I can't take more." + +"You mean you can't take ''less''," said the Hatter. "It's very easy to take ''more'' than nothing." diff --git a/alfresco-docker-transform-misc/src/test/resources/script.js b/alfresco-docker-transform-misc/src/test/resources/script.js new file mode 100644 index 00000000..e92aa42c --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/script.js @@ -0,0 +1,29 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2019 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% + */ +function myFunction() { + document.getElementById("bla").innerHTML = "The quick brown fox jumps over the lazy dog"; +} diff --git a/alfresco-docker-transform-misc/src/test/resources/style.css b/alfresco-docker-transform-misc/src/test/resources/style.css new file mode 100644 index 00000000..fffcfa11 --- /dev/null +++ b/alfresco-docker-transform-misc/src/test/resources/style.css @@ -0,0 +1,8 @@ +body { + background-color: lightblue; +} + +h1 { + color: navy; + margin-left: 20px; +} diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java index 7a3e618c..8c3b8587 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/AbstractTransformerController.java @@ -214,7 +214,8 @@ public abstract class AbstractTransformerController implements TransformControll // Run the transformation try { - processTransform(sourceFile, targetFile, request.getTransformRequestOptions(), timeout); + processTransform(sourceFile, targetFile, request.getSourceMediaType(), + request.getTargetMediaType(), request.getTransformRequestOptions(), timeout); } catch (TransformException e) { diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java index 36cc4865..0d7127c4 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/TransformController.java @@ -65,8 +65,9 @@ public interface TransformController ResponseEntity transform(TransformRequest transformRequest, Long timeout); - void processTransform(File sourceFile, File targetFile, Map transformOptions, - Long timeout); + void processTransform(final File sourceFile, final File targetFile, + final String sourceMimetype, final String targetMimetype, + final Map transformOptions, final Long timeout); String getTransformerName(); diff --git a/pom.xml b/pom.xml index a486205d..74647fd0 100644 --- a/pom.xml +++ b/pom.xml @@ -293,40 +293,6 @@ docker-maven-plugin 0.30.0 true - - 1.29 - Always - true - - - - activemq - alfresco/alfresco-activemq:5.15.6 - - activemq - - transform - activemq - - - 8161:8161 - 5672:5672 - 61616:61616 - - - Apache ActiveMQ 5.15.6 .* started - - 500 - 100 - - kill 1 - kill -9 1 - - - - - - before-integration-tests