diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/Dockerfile b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/Dockerfile new file mode 100644 index 00000000..01d63651 --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/Dockerfile @@ -0,0 +1,70 @@ +# Image provides an all-in-one (AIO) container in which to run core transformations for Alfresco Content Services. + +# Tika is from Apache. See the license at http://www.apache.org/licenses/LICENSE-2.0. +# LibreOffice is from The Document Foundation. See the license at https://www.libreoffice.org/download/license/ or in /libreoffice.txt. +# ImageMagick is from ImageMagick Studio LLC. See the license at http://www.imagemagick.org/script/license.php or in /ImageMagick-license.txt. +# alfresco-pdf-renderer uses the PDFium library from Google Inc. See the license at https://pdfium.googlesource.com/pdfium/+/master/LICENSE or in /pdfium.txt. + +FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81 + +ENV APACHE_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/Apache%202.0.txt + +ARG IMAGEMAGICK_VERSION=7.0.7-27 +ENV IMAGEMAGICK_RPM_URL=https://nexus.alfresco.com/nexus/service/local/repositories/thirdparty/content/org/imagemagick/imagemagick-distribution/${IMAGEMAGICK_VERSION}/imagemagick-distribution-${IMAGEMAGICK_VERSION}-linux.rpm +ENV IMAGEMAGICK_LIB_RPM_URL=https://nexus.alfresco.com/nexus/service/local/repositories/thirdparty/content/org/imagemagick/imagemagick-distribution/${IMAGEMAGICK_VERSION}/imagemagick-distribution-${IMAGEMAGICK_VERSION}-libs-linux.rpm +ENV IMAGEMAGICK_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/ImageMagick-license.txt + +ARG LIBREOFFICE_VERSION=6.1.6 +ENV 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 +ENV LIBREOFFICE_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/libreoffice.txt + +ENV ALFRESCO_PDF_RENDERER_LIB_RPM_URL=https://nexus.alfresco.com/nexus/service/local/repositories/releases/content/org/alfresco/alfresco-pdf-renderer/1.1/alfresco-pdf-renderer-1.1-linux.tgz +ENV PDFIUM_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/pdfium.txt + +ENV JAVA_OPTS="" + +# Set default user information +ARG GROUPNAME=Alfresco +ARG GROUPID=1000 +ARG AIOUSERNAME=transform-all-in-one +ARG USERID=33017 + +COPY target/alfresco-transform-core-aio-boot-${env.project_version}.jar /usr/bin + +RUN ln /usr/bin/alfresco-transform-core-aio-boot-${env.project_version}.jar /usr/bin/alfresco-transform-core-aio-boot.jar && \ + curl -s -S $IMAGEMAGICK_RPM_URL -o imagemagick-distribution-linux.rpm && \ + curl -s -S $IMAGEMAGICK_LIB_RPM_URL -o imagemagick-distribution-libs-linux.rpm && \ + curl -s -S $IMAGEMAGICK_LICENSE_FILE -o ImageMagick-license.txt && \ + yum localinstall -y imagemagick-distribution-*linux.rpm && \ + rm -f imagemagick-distribution-*.rpm && \ + yum clean all && \ + yum install -y cairo cups-libs libSM && \ + test -f libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz && \ + ln -s libreoffice-dist-${LIBREOFFICE_VERSION}-linux.gz libreoffice-dist-linux.gz || \ + curl -s -S $LIBREOFFICE_RPM_URL -o libreoffice-dist-linux.gz && \ + curl -s -S $LIBREOFFICE_LICENSE_FILE -o libreoffice.txt && \ + tar xzf libreoffice-dist-linux.gz && \ + yum localinstall -y LibreOffice*/RPMS/*.rpm && \ + rm -rf libreoffice-dist-*linux.gz LibreOffice_*_Linux_x86-64_rpm && \ + yum clean all && \ + curl -s -S $ALFRESCO_PDF_RENDERER_LIB_RPM_URL -o alfresco-pdf-renderer-linux.tgz && \ + curl -s -S $PDFIUM_LICENSE_FILE -o pdfium.txt && \ + tar xf alfresco-pdf-renderer-linux.tgz -C /usr/bin && \ + rm -f alfresco-pdf-renderer-linux.tgz && \ + yum clean all && \ + curl -s -S $APACHE_LICENSE_FILE -o Apache\ 2.0.txt && \ + yum clean all + +ADD target/generated-resources/licenses /licenses +ADD target/generated-resources/licenses.xml /licenses/ +ADD target/generated-sources/license/THIRD-PARTY.txt /licenses/ + +RUN groupadd -g ${GROUPID} ${GROUPNAME} && \ + useradd -u ${USERID} -G ${GROUPNAME} ${AIOUSERNAME} && \ + chgrp -R ${GROUPNAME} /usr/bin/alfresco-transform-core-aio-boot.jar + +EXPOSE 8090 + +USER ${AIOUSERNAME} + +ENTRYPOINT java $JAVA_OPTS -jar /usr/bin/alfresco-transform-core-aio-boot.jar \ No newline at end of file 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 new file mode 100644 index 00000000..a43ccaa2 --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml @@ -0,0 +1,297 @@ + + + + 4.0.0 + alfresco-transform-core-aio-boot + Alfresco All in One Transformer Spring Boot + jar + + + org.alfresco + alfresco-transform-core + 2.2.0-SNAPSHOT + ../../pom.xml + + + + alfresco/alfresco-transform-aio + quay.io + ${project.artifactId} + + + + + org.alfresco + alfresco-transformer-base + ${project.version} + + + org.alfresco + alfresco-transform-core-aio + ${project.version} + + + org.alfresco + alfresco-transformer-base + ${project.version} + tests + test-jar + test + + + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + org.springframework.boot + spring-boot-starter-test + test + + + com.vaadin.external.google + android-json + + + + + + org.dom4j + dom4j + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + org.codehaus.mojo + license-maven-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + org.apache.maven.plugins + maven-failsafe-plugin + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 00000000..0149c75a --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java @@ -0,0 +1,218 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2020 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.alfresco.transform.client.model.Mimetype.MIMETYPE_HTML; +import static org.alfresco.transform.client.model.Mimetype.MIMETYPE_TEXT_PLAIN; +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.springframework.http.HttpStatus.OK; +import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE; + +import java.io.File; +import java.util.Map; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; + +import javax.servlet.http.HttpServletRequest; + +import org.alfresco.transformer.logging.LogEntry; +import org.alfresco.transformer.probes.ProbeTestTransform; +import org.alfresco.transformer.transformers.AllInOneTransformer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.core.io.Resource; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; + +@Controller +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 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 = {TARGET_EXTENSION, + TARGET_MIMETYPE, + SOURCE_MIMETYPE, + TEST_DELAY + }; + + private AllInOneTransformer transformer = new AllInOneTransformer(); + + @Override + public String getTransformerName() + { + return "All in One Transformer"; + } + + @Override + public String version() + { + return getTransformerName() + " available"; + } + + @Override + public void processTransform(File sourceFile, File targetFile, String sourceMimetype, String targetMimetype, + Map transformOptions, Long timeout) + { + final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); + transformOptions.put(AllInOneTransformer.TRANSFORM_NAME_PARAMETER, transform); + debugLogTransform(sourceMimetype,transformOptions); + + try + { + transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions); + } + catch (Exception e) + { + logger.error(e.getMessage(), e); + } + + + } + + @Override + public ProbeTestTransform getProbeTestTransform() + { + // HtmlParserContentTransformer html -> text + // See the Javadoc on this method and Probes.md for the choice of these values. + return new ProbeTestTransform(this, "quick.html", "quick.txt", + 119, 30, 150, 1024, + 60 * 2 + 1, 60 * 2) + { + @Override + protected void executeTransformCommand(File sourceFile, File targetFile) + { + Map parameters = new HashMap<>(); + parameters.put(AllInOneTransformer.TRANSFORM_NAME_PARAMETER, "misc"); + parameters.put(SOURCE_ENCODING, "UTF-8"); + try + { + transformer.transform(sourceFile, targetFile, MIMETYPE_HTML, + MIMETYPE_TEXT_PLAIN, parameters); + } + catch(Exception e) + { + logger.error(e.getMessage(), e); + } + + } + }; + } + + @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 (value = TEST_DELAY, required = false) Long testDelay) + { + //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); + getProbeTestTransform().incrementTransformerCount(); + 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); + + transformOptions.put(AllInOneTransformer.TRANSFORM_NAME_PARAMETER, transform); + debugLogTransform(sourceMimetype, transformOptions); + + try + { + transformer.transform(sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions); + } + catch (Exception e) + { + logger.error(e.getMessage(), e); + } + + + final ResponseEntity body = createAttachment(targetFilename, targetFile); + LogEntry.setTargetSize(targetFile.length()); + long time = LogEntry.setStatusCodeAndMessage(OK.value(), "Success"); + time += LogEntry.addDelay(testDelay); + getProbeTestTransform().recordTransformTime(time); + return body; + } + + private void debugLogTransform(String sourceMimetype, Map transformOptions) { + if (logger.isDebugEnabled()) + { + logger.debug( + "Processing request with: targetExtension '{}', transformOptions '{}'", + sourceMimetype, 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() + ); + } + } + } + } +} diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/Application.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/Application.java new file mode 100644 index 00000000..3a77f21f --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/Application.java @@ -0,0 +1,79 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2020 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.alfresco.transformer.logging.StandardMessages.LICENCE; + +import java.util.Arrays; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.annotation.Bean; +import org.springframework.context.event.EventListener; + +import io.micrometer.core.instrument.MeterRegistry; + +@SpringBootApplication +@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) +public class Application +{ + private static final Logger logger = LoggerFactory.getLogger(Application.class); + + @Value("${container.name}") + private String containerName; + + @Bean + MeterRegistryCustomizer metricsCommonTags() + { + return registry -> registry.config().commonTags("containerName", containerName); + } + + public static void main(String[] args) + { + SpringApplication.run(Application.class, args); + } + + @EventListener(ApplicationReadyEvent.class) + public void startup() + { + logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------------------"); + Arrays.stream(LICENCE.split("\\n")).forEach(logger::info); + logger.info("The transformers in this project use libraries from Apache. See the license at http://www.apache.org/licenses/LICENSE-2.0. or in /Apache\\\\ 2.0.txt"); + logger.info("Additional libraries used:"); + logger.info("* htmlparser http://htmlparser.sourceforge.net/license.html"); + logger.info("--------------------------------------------------------------------------------------------------------------------------------------------------------------"); + + logger.info("Starting application components... Done"); + } +} diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/application-default.yaml b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/application-default.yaml new file mode 100644 index 00000000..f1c633dc --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/application-default.yaml @@ -0,0 +1,2 @@ +queue: + engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.aio.acs} \ No newline at end of file diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/quick.html b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/quick.html new file mode 100644 index 00000000..76c633d7 --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/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-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/templates/transformForm.html b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/templates/transformForm.html new file mode 100644 index 00000000..b52e9de6 --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/resources/templates/transformForm.html @@ -0,0 +1,162 @@ + + + +
+

