diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java
index 1946718d..f9207ebf 100644
--- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java
+++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java
@@ -32,6 +32,7 @@ import org.alfresco.transformer.transformers.LibreOfficeAdapter;
import org.alfresco.transformer.transformers.MiscAdapter;
import org.alfresco.transformer.transformers.PdfRendererAdapter;
import org.alfresco.transformer.transformers.TikaAdapter;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@@ -39,6 +40,21 @@ import org.springframework.context.annotation.Primary;
@Configuration
public class AIOCustomConfig
{
+ @Value("${transform.core.libreoffice.path}")
+ private String libreofficePath;
+
+ @Value("${transform.core.pdfrenderer.exe}")
+ private String pdfRendererPath;
+
+ @Value("${transform.core.imagemagick.exe}")
+ private String imageMagickExePath;
+
+ @Value("${transform.core.imagemagick.dyn}")
+ private String imageMagickDynPath;
+
+ @Value("${transform.core.imagemagick.root}")
+ private String imageMagickRootPath;
+
/**
*
* @return Override the TransformRegistryImpl used in {@link AbstractTransformerController}
@@ -50,9 +66,9 @@ public class AIOCustomConfig
AIOTransformRegistry aioTransformRegistry = new AIOTransformRegistry();
aioTransformRegistry.registerTransformer(new MiscAdapter());
aioTransformRegistry.registerTransformer(new TikaAdapter());
- aioTransformRegistry.registerTransformer(new ImageMagickAdapter());
- aioTransformRegistry.registerTransformer(new LibreOfficeAdapter());
- aioTransformRegistry.registerTransformer(new PdfRendererAdapter());
+ aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath));
+ aioTransformRegistry.registerTransformer(new LibreOfficeAdapter(libreofficePath));
+ aioTransformRegistry.registerTransformer(new PdfRendererAdapter(pdfRendererPath));
return aioTransformRegistry;
}
}
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
index f1c633dc..2d295f0f 100644
--- 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
@@ -1,2 +1,12 @@
queue:
- engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.aio.acs}
\ No newline at end of file
+ engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.aio.acs}
+transform:
+ core:
+ pdfrenderer:
+ exe: ${PDFRENDERER_EXE:/usr/bin/alfresco-pdf-renderer}
+ libreoffice:
+ path: ${LIBREOFFICE_HOME:/opt/libreoffice6.3}
+ imagemagick:
+ root: ${IMAGEMAGICK_ROOT:/usr/lib64/ImageMagick-7.0.7}
+ dyn: ${IMAGEMAGICK_DYN:/usr/lib64/ImageMagick-7.0.7/lib}
+ exe: ${IMAGEMAGICK_EXE:/usr/bin/convert}
\ No newline at end of file
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 0deb4b78..7610b210 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
@@ -59,9 +59,9 @@ public class ImageMagickAdapter implements Transformer
private static String ID = "imagemagick";
private ImageMagickCommandExecutor commandExecutor;
- public ImageMagickAdapter()
+ public ImageMagickAdapter(String exe, String dyn, String root) throws Exception
{
- commandExecutor = new ImageMagickCommandExecutor();
+ commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root);
}
@Override
diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/LibreOfficeAdapter.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/LibreOfficeAdapter.java
index 51f33ddd..0853deae 100644
--- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/LibreOfficeAdapter.java
+++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/LibreOfficeAdapter.java
@@ -36,9 +36,9 @@ public class LibreOfficeAdapter implements Transformer
private static String ID = "libreoffice";
private LibreOfficeJavaExecutor javaExecutor;
- public LibreOfficeAdapter()
+ public LibreOfficeAdapter(String execPath) throws Exception
{
- javaExecutor = new LibreOfficeJavaExecutor();
+ javaExecutor = new LibreOfficeJavaExecutor(execPath);
}
@Override
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 ff5360eb..12d4fd6b 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
@@ -46,9 +46,9 @@ public class PdfRendererAdapter implements Transformer
private static String ID = "pdfrenderer";
private PdfRendererCommandExecutor pdfExecutor;
- public PdfRendererAdapter()
+ public PdfRendererAdapter(String execPath) throws Exception
{
- pdfExecutor = new PdfRendererCommandExecutor();
+ pdfExecutor = new PdfRendererCommandExecutor(execPath);
}
@Override
diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml
index 45739a35..92e89ff3 100644
--- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml
+++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml
@@ -81,6 +81,14 @@
org.apache.maven.plugins
maven-surefire-plugin
+
+
+ /usr/bin/convert
+ /usr/lib64/ImageMagick-7.0.7/lib
+ /usr/lib64/ImageMagick-7.0.7
+ ${project.build.directory}
+
+
org.apache.maven.plugins
diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/java/org/alfresco/transformer/ImageMagickController.java b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/java/org/alfresco/transformer/ImageMagickController.java
index 95cfb7b4..d16e7352 100644
--- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/java/org/alfresco/transformer/ImageMagickController.java
+++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/java/org/alfresco/transformer/ImageMagickController.java
@@ -37,6 +37,7 @@ import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
import java.io.File;
import java.util.Map;
+import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import org.alfresco.transformer.executors.ImageMagickCommandExecutor;
@@ -44,7 +45,7 @@ import org.alfresco.transformer.logging.LogEntry;
import org.alfresco.transformer.probes.ProbeTestTransform;
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 org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@@ -79,7 +80,22 @@ public class ImageMagickController extends AbstractTransformerController
{
private static final Logger logger = LoggerFactory.getLogger(ImageMagickController.class);
- private ImageMagickCommandExecutor commandExecutor = new ImageMagickCommandExecutor();
+ @Value("${transform.core.imagemagick.exe}")
+ private String EXE;
+
+ @Value("${transform.core.imagemagick.dyn}")
+ private String DYN;
+
+ @Value("${transform.core.imagemagick.root}")
+ private String ROOT;
+
+ ImageMagickCommandExecutor commandExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT);
+ }
@Override
public String getTransformerName()
diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/application-default.yaml b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/application-default.yaml
index ace915aa..c421f43e 100644
--- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/application-default.yaml
+++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/application-default.yaml
@@ -1,5 +1,10 @@
queue:
engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.imagemagick.acs}
transform:
- config:
- location: classpath:imagemagick_engine_config.json
\ No newline at end of file
+ core:
+ config:
+ location: classpath:imagemagick_engine_config.json
+ imagemagick:
+ root: ${IMAGEMAGICK_ROOT:/usr/lib64/ImageMagick-7.0.7}
+ dyn: ${IMAGEMAGICK_DYN:/usr/lib64/ImageMagick-7.0.7/lib}
+ exe: ${IMAGEMAGICK_EXE:/usr/bin/convert}
\ No newline at end of file
diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java
index 978980e2..62c8c9a4 100644
--- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java
+++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/test/java/org/alfresco/transformer/ImageMagickControllerTest.java
@@ -66,6 +66,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.stubbing.Answer;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.core.io.FileSystemResource;
@@ -77,6 +78,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import javax.annotation.PostConstruct;
+
/**
* Test the ImageMagickController without a server.
* Super class includes tests for the AbstractTransformerController.
@@ -96,7 +99,22 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest
@Mock
private RuntimeExec mockCheckCommand;
- private ImageMagickCommandExecutor commandExecutor = new ImageMagickCommandExecutor();
+ @Value("${transform.core.imagemagick.exe}")
+ private String EXE;
+
+ @Value("${transform.core.imagemagick.dyn}")
+ private String DYN;
+
+ @Value("${transform.core.imagemagick.root}")
+ private String ROOT;
+
+ ImageMagickCommandExecutor commandExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT);
+ }
@SpyBean
private ImageMagickController controller;
@@ -392,4 +410,13 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest
assertEquals(transformRequest.getClientData(), transformReply.getClientData());
assertEquals(transformRequest.getSchema(), transformReply.getSchema());
}
+
+ @Test
+ public void testOverridingExecutorPaths()
+ {
+ //System test property values can me modified in the pom.xml
+ assertEquals(EXE, System.getProperty("IMAGEMAGICK_EXE"));
+ assertEquals(DYN, System.getProperty("IMAGEMAGICK_DYN"));
+ assertEquals(ROOT, System.getProperty("IMAGEMAGICK_ROOT"));
+ }
}
diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/java/org/alfresco/transformer/executors/ImageMagickCommandExecutor.java b/alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/java/org/alfresco/transformer/executors/ImageMagickCommandExecutor.java
index 3808380b..02f46b15 100644
--- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/java/org/alfresco/transformer/executors/ImageMagickCommandExecutor.java
+++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/java/org/alfresco/transformer/executors/ImageMagickCommandExecutor.java
@@ -35,9 +35,31 @@ import java.util.Map;
*/
public class ImageMagickCommandExecutor extends AbstractCommandExecutor
{
- private static final String ROOT = "/usr/lib64/ImageMagick-7.0.7";
- private static final String DYN = ROOT + "/lib";
- private static final String EXE = "/usr/bin/convert";
+ private final String ROOT;
+ private final String DYN;
+ private final String EXE;
+
+ public ImageMagickCommandExecutor(String exe, String dyn, String root)
+ {
+ if (exe == null || exe.isEmpty())
+ {
+ throw new IllegalArgumentException("ImageMagickCommandExecutor EXE variable cannot be null or empty");
+ }
+ if (dyn == null || dyn.isEmpty())
+ {
+ throw new IllegalArgumentException("ImageMagickCommandExecutor DYN variable cannot be null or empty");
+ }
+ if (root == null || root.isEmpty())
+ {
+ throw new IllegalArgumentException("ImageMagickCommandExecutor ROOT variable cannot be null or empty");
+ }
+ this.EXE = exe;
+ this.DYN = dyn;
+ this.ROOT = root;
+
+ super.transformCommand = createTransformCommand();
+ super.checkCommand = createCheckCommand();
+ }
public static final String LICENCE = "This transformer uses ImageMagick from ImageMagick Studio LLC. See the license at http://www.imagemagick.org/script/license.php or in /ImageMagick-license.txt";
diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml
index 43c00a30..288598d0 100644
--- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml
+++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml
@@ -91,6 +91,11 @@
org.apache.maven.plugins
maven-surefire-plugin
+
+
+ /opt/libreoffice6.3
+
+
org.apache.maven.plugins
diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/java/org/alfresco/transformer/LibreOfficeController.java b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/java/org/alfresco/transformer/LibreOfficeController.java
index aa3e2ab8..df773cf9 100644
--- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/java/org/alfresco/transformer/LibreOfficeController.java
+++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/java/org/alfresco/transformer/LibreOfficeController.java
@@ -36,6 +36,7 @@ import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
import java.io.File;
import java.util.Map;
+import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import org.alfresco.transformer.executors.LibreOfficeJavaExecutor;
@@ -44,6 +45,7 @@ import org.alfresco.transformer.probes.ProbeTestTransform;
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 org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@@ -77,7 +79,16 @@ public class LibreOfficeController extends AbstractTransformerController
{
private static final Logger logger = LoggerFactory.getLogger(LibreOfficeController.class);
- private LibreOfficeJavaExecutor javaExecutor = new LibreOfficeJavaExecutor();
+ @Value("${transform.core.libreoffice.home}")
+ private String execPath;
+
+ LibreOfficeJavaExecutor javaExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ javaExecutor = new LibreOfficeJavaExecutor(execPath);
+ }
@Override
public String getTransformerName()
diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/application-default.yaml b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/application-default.yaml
index 29166682..a48b88e0 100644
--- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/application-default.yaml
+++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/application-default.yaml
@@ -1,5 +1,8 @@
queue:
engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.libreoffice.acs}
transform:
- config:
- location: classpath:libreoffice_engine_config.json
\ No newline at end of file
+ core:
+ config:
+ location: classpath:libreoffice_engine_config.json
+ libreoffice:
+ home: ${LIBREOFFICE_HOME:/opt/libreoffice6.3}
\ No newline at end of file
diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/test/java/org/alfresco/transformer/LibreOfficeControllerTest.java b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/test/java/org/alfresco/transformer/LibreOfficeControllerTest.java
index 005b8373..2653ca6c 100644
--- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/test/java/org/alfresco/transformer/LibreOfficeControllerTest.java
+++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/test/java/org/alfresco/transformer/LibreOfficeControllerTest.java
@@ -62,6 +62,8 @@ import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.core.io.FileSystemResource;
@@ -73,6 +75,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import javax.annotation.PostConstruct;
+
/**
* Test the LibreOfficeController without a server.
* Super class includes tests for the AbstractTransformerController.
@@ -87,8 +91,16 @@ public class LibreOfficeControllerTest extends AbstractTransformerControllerTest
@Mock
private ExecutionResult mockExecutionResult;
- @SpyBean
- private LibreOfficeJavaExecutor javaExecutor;
+ @Value("${transform.core.libreoffice.home}")
+ private String execPath;
+
+ LibreOfficeJavaExecutor javaExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ javaExecutor = Mockito.spy(new LibreOfficeJavaExecutor(execPath));
+ }
@SpyBean
private LibreOfficeController controller;
@@ -235,4 +247,11 @@ public class LibreOfficeControllerTest extends AbstractTransformerControllerTest
assertEquals(transformRequest.getClientData(), transformReply.getClientData());
assertEquals(transformRequest.getSchema(), transformReply.getSchema());
}
+
+ @Test
+ public void testOverridingExecutorPaths()
+ {
+ //System test property value can me modified in the pom.xml
+ assertEquals(execPath, System.getProperty("LIBREOFFICE_HOME"));
+ }
}
diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java b/alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java
index bd5b534b..ae7f4d9a 100644
--- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java
+++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/java/org/alfresco/transformer/executors/LibreOfficeJavaExecutor.java
@@ -53,14 +53,20 @@ public class LibreOfficeJavaExecutor implements JavaExecutor
private static final Logger logger = LoggerFactory.getLogger(LibreOfficeJavaExecutor.class);
private static final int JODCONVERTER_TRANSFORMATION_ERROR_CODE = 3088;
- private static final String OFFICE_HOME = "/opt/libreoffice6.3";
+
+ private static String LIBREOFFICE_HOME;
public static final String LICENCE = "This transformer uses LibreOffice from The Document Foundation. See the license at https://www.libreoffice.org/download/license/ or in /libreoffice.txt";
private JodConverter jodconverter;
- public LibreOfficeJavaExecutor()
+ public LibreOfficeJavaExecutor(String path)
{
+ if (path == null || path.isEmpty())
+ {
+ throw new IllegalArgumentException("LibreOfficeJavaExecutor OFFICE_HOME variable cannot be null or empty");
+ }
+ LIBREOFFICE_HOME = path;
jodconverter = createJodConverter();
}
@@ -70,7 +76,7 @@ public class LibreOfficeJavaExecutor implements JavaExecutor
final JodConverterSharedInstance jodconverter = new JodConverterSharedInstance();
- jodconverter.setOfficeHome(OFFICE_HOME); // jodconverter.officeHome
+ jodconverter.setOfficeHome(LIBREOFFICE_HOME); // jodconverter.officeHome
jodconverter.setMaxTasksPerProcess("200"); // jodconverter.maxTasksPerProcess
jodconverter.setTaskExecutionTimeout(timeout); // jodconverter.maxTaskExecutionTimeout
jodconverter.setTaskQueueTimeout(timeout); // jodconverter.taskQueueTimeout
diff --git a/alfresco-transform-misc/alfresco-transform-misc-boot/src/main/resources/application-default.yaml b/alfresco-transform-misc/alfresco-transform-misc-boot/src/main/resources/application-default.yaml
index a2ae6bff..30fea7ee 100644
--- a/alfresco-transform-misc/alfresco-transform-misc-boot/src/main/resources/application-default.yaml
+++ b/alfresco-transform-misc/alfresco-transform-misc-boot/src/main/resources/application-default.yaml
@@ -1,5 +1,6 @@
queue:
engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.misc.acs}
transform:
- config:
- location: classpath:misc_engine_config.json
\ No newline at end of file
+ core:
+ config:
+ location: classpath:misc_engine_config.json
\ No newline at end of file
diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/pom.xml b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/pom.xml
index 045f8121..a219b065 100644
--- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/pom.xml
+++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/pom.xml
@@ -80,6 +80,11 @@
org.apache.maven.plugins
maven-surefire-plugin
+
+
+ /usr/bin/alfresco-pdf-renderer
+
+
org.apache.maven.plugins
diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java
index 5a65ecc8..9e1d38bf 100644
--- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java
+++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/java/org/alfresco/transformer/AlfrescoPdfRendererController.java
@@ -36,6 +36,7 @@ import static org.springframework.http.MediaType.MULTIPART_FORM_DATA_VALUE;
import java.io.File;
import java.util.Map;
+import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import org.alfresco.transformer.executors.PdfRendererCommandExecutor;
@@ -43,7 +44,7 @@ import org.alfresco.transformer.logging.LogEntry;
import org.alfresco.transformer.probes.ProbeTestTransform;
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 org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@@ -77,7 +78,16 @@ public class AlfrescoPdfRendererController extends AbstractTransformerController
private static final Logger logger = LoggerFactory.getLogger(
AlfrescoPdfRendererController.class);
- private PdfRendererCommandExecutor commandExecutor = new PdfRendererCommandExecutor();
+ @Value("${transform.core.pdfrenderer.exe}")
+ private String execPath;
+
+ PdfRendererCommandExecutor commandExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ commandExecutor = new PdfRendererCommandExecutor(execPath);
+ }
@Override
public String getTransformerName()
diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/application-default.yaml b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/application-default.yaml
index b0e1e764..75860056 100644
--- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/application-default.yaml
+++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/application-default.yaml
@@ -1,5 +1,8 @@
queue:
engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.alfresco-pdf-renderer.acs}
transform:
- config:
- location: classpath:pdfrenderer_engine_config.json
\ No newline at end of file
+ core:
+ config:
+ location: classpath:pdfrenderer_engine_config.json
+ pdfrenderer:
+ exe: ${PDFRENDERER_EXE:/usr/bin/alfresco-pdf-renderer}
\ No newline at end of file
diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java
index a14770d3..c209089f 100644
--- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java
+++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/test/java/org/alfresco/transformer/AlfrescoPdfRendererControllerTest.java
@@ -67,6 +67,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.stubbing.Answer;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.SpyBean;
import org.springframework.core.io.FileSystemResource;
@@ -78,6 +79,8 @@ import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
+import javax.annotation.PostConstruct;
+
/**
* Test the AlfrescoPdfRendererController without a server.
* Super class includes tests for the AbstractTransformerController.
@@ -97,8 +100,17 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro
@Mock
private RuntimeExec mockCheckCommand;
-
- private PdfRendererCommandExecutor commandExecutor = new PdfRendererCommandExecutor();
+
+ @Value("${transform.core.pdfrenderer.exe}")
+ private String execPath;
+
+ PdfRendererCommandExecutor commandExecutor;
+
+ @PostConstruct
+ private void init()
+ {
+ commandExecutor = new PdfRendererCommandExecutor(execPath);
+ }
@SpyBean
private AlfrescoPdfRendererController controller;
@@ -315,4 +327,11 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro
assertEquals(transformRequest.getClientData(), transformReply.getClientData());
assertEquals(transformRequest.getSchema(), transformReply.getSchema());
}
+
+ @Test
+ public void testOverridingExecutorPaths()
+ {
+ //System test property value can me modified in the pom.xml
+ assertEquals(execPath, System.getProperty("PDF_RENDERER_EXE"));
+ }
}
diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/java/org/alfresco/transformer/executors/PdfRendererCommandExecutor.java b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/java/org/alfresco/transformer/executors/PdfRendererCommandExecutor.java
index 72c8cd63..87f40c45 100644
--- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/java/org/alfresco/transformer/executors/PdfRendererCommandExecutor.java
+++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/java/org/alfresco/transformer/executors/PdfRendererCommandExecutor.java
@@ -37,7 +37,18 @@ public class PdfRendererCommandExecutor extends AbstractCommandExecutor
{
public static final String LICENCE = "This transformer uses alfresco-pdf-renderer which uses the PDFium library from Google Inc. See the license at https://pdfium.googlesource.com/pdfium/+/master/LICENSE or in /pdfium.txt";
- private static final String EXE = "/usr/bin/alfresco-pdf-renderer";
+ private final String EXE;
+
+ public PdfRendererCommandExecutor(String exe)
+ {
+ if (exe == null || exe.isEmpty())
+ {
+ throw new IllegalArgumentException("PdfRendererCommandExecutor EXE variable cannot be null or empty");
+ }
+ this.EXE = exe;
+ super.transformCommand = createTransformCommand();
+ super.checkCommand = createCheckCommand();
+ }
@Override
protected RuntimeExec createTransformCommand()
diff --git a/alfresco-transform-tika/alfresco-transform-tika-boot/src/main/resources/application-default.yaml b/alfresco-transform-tika/alfresco-transform-tika-boot/src/main/resources/application-default.yaml
index ee9a4f68..0a4b2765 100644
--- a/alfresco-transform-tika/alfresco-transform-tika-boot/src/main/resources/application-default.yaml
+++ b/alfresco-transform-tika/alfresco-transform-tika-boot/src/main/resources/application-default.yaml
@@ -1,5 +1,6 @@
queue:
engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.tika.acs}
transform:
- config:
- location: classpath:tika_engine_config.json
\ No newline at end of file
+ core:
+ config:
+ location: classpath:tika_engine_config.json
\ No newline at end of file
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 f08f4cea..3439d6b3 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
@@ -57,7 +57,7 @@ public class TransformRegistryImpl extends AbstractTransformRegistry
@Autowired
ResourceLoader resourceLoader;
- @Value("${transform.config.location:classpath:engine_config.json}")
+ @Value("${transform.core.config.location:classpath:engine_config.json}")
private String locationFromProperty;
private Resource engineConfig;
diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java
index 013dccc6..c881082a 100644
--- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java
+++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/executors/AbstractCommandExecutor.java
@@ -40,8 +40,8 @@ import org.alfresco.transform.exceptions.TransformException;
*/
public abstract class AbstractCommandExecutor implements CommandExecutor
{
- private final RuntimeExec transformCommand = createTransformCommand();
- private final RuntimeExec checkCommand = createCheckCommand();
+ protected RuntimeExec transformCommand = createTransformCommand();
+ protected RuntimeExec checkCommand = createCheckCommand();
protected abstract RuntimeExec createTransformCommand();
diff --git a/alfresco-transformer-base/src/main/resources/application.yaml b/alfresco-transformer-base/src/main/resources/application.yaml
index d18bf043..4191f918 100644
--- a/alfresco-transformer-base/src/main/resources/application.yaml
+++ b/alfresco-transformer-base/src/main/resources/application.yaml
@@ -48,3 +48,4 @@ management:
container:
name: ${HOSTNAME:t-engine}
+
diff --git a/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java b/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
index c6ba029f..ca2eafa8 100644
--- a/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
+++ b/alfresco-transformer-base/src/test/java/org/alfresco/transformer/AbstractTransformerControllerTest.java
@@ -44,7 +44,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLDecoder;
import java.nio.channels.FileChannel;