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 f9207ebf..7721e6fa 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 @@ -55,6 +55,12 @@ public class AIOCustomConfig @Value("${transform.core.imagemagick.root}") private String imageMagickRootPath; + @Value("${transform.core.imagemagick.coders}") + private String imageMagickCodersPath; + + @Value("${transform.core.imagemagick.config}") + private String imageMagickConfigPath; + /** * * @return Override the TransformRegistryImpl used in {@link AbstractTransformerController} @@ -66,7 +72,7 @@ public class AIOCustomConfig AIOTransformRegistry aioTransformRegistry = new AIOTransformRegistry(); aioTransformRegistry.registerTransformer(new MiscAdapter()); aioTransformRegistry.registerTransformer(new TikaAdapter()); - aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath)); + aioTransformRegistry.registerTransformer(new ImageMagickAdapter(imageMagickExePath, imageMagickDynPath, imageMagickRootPath, imageMagickCodersPath, imageMagickConfigPath)); 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 2d295f0f..02ef6ac9 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 @@ -9,4 +9,6 @@ transform: 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 + exe: ${IMAGEMAGICK_EXE:/usr/bin/convert} + coders: ${IMAGEMAGICK_CODERS:} + config: ${IMAGEMAGICK_CONFIG:} \ No newline at end of file diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerImageMagickTest.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerImageMagickTest.java index cc57695a..9ea38aa1 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerImageMagickTest.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/test/java/org/alfresco/transformer/AIOControllerImageMagickTest.java @@ -63,7 +63,7 @@ public class AIOControllerImageMagickTest extends ImageMagickControllerTest @PostConstruct private void init() throws Exception { - adapter = new ImageMagickAdapter(EXE, DYN, ROOT); + adapter = new ImageMagickAdapter(EXE, DYN, ROOT, CODERS, CONFIG); } @Before @Override 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 7610b210..aca409e4 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(String exe, String dyn, String root) throws Exception + public ImageMagickAdapter(String exe, String dyn, String root, String coder, String config) throws Exception { - commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root); + commandExecutor = new ImageMagickCommandExecutor(exe, dyn, root, coder, config); } @Override 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 d16e7352..c2e54201 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 @@ -89,12 +89,18 @@ public class ImageMagickController extends AbstractTransformerController @Value("${transform.core.imagemagick.root}") private String ROOT; + @Value("${transform.core.imagemagick.coders}") + private String CODERS; + + @Value("${transform.core.imagemagick.config}") + private String CONFIG; + ImageMagickCommandExecutor commandExecutor; @PostConstruct private void init() { - commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT); + commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT, CODERS, CONFIG); } @Override 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 c421f43e..06a4f65f 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 @@ -7,4 +7,6 @@ transform: 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 + exe: ${IMAGEMAGICK_EXE:/usr/bin/convert} + coders: ${IMAGEMAGICK_CODERS:} + config: ${IMAGEMAGICK_CONFIG:} \ 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 a5334ed1..f45205b3 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 @@ -109,12 +109,18 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest @Value("${transform.core.imagemagick.root}") protected String ROOT; + @Value("${transform.core.imagemagick.coders}") + protected String CODERS; + + @Value("${transform.core.imagemagick.config}") + protected String CONFIG; + ImageMagickCommandExecutor commandExecutor; @PostConstruct private void init() { - commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT); + commandExecutor = new ImageMagickCommandExecutor(EXE, DYN, ROOT, CODERS, CONFIG); } @Autowired 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 02f46b15..34d21424 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 @@ -38,8 +38,10 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor private final String ROOT; private final String DYN; private final String EXE; + private final String CODERS; + private final String CONFIG; - public ImageMagickCommandExecutor(String exe, String dyn, String root) + public ImageMagickCommandExecutor(String exe, String dyn, String root, String coders, String config) { if (exe == null || exe.isEmpty()) { @@ -56,6 +58,8 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor this.EXE = exe; this.DYN = dyn; this.ROOT = root; + this.CODERS = coders; + this.CONFIG = config; super.transformCommand = createTransformCommand(); super.checkCommand = createCheckCommand(); @@ -76,6 +80,16 @@ public class ImageMagickCommandExecutor extends AbstractCommandExecutor processProperties.put("MAGICK_HOME", ROOT); processProperties.put("DYLD_FALLBACK_LIBRARY_PATH", DYN); processProperties.put("LD_LIBRARY_PATH", DYN); + + //Optional properties (see also https://imagemagick.org/script/resources.php#environment) + if (CODERS != null && !CODERS.isBlank()) + { + processProperties.put("MAGICK_CODER_MODULE_PATH", CODERS); + } + if (CONFIG != null && !CONFIG.isBlank()) + { + processProperties.put("MAGICK_CONFIGURE_PATH", CONFIG); + } runtimeExec.setProcessProperties(processProperties); Map defaultProperties = new HashMap<>();