All in One Transformer Test Transformation

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
file *
targetExtension *
timeout
testDelay
sourceExtension
targetMimetype
sourceMimetype
targetEncoding
sourceEncoding
includeContents (archive)
notExtractBookmarksText
page
width
height
allowPdfEnlargement
maintainPdfAspectRatio
startPage
endPage
alphaRemove
autoOrient
cropGravity
North, NorthEast...Center
cropWidth
cropHeight
cropPercentage
cropXOffset
cropYOffset
thumbnail
resizeWidth
resizeHeight
resizePercentage
allowEnlargement
maintainAspectRatio
+
+
+ +
+

Tika Test Transformations

+
+ + + + + + + + + + + +
file *
sourceMimetype *
targetExtension *
targetMimetype *
targetEncoding *
includeContents (archive) *
timeout
testDelay
notExtractBookmarksText
+
+
+
+

LibreOffice Test Transformation

+
+ + + + + + + +
file *
targetExtension *
timeout
testDelay
+
+
+
+

Alfresco PDF Renderer Test Transformation

+
+ + + + + + + + + + + + + + +
file *
targetExtension *
timeout
testDelay
page
width
height
allowPdfEnlargement
maintainPdfAspectRatio
+
+
+
+

Miscellaneous Transformers Test Transformation

