diff --git a/deprecated/alfresco-transformer-base/pom.xml b/deprecated/alfresco-transformer-base/pom.xml index 86ea2c87..b15dff17 100644 --- a/deprecated/alfresco-transformer-base/pom.xml +++ b/deprecated/alfresco-transformer-base/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-transform-core - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT ../../pom.xml diff --git a/engines/aio/pom.xml b/engines/aio/pom.xml index 56715e35..0e7ad8be 100644 --- a/engines/aio/pom.xml +++ b/engines/aio/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/base/pom.xml b/engines/base/pom.xml index af7872f1..73e985ea 100644 --- a/engines/base/pom.xml +++ b/engines/base/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/base/src/main/resources/application.yaml b/engines/base/src/main/resources/application.yaml index c253d7aa..47468c50 100644 --- a/engines/base/src/main/resources/application.yaml +++ b/engines/base/src/main/resources/application.yaml @@ -53,7 +53,7 @@ management: container: name: ${HOSTNAME:t-engine} - behind-ingres: true + behind-ingres: false async-task-executor: core-pool-size: 1 diff --git a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java index 76317223..650a01a1 100644 --- a/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java +++ b/engines/base/src/test/java/org/alfresco/transform/base/TransformControllerTest.java @@ -57,6 +57,7 @@ import org.springframework.core.io.UrlResource; import org.springframework.http.ResponseEntity; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; @@ -177,6 +178,29 @@ public class TransformControllerTest return logMessages; } + + private void testPageWithOrWithoutIngresPrefix(String url, boolean behindIngres, String... expected) throws Exception + { + boolean origBehindIngres = (boolean) ReflectionTestUtils.getField(transformController, "behindIngres"); + try + { + ReflectionTestUtils.setField(transformController, "behindIngres", behindIngres); + + mockMvc.perform(MockMvcRequestBuilders.get(url)) + .andExpect(status().isOk()) + .andExpect(content().string(containsString(expected[0]))) + .andExpect(content().string(containsString(expected[1]))) + .andExpect(content().string(containsString(expected[2]))) + .andExpect(content().string(containsString(expected[3]))) + .andExpect(content().string(containsString(expected[4]))) + .andExpect(content().string(containsString(expected[5]))); + } + finally + { + ReflectionTestUtils.setField(transformController, "behindIngres", origBehindIngres); + } + } + @Test public void testVersionEndpointIncludesAvailable() throws Exception { @@ -188,25 +212,72 @@ public class TransformControllerTest @Test public void testRootEndpointReturnsTestPage() throws Exception { - mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_ROOT)) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("TwoCustomTransformers Test Page"))); + testPageWithOrWithoutIngresPrefix(ENDPOINT_ROOT, false, + "TwoCustomTransformers Test Page", + "action=\"/test\"", + "Log", + "Ready", + "Live", + "Config"); + } + + @Test + public void testRootEndpointReturnsTestPageWithIngres() throws Exception + { + testPageWithOrWithoutIngresPrefix(ENDPOINT_ROOT, true, + "TwoCustomTransformers Test Page", + "action=\"/twocustomtransformers/test\"", + "href=\"/twocustomtransformers/log\"", + "Ready", + "Live", + "Config"); } @Test public void testErrorEndpointReturnsErrorPage() throws Exception { - mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_ERROR)) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("TwoCustomTransformers Error Page"))); + testPageWithOrWithoutIngresPrefix(ENDPOINT_ERROR, false, + "TwoCustomTransformers Error Page", + "Test", + "Log", + "Ready", + "Live", + "Config"); } + + @Test + public void testErrorEndpointReturnsErrorPageWithIngres() throws Exception + { + testPageWithOrWithoutIngresPrefix(ENDPOINT_ERROR, true, + "TwoCustomTransformers Error Page", + "href=\"/twocustomtransformers/\"", + "href=\"/twocustomtransformers/log\"", + "Ready", + "Live", + "Config"); } @Test public void testLogEndpointReturnsLogPage() throws Exception { - mockMvc.perform(MockMvcRequestBuilders.get(ENDPOINT_LOG)) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("TwoCustomTransformers Log Entries"))); + testPageWithOrWithoutIngresPrefix(ENDPOINT_LOG, false, + "TwoCustomTransformers Log Entries", + "Test", + "Log", + "Ready", + "Live", + "Config"); + } + + @Test + public void testLogEndpointReturnsLogPageWithIngres() throws Exception + { + testPageWithOrWithoutIngresPrefix(ENDPOINT_LOG, true, + "TwoCustomTransformers Log Entries", + "href=\"/twocustomtransformers/\"", + "Log", + "Ready", + "Live", + "Config"); } @Test diff --git a/engines/example/pom.xml b/engines/example/pom.xml index ea1536f8..cf9f1c6f 100644 --- a/engines/example/pom.xml +++ b/engines/example/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/imagemagick/pom.xml b/engines/imagemagick/pom.xml index 6978dd77..66e11f2e 100644 --- a/engines/imagemagick/pom.xml +++ b/engines/imagemagick/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/libreoffice/pom.xml b/engines/libreoffice/pom.xml index a55363f9..7aa9de31 100644 --- a/engines/libreoffice/pom.xml +++ b/engines/libreoffice/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/misc/pom.xml b/engines/misc/pom.xml index 499fd60f..e4d473a5 100644 --- a/engines/misc/pom.xml +++ b/engines/misc/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/pdfrenderer/pom.xml b/engines/pdfrenderer/pom.xml index c4c81e21..6b423266 100644 --- a/engines/pdfrenderer/pom.xml +++ b/engines/pdfrenderer/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/engines/tika/pom.xml b/engines/tika/pom.xml index ed55a440..6b66faab 100644 --- a/engines/tika/pom.xml +++ b/engines/tika/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core ../../pom.xml - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/model/pom.xml b/model/pom.xml index 740eebd6..fe1e3ac7 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -8,7 +8,7 @@ org.alfresco alfresco-transform-core - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT diff --git a/model/src/main/java/org/alfresco/transform/common/TransformerDebug.java b/model/src/main/java/org/alfresco/transform/common/TransformerDebug.java index 3d9f0a53..a88324a4 100644 --- a/model/src/main/java/org/alfresco/transform/common/TransformerDebug.java +++ b/model/src/main/java/org/alfresco/transform/common/TransformerDebug.java @@ -78,6 +78,10 @@ public class TransformerDebug } } + /** + * @deprecated Only called from the deprecated transformer base + */ + @Deprecated public void pushTransform(String reference, String sourceMimetype, String targetMimetype, File sourceFile, String transformerName) { final long sourceSizeInBytes = sourceFile.length(); diff --git a/model/src/test/java/org/alfresco/transform/common/TransformerDebugTest.java b/model/src/test/java/org/alfresco/transform/common/TransformerDebugTest.java index 46a58c9f..ee7e9480 100644 --- a/model/src/test/java/org/alfresco/transform/common/TransformerDebugTest.java +++ b/model/src/test/java/org/alfresco/transform/common/TransformerDebugTest.java @@ -39,6 +39,10 @@ import java.util.StringJoiner; import static org.alfresco.transform.common.Mimetype.MIMETYPE_TEXT_PLAIN; import static org.alfresco.transform.common.Mimetype.MIMETYPE_WORD; +import static org.alfresco.transform.common.RepositoryClientData.CLIENT_DATA_SEPARATOR; +import static org.alfresco.transform.common.RepositoryClientData.DEBUG; +import static org.alfresco.transform.common.RepositoryClientData.DEBUG_SEPARATOR; +import static org.alfresco.transform.common.RepositoryClientData.REPO_ID; import static org.junit.jupiter.api.Assertions.*; /** @@ -59,14 +63,16 @@ class TransformerDebugTest .replaceAll(" [\\d,]+ ms", " -- ms"); } - private void twoStepTransform(boolean isTEngine, boolean fail, Level logLevel) + private void twoStepTransform(boolean isTEngine, boolean fail, Level logLevel, String renditionName, + long sourceSize) { transformerDebug.setIsTEngine(isTEngine); monitorLogs(logLevel); TransformRequest request = TransformRequest.builder() - .withSourceSize(1234L) + .withSourceSize(sourceSize) .withInternalContext(InternalContext.initialise(null)) + .withClientData(clientDataWithDebugRequest(renditionName)) .build(); TransformStack.setInitialSourceReference(request.getInternalContext(), "fileRef"); @@ -102,6 +108,22 @@ class TransformerDebugTest } } + private String clientDataWithDebugRequest(String renditionName) + { + return new StringJoiner(CLIENT_DATA_SEPARATOR) + .add(REPO_ID + "ACS1234") + .add("1") + .add(renditionName) + .add("3") + .add("4") + .add("5") + .add("54321") + .add("7") + .add("8") + .add(DEBUG) + .toString(); + } + private void monitorLogs(Level logLevel) { Logger logger = (Logger)LoggerFactory.getLogger(TransformerDebug.class); @@ -122,7 +144,7 @@ class TransformerDebugTest @Test void testRouterTwoStepTransform() { - twoStepTransform(false, false, Level.DEBUG); + twoStepTransform(false, false, Level.DEBUG, "", 1234L); Assertions.assertEquals("" + "1 txt pdf 1.2 KB wrapper\n" + @@ -137,7 +159,7 @@ class TransformerDebugTest @Test void testRouterTwoStepTransformWithTrace() { - twoStepTransform(false, false, Level.TRACE); + twoStepTransform(false, false, Level.TRACE, "", 1234L); // With trace there are "Finished" lines for nested transforms, like a T-Engine's debug but still without // the size and rendition name @@ -156,7 +178,7 @@ class TransformerDebugTest @Test void testEngineTwoStepTransform() { - twoStepTransform(true, false, Level.DEBUG); + twoStepTransform(true, false, Level.DEBUG, "", 1234L); // Note the first and last lines would only ever be logged on the router, but the expected data includes // the extra "Finished" lines, sizes and renditions (if set in client data). @@ -175,31 +197,110 @@ class TransformerDebugTest @Test void testRouterTwoStepTransformWithFailure() { - twoStepTransform(false, true, Level.DEBUG); + twoStepTransform(false, true, Level.DEBUG, "", 1234L); Assertions.assertEquals("" + - "1 txt pdf 1.2 KB wrapper\n" + - "1.1 txt doc transformer1\n" + - "1.2 doc pdf transformer2\n" + - "1.2 k1=\"v1\"\n" + - "1.2 k2=\"v2\"\n" + - "1.2 Dummy error", - getTransformerDebugOutput()); + "1 txt pdf 1.2 KB wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1.2 Dummy error", + getTransformerDebugOutput()); + } + + @Test + void testRenditionName() + { + twoStepTransform(false, false, Level.DEBUG, "renditionName", 1234L); + + Assertions.assertEquals("" + + "1 txt pdf 1.2 KB -- renditionName -- wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1 Finished in -- ms", + getTransformerDebugOutput()); + } + + @Test + void testMetadataExtract() + { + twoStepTransform(false, false, Level.DEBUG, "transform:alfresco-metadata-extract", 1234L); + + Assertions.assertEquals("" + + "1 txt pdf 1.2 KB -- metadataExtract -- wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1 Finished in -- ms", + getTransformerDebugOutput()); + } + + @Test + void testMetadataEmbed() + { + twoStepTransform(false, false, Level.DEBUG, "transform:alfresco-metadata-embed", 1234L); + + Assertions.assertEquals("" + + "1 txt pdf 1.2 KB -- metadataEmbed -- wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1 Finished in -- ms", + getTransformerDebugOutput()); + } + + @Test + void testSourceSize1Byte() + { + twoStepTransform(false, false, Level.DEBUG, "", 1); + + Assertions.assertEquals("" + + "1 txt pdf 1 byte wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1 Finished in -- ms", + getTransformerDebugOutput()); + } + + @Test + void testSourceSize23TB() + { + twoStepTransform(false, false, Level.DEBUG, "", 23L*1024*1024*1024*1024); + + Assertions.assertEquals("" + + "1 txt pdf 23 TB wrapper\n" + + "1.1 txt doc transformer1\n" + + "1.2 doc pdf transformer2\n" + + "1.2 k1=\"v1\"\n" + + "1.2 k2=\"v2\"\n" + + "1 Finished in -- ms", + getTransformerDebugOutput()); } @Test void testLogFailure() { monitorLogs(Level.TRACE); - + + String origClientData = clientDataWithDebugRequest(""); TransformReply reply = TransformReply.builder() .withInternalContext(InternalContext.initialise(null)) .withErrorDetails("T-Request was null - a major error") + .withClientData(origClientData) .build(); transformerDebug.logFailure(reply); - Assertions.assertEquals(" T-Request was null - a major error", getTransformerDebugOutput()); + String expectedDebug = " T-Request was null - a major error"; + Assertions.assertEquals(expectedDebug, getTransformerDebugOutput()); + assertEquals(origClientData+DEBUG_SEPARATOR+expectedDebug, reply.getClientData()); } @Test diff --git a/pom.xml b/pom.xml index 16e3183f..66a0406d 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.alfresco alfresco-transform-core - 3.0.1-HXP-A2-SNAPSHOT + 3.0.0-HXP-A3-SNAPSHOT Alfresco Transform Core pom