From fc96f9aa5f376e176443a94a2571fbd09e51c90d Mon Sep 17 00:00:00 2001 From: Erik Knizat Date: Fri, 3 Apr 2020 17:15:36 +0100 Subject: [PATCH] Do the wiring --- .../alfresco/transformer/AIOController.java | 4 +- .../alfresco/transformer/AIOCustomConfig.java | 47 +++++++++++++++++++ .../transformer/AIOControllerTest.java | 8 +++- .../transformers/AllInOneTransformer.java | 3 ++ .../transformers/PdfRendererAdapter.java | 2 +- .../main/resources/application-default.yaml | 5 +- .../resources/imagemagick_engine_config.json} | 0 .../main/resources/application-default.yaml | 5 +- .../resources/libreoffice_engine_config.json} | 0 .../main/resources/application-default.yaml | 5 +- .../resources/pdfrenderer_engine_config.json} | 0 .../AbstractTransformerController.java | 1 + .../transformer/TransformRegistryImpl.java | 10 ++-- 13 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java rename alfresco-transform-imagemagick/{alfresco-transform-imagemagick-boot/src/main/resources/engine_config.json => alfresco-transform-imagemagick/src/main/resources/imagemagick_engine_config.json} (100%) rename alfresco-transform-libreoffice/{alfresco-transform-libreoffice-boot/src/main/resources/engine_config.json => alfresco-transform-libreoffice/src/main/resources/libreoffice_engine_config.json} (100%) rename alfresco-transform-pdf-renderer/{alfresco-transform-pdf-renderer-boot/src/main/resources/engine_config.json => alfresco-transform-pdf-renderer/src/main/resources/pdfrenderer_engine_config.json} (100%) diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java index b100ac7f..006649ae 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOController.java @@ -50,6 +50,7 @@ import org.alfresco.transformer.probes.ProbeTestTransform; import org.alfresco.transformer.transformers.AllInOneTransformer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.Resource; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -74,7 +75,8 @@ public class AIOController extends AbstractTransformerController TEST_DELAY }; - private AllInOneTransformer transformer = new AllInOneTransformer(); + @Autowired + private AllInOneTransformer transformer; @Override public String getTransformerName() 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 new file mode 100644 index 00000000..7812f1dc --- /dev/null +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/src/main/java/org/alfresco/transformer/AIOCustomConfig.java @@ -0,0 +1,47 @@ +package org.alfresco.transformer; + +import jdk.jfr.Name; +import org.alfresco.transform.client.model.config.TransformConfig; +import org.alfresco.transform.client.registry.TransformServiceRegistry; +import org.alfresco.transformer.transformers.AllInOneTransformer; +import org.alfresco.transformer.transformers.Transformer; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +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; + +@Configuration +public class AIOCustomConfig +{ + + @Bean("AllInOneTransformer") + public Transformer aioTransformer() + { + return new AllInOneTransformer(); + } + + /** + * + * @return Override the TransformRegistryImpl used in {@link AbstractTransformerController} + */ + @Bean + @Primary + public TransformServiceRegistry transformRegistryOverride() + { + return new TransformRegistryImpl() + { + + @Autowired + @Qualifier("AllInOneTransformer") + Transformer transformer; + + @Override + TransformConfig getTransformConfig() + { + return transformer.getTransformConfig(); + } + }; + } +} 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 index bdba93ac..30b877c6 100644 --- 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 @@ -32,14 +32,20 @@ import java.io.IOException; import org.alfresco.transform.client.model.TransformRequest; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.context.annotation.Import; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @WebMvcTest(AIOController.class) +@Import(AIOCustomConfig.class) public class AIOControllerTest //extends AbstractTransformerControllerTest { + @Autowired + AIOController aioController; + //@Override protected void mockTransformCommand(String sourceExtension, String targetExtension, String sourceMimetype, boolean readTargetFileBytes) throws IOException { @@ -62,6 +68,6 @@ public class AIOControllerTest //extends AbstractTransformerControllerTest @Test public void emptyTest() { - + aioController.info(); } } \ No newline at end of file diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AllInOneTransformer.java b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AllInOneTransformer.java index 4d81f487..c890798c 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AllInOneTransformer.java +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/src/main/java/org/alfresco/transformer/transformers/AllInOneTransformer.java @@ -62,6 +62,9 @@ public class AllInOneTransformer implements Transformer { this.registerTransformer(new MiscAdapter()); this.registerTransformer(new TikaAdapter()); + this.registerTransformer(new ImageMagickAdapter()); + this.registerTransformer(new LibreOfficeAdapter()); + this.registerTransformer(new PdfRendererAdapter()); } catch (Exception e) { 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 2a4d92ba..f4514645 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 @@ -37,7 +37,7 @@ import org.alfresco.transformer.PdfRendererOptionsBuilder; public class PdfRendererAdapter extends AbstractTransformer { - private static String CONFIG_PREFIX = "pdf-renderer"; + private static String CONFIG_PREFIX = "pdfrenderer"; private PdfRendererCommandExecutor pdfExecutor; //TODO move key strings to a central class 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 ef95de69..ace915aa 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,2 +1,5 @@ queue: - engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.imagemagick.acs} \ No newline at end of file + 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 diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/engine_config.json b/alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/resources/imagemagick_engine_config.json similarity index 100% rename from alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/src/main/resources/engine_config.json rename to alfresco-transform-imagemagick/alfresco-transform-imagemagick/src/main/resources/imagemagick_engine_config.json 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 ce4ca8b6..29166682 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,2 +1,5 @@ queue: - engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.libreoffice.acs} \ No newline at end of file + 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 diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/engine_config.json b/alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/resources/libreoffice_engine_config.json similarity index 100% rename from alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/src/main/resources/engine_config.json rename to alfresco-transform-libreoffice/alfresco-transform-libreoffice/src/main/resources/libreoffice_engine_config.json 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 729f6cc9..7e73df69 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,2 +1,5 @@ queue: - engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.alfresco-pdf-renderer.acs} \ No newline at end of file + engineRequestQueue: ${TRANSFORM_ENGINE_REQUEST_QUEUE:org.alfresco.transform.engine.alfresco-pdf-renderer.acs} +transform: + config: + location: classpath:pdfrenderer_config.json \ No newline at end of file diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/engine_config.json b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/resources/pdfrenderer_engine_config.json similarity index 100% rename from alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer-boot/src/main/resources/engine_config.json rename to alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/src/main/resources/pdfrenderer_engine_config.json 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 862d50ae..ab6e6ce3 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 @@ -115,6 +115,7 @@ public abstract class AbstractTransformerController implements TransformControll @GetMapping(value = "/transform/config") public ResponseEntity info() { + // TODO - This cast should not be here logger.info("GET Transform Config."); final TransformConfig transformConfig = ((TransformRegistryImpl) transformRegistry).getTransformConfig(); 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 f494685c..efa3ade5 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 @@ -52,9 +52,11 @@ public class TransformRegistryImpl extends AbstractTransformRegistry { private static final Logger log = LoggerFactory.getLogger(TransformRegistryImpl.class); - private static final String ENGINE_CONFIG_JSON = "classpath:engine_config.json"; + // TODO - do we really need this string? + @Value("${transform.config.location:classpath:engine_config.json}") + private String locationFromProperty; - @Value(ENGINE_CONFIG_JSON) + @Value("${transform.config.location:classpath:engine_config.json}") private Resource engineConfig; // Holds the structures used by AbstractTransformRegistry to look up what is supported. @@ -72,7 +74,7 @@ public class TransformRegistryImpl extends AbstractTransformRegistry catch (IOException e) { throw new TransformException(INTERNAL_SERVER_ERROR.value(), - "Could not read " + ENGINE_CONFIG_JSON, e); + "Could not read " + engineConfig.getDescription(), e); } } @@ -80,7 +82,7 @@ public class TransformRegistryImpl extends AbstractTransformRegistry public void afterPropertiesSet() { TransformConfig transformConfig = getTransformConfig(); - registerAll(transformConfig, null, ENGINE_CONFIG_JSON); + registerAll(transformConfig, null, locationFromProperty); } @Override