+
+ + + + + + + + + + + + + +
file *
sourceExtension *
targetExtension *
sourceMimetype *
targetMimetype *
sourceEncoding *
targetEncoding *
timeout
testDelay
+
+
+ +
+

ImageMagick Test Transformation

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
file *
targetExtension *
timeout
testDelay
startPage
endPage
alphaRemove
autoOrient
cropGravity
North, NorthEast...Center
cropWidth
cropHeight
cropPercentage
cropXOffset
cropYOffset
thumbnail
resizeWidth
resizeHeight
resizePercentage
allowEnlargement
maintainAspectRatio
+
+
+ + + + + diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerTest.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerTest.java new file mode 100644 index 00000000..bdba93ac --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerTest.java @@ -0,0 +1,67 @@ +/* + * #%L + * Alfresco Transform Core + * %% + * Copyright (C) 2005 - 2020 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 java.io.IOException; + +import org.alfresco.transform.client.model.TransformRequest; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@WebMvcTest(AIOController.class) +public class AIOControllerTest //extends AbstractTransformerControllerTest +{ + + //@Override + protected void mockTransformCommand(String sourceExtension, String targetExtension, String sourceMimetype, + boolean readTargetFileBytes) throws IOException { + // TODO Auto-generated method stub + + } + + //@Override + protected AbstractTransformerController getController() { + // TODO Auto-generated method stub + return null; + } + + //@Override + protected void updateTransformRequestWithSpecificOptions(TransformRequest transformRequest) { + // TODO Auto-generated method stub + + } + + @Test + public void emptyTest() + { + + } +} \ No newline at end of file diff --git a/alfresco-transform-misc/alfresco-transform-misc-boot/Dockerfile b/alfresco-transform-misc/alfresco-transform-misc-boot/Dockerfile index 961f546d..734d0169 100644 --- a/alfresco-transform-misc/alfresco-transform-misc-boot/Dockerfile +++ b/alfresco-transform-misc/alfresco-transform-misc-boot/Dockerfile @@ -9,7 +9,7 @@ ENV JAVA_OPTS="" ARG GROUPNAME=Alfresco ARG GROUPID=1000 ARG MISCUSERNAME=transform-misc -ARG USERID=33004 +ARG USERID=33006 COPY target/${env.project_artifactId}-${env.project_version}.jar /usr/bin diff --git a/pom.xml b/pom.xml index 1e125721..13c6d0de 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ alfresco-transform-misc/alfresco-transform-misc alfresco-transform-misc/alfresco-transform-misc-boot alfresco-transform-core-aio/alfresco-transform-core-aio + alfresco-transform-core-aio/alfresco-transform-core-aio-boot