From a98f937b4ac9e4e95f6166f5ea0e6d9b39290f35 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Wed, 5 Jan 2022 12:17:17 +0000 Subject: [PATCH] ACS-2002 Enhance T-Router debug (#507) [trigger release] 2.5.5-A1 By default T-Engines now provide the more readable TransformerDebug DEBUG messages, rather than the original detailed request and reply messages, which are still available as TRACE. --- .../alfresco-transform-core-aio-boot/pom.xml | 2 +- .../alfresco-transform-core-aio/pom.xml | 2 +- .../pom.xml | 2 +- .../ImageMagickControllerTest.java | 16 +---- .../alfresco-transform-imagemagick/pom.xml | 2 +- .../pom.xml | 2 +- .../LibreOfficeControllerTest.java | 14 +--- .../alfresco-transform-libreoffice/pom.xml | 2 +- .../alfresco-transform-misc-boot/pom.xml | 2 +- .../alfresco-transform-misc/pom.xml | 2 +- .../pom.xml | 2 +- .../AlfrescoPdfRendererControllerTest.java | 14 +--- .../alfresco-transform-pdf-renderer/pom.xml | 2 +- .../alfresco-transform-tika-boot/pom.xml | 2 +- .../transformer/TikaControllerTest.java | 15 +---- .../alfresco-transform-tika/pom.xml | 2 +- alfresco-transformer-base/pom.xml | 4 +- .../AbstractTransformerController.java | 65 ++++++++++++++----- .../transformer/QueueTransformService.java | 4 +- .../config/WebApplicationConfig.java | 9 ++- .../messaging/TransformReplySender.java | 2 +- .../src/main/resources/application.yaml | 1 + .../AbstractTransformerControllerTest.java | 30 ++++++++- pom.xml | 4 +- 24 files changed, 113 insertions(+), 89 deletions(-) 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 index 8835dc02..7b1a5290 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio-boot/pom.xml @@ -9,7 +9,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-core-aio/alfresco-transform-core-aio/pom.xml b/alfresco-transform-core-aio/alfresco-transform-core-aio/pom.xml index 62d7d308..d01055b9 100644 --- a/alfresco-transform-core-aio/alfresco-transform-core-aio/pom.xml +++ b/alfresco-transform-core-aio/alfresco-transform-core-aio/pom.xml @@ -8,7 +8,7 @@ alfresco-transform-core org.alfresco - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml index 59042f09..d8d8fa4e 100644 --- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml +++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick-boot/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml 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 65d58c17..7f1709dd 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 @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -51,7 +51,6 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; -import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -380,18 +379,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest File sourceFile = getTestFile("quick." + sourceExtension, true); String targetFileRef = UUID.randomUUID().toString(); - // Transformation Request POJO - TransformRequest transformRequest = new TransformRequest(); - transformRequest.setRequestId("1"); - transformRequest.setSchema(1); - transformRequest.setClientData("Alfresco Digital Business Platform"); - transformRequest.setTransformRequestOptions(new HashMap<>()); - transformRequest.setSourceReference(sourceFileRef); - transformRequest.setSourceExtension(sourceExtension); - transformRequest.setSourceMediaType(sourceMimetype); - transformRequest.setSourceSize(sourceFile.length()); - transformRequest.setTargetExtension(targetExtension); - transformRequest.setTargetMediaType(targetMimetype); + TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile); // HTTP Request HttpHeaders headers = new HttpHeaders(); diff --git a/alfresco-transform-imagemagick/alfresco-transform-imagemagick/pom.xml b/alfresco-transform-imagemagick/alfresco-transform-imagemagick/pom.xml index fa7ead45..8a382597 100644 --- a/alfresco-transform-imagemagick/alfresco-transform-imagemagick/pom.xml +++ b/alfresco-transform-imagemagick/alfresco-transform-imagemagick/pom.xml @@ -8,7 +8,7 @@ alfresco-transform-core org.alfresco - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml index b9464bfc..0e39c946 100644 --- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml +++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice-boot/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml 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 82b7b914..c9a71509 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 @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -51,7 +51,6 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; -import java.util.HashMap; import java.util.UUID; import javax.annotation.PostConstruct; @@ -228,16 +227,7 @@ public class LibreOfficeControllerTest extends AbstractTransformerControllerTest File sourceFile = getTestFile("quick." + sourceExtension, true); String targetFileRef = UUID.randomUUID().toString(); - // Transformation Request POJO - TransformRequest transformRequest = new TransformRequest(); - transformRequest.setRequestId("1"); - transformRequest.setSchema(1); - transformRequest.setClientData("Alfresco Digital Business Platform"); - transformRequest.setTransformRequestOptions(new HashMap<>()); - transformRequest.setSourceReference(sourceFileRef); - transformRequest.setSourceExtension(sourceExtension); - transformRequest.setSourceSize(sourceFile.length()); - transformRequest.setTargetExtension(targetExtension); + TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile); // HTTP Request HttpHeaders headers = new HttpHeaders(); diff --git a/alfresco-transform-libreoffice/alfresco-transform-libreoffice/pom.xml b/alfresco-transform-libreoffice/alfresco-transform-libreoffice/pom.xml index 4a627526..32066e38 100644 --- a/alfresco-transform-libreoffice/alfresco-transform-libreoffice/pom.xml +++ b/alfresco-transform-libreoffice/alfresco-transform-libreoffice/pom.xml @@ -8,7 +8,7 @@ alfresco-transform-core org.alfresco - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml b/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml index 52e9cba0..f7503e8f 100644 --- a/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml +++ b/alfresco-transform-misc/alfresco-transform-misc-boot/pom.xml @@ -9,7 +9,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-misc/alfresco-transform-misc/pom.xml b/alfresco-transform-misc/alfresco-transform-misc/pom.xml index c19bed81..753a033c 100644 --- a/alfresco-transform-misc/alfresco-transform-misc/pom.xml +++ b/alfresco-transform-misc/alfresco-transform-misc/pom.xml @@ -9,7 +9,7 @@ alfresco-transform-core org.alfresco - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml 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 b04a3372..d11ac173 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 @@ -9,7 +9,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml 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 d9d21821..0f729862 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 @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -51,7 +51,6 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.util.Arrays; -import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -292,16 +291,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro File sourceFile = getTestFile("quick." + sourceExtension, true); String targetFileRef = UUID.randomUUID().toString(); - // Transformation Request POJO - TransformRequest transformRequest = new TransformRequest(); - transformRequest.setRequestId("1"); - transformRequest.setSchema(1); - transformRequest.setClientData("Alfresco Digital Business Platform"); - transformRequest.setTransformRequestOptions(new HashMap<>()); - transformRequest.setSourceReference(sourceFileRef); - transformRequest.setSourceExtension(sourceExtension); - transformRequest.setSourceSize(sourceFile.length()); - transformRequest.setTargetExtension(targetExtension); + TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile); // HTTP Request HttpHeaders headers = new HttpHeaders(); diff --git a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/pom.xml b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/pom.xml index d4e190da..1660b28d 100644 --- a/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/pom.xml +++ b/alfresco-transform-pdf-renderer/alfresco-transform-pdf-renderer/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-tika/alfresco-transform-tika-boot/pom.xml b/alfresco-transform-tika/alfresco-transform-tika-boot/pom.xml index c8680e34..6ff5ea13 100644 --- a/alfresco-transform-tika/alfresco-transform-tika-boot/pom.xml +++ b/alfresco-transform-tika/alfresco-transform-tika-boot/pom.xml @@ -7,7 +7,7 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transform-tika/alfresco-transform-tika-boot/src/test/java/org/alfresco/transformer/TikaControllerTest.java b/alfresco-transform-tika/alfresco-transform-tika-boot/src/test/java/org/alfresco/transformer/TikaControllerTest.java index 164b3376..2727d292 100644 --- a/alfresco-transform-tika/alfresco-transform-tika-boot/src/test/java/org/alfresco/transformer/TikaControllerTest.java +++ b/alfresco-transform-tika/alfresco-transform-tika-boot/src/test/java/org/alfresco/transformer/TikaControllerTest.java @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -85,7 +85,6 @@ import static org.springframework.util.StringUtils.getFilenameExtension; import java.io.ByteArrayInputStream; import java.io.File; import java.io.IOException; -import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -609,17 +608,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest File sourceFile = getTestFile("quick." + sourceExtension, true); String targetFileRef = UUID.randomUUID().toString(); - // Transformation Request POJO - TransformRequest transformRequest = new TransformRequest(); - transformRequest.setRequestId("1"); - transformRequest.setSchema(1); - transformRequest.setClientData("Alfresco Digital Business Platform"); - transformRequest.setTransformRequestOptions(new HashMap<>()); - transformRequest.setSourceReference(sourceFileRef); - transformRequest.setSourceExtension(sourceExtension); - transformRequest.setSourceSize(sourceFile.length()); - transformRequest.setTargetExtension(targetExtension); - transformRequest.setSourceMediaType(sourceMimetype); + TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile); // HTTP Request HttpHeaders headers = new HttpHeaders(); diff --git a/alfresco-transform-tika/alfresco-transform-tika/pom.xml b/alfresco-transform-tika/alfresco-transform-tika/pom.xml index 430e1183..3672452d 100644 --- a/alfresco-transform-tika/alfresco-transform-tika/pom.xml +++ b/alfresco-transform-tika/alfresco-transform-tika/pom.xml @@ -8,7 +8,7 @@ alfresco-transform-core org.alfresco - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../../pom.xml diff --git a/alfresco-transformer-base/pom.xml b/alfresco-transformer-base/pom.xml index 0ffd154e..c88fc15d 100644 --- a/alfresco-transformer-base/pom.xml +++ b/alfresco-transformer-base/pom.xml @@ -4,12 +4,12 @@ org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT ../pom.xml alfresco-transformer-base - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT false 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 602d616e..06b4000c 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 @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2020 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -26,12 +26,15 @@ */ package org.alfresco.transformer; +import org.alfresco.transform.client.model.InternalContext; import org.alfresco.transform.client.model.TransformReply; import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.client.model.TransformRequestValidator; import org.alfresco.transform.client.model.config.TransformConfig; import org.alfresco.transform.client.registry.TransformServiceRegistry; import org.alfresco.transform.exceptions.TransformException; +import org.alfresco.transform.router.TransformStack; +import org.alfresco.transform.router.TransformerDebug; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.logging.LogEntry; import org.alfresco.transformer.model.FileRefResponse; @@ -134,6 +137,9 @@ public abstract class AbstractTransformerController implements TransformControll @Autowired private TransformServiceRegistry transformRegistry; + @Autowired + private TransformerDebug transformerDebug; + @GetMapping(value = "/transform/config") public ResponseEntity info() { @@ -203,16 +209,18 @@ public abstract class AbstractTransformerController implements TransformControll public ResponseEntity transform(@RequestBody TransformRequest request, @RequestParam(value = "timeout", required = false) Long timeout) { - logger.info("Received {}, timeout {} ms", request, timeout); + logger.trace("Received {}, timeout {} ms", request, timeout); final TransformReply reply = new TransformReply(); - reply.setInternalContext(request.getInternalContext()); reply.setRequestId(request.getRequestId()); reply.setSourceReference(request.getSourceReference()); reply.setSchema(request.getSchema()); reply.setClientData(request.getClientData()); final Errors errors = validateTransformRequest(request); + validateInternalContext(request, errors); + initialiseContext(request); + reply.setInternalContext(request.getInternalContext()); if (!errors.getAllErrors().isEmpty()) { reply.setStatus(BAD_REQUEST.value()); @@ -222,7 +230,8 @@ public abstract class AbstractTransformerController implements TransformControll .map(Object::toString) .collect(joining(", "))); - logger.error("Invalid request, sending {}", reply); + transformerDebug.logFailure(reply); + logger.trace("Invalid request, sending {}", reply); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } @@ -237,7 +246,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(e.getStatusCode()); reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); - logger.error("Failed to load source file (TransformException), sending " + reply); + transformerDebug.logFailure(reply); + logger.trace("Failed to load source file (TransformException), sending " + reply); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } catch (HttpClientErrorException e) @@ -245,8 +255,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(e.getStatusCode().value()); reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); - logger.error("Failed to load source file (HttpClientErrorException), sending " + - reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to load source file (HttpClientErrorException), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } catch (Exception e) @@ -254,7 +264,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); - logger.error("Failed to load source file (Exception), sending " + reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to load source file (Exception), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } @@ -266,10 +277,10 @@ public abstract class AbstractTransformerController implements TransformControll // Run the transformation try { - String targetMimetype = request.getTargetMediaType(); String sourceMimetype = request.getSourceMediaType(); Map transformOptions = request.getTransformRequestOptions(); + transformerDebug.logOptions(request); String transformName = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); transformImpl(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); } @@ -278,7 +289,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(e.getStatusCode()); reply.setErrorDetails(messageWithCause("Failed at processing transformation", e)); - logger.error("Failed to perform transform (TransformException), sending " + reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to perform transform (TransformException), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } catch (Exception e) @@ -286,7 +298,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails(messageWithCause("Failed at processing transformation", e)); - logger.error("Failed to perform transform (Exception), sending " + reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to perform transform (Exception), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } @@ -301,7 +314,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(e.getStatusCode()); reply.setErrorDetails(messageWithCause("Failed at writing the transformed file", e)); - logger.error("Failed to save target file (TransformException), sending " + reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to save target file (TransformException), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } catch (HttpClientErrorException e) @@ -309,8 +323,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(e.getStatusCode().value()); reply.setErrorDetails(messageWithCause("Failed at writing the transformed file. ", e)); - logger.error("Failed to save target file (HttpClientErrorException), sending " + reply, - e); + transformerDebug.logFailure(reply); + logger.trace("Failed to save target file (HttpClientErrorException), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } catch (Exception e) @@ -318,7 +332,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setErrorDetails(messageWithCause("Failed at writing the transformed file. ", e)); - logger.error("Failed to save target file (Exception), sending " + reply, e); + transformerDebug.logFailure(reply); + logger.trace("Failed to save target file (Exception), sending " + reply, e); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } @@ -343,7 +358,8 @@ public abstract class AbstractTransformerController implements TransformControll reply.setTargetReference(targetRef.getEntry().getFileRef()); reply.setStatus(CREATED.value()); - logger.info("Sending successful {}, timeout {} ms", reply, timeout); + transformerDebug.popTransform(reply); + logger.trace("Sending successful {}, timeout {} ms", reply, timeout); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); } @@ -354,6 +370,21 @@ public abstract class AbstractTransformerController implements TransformControll return errors; } + private void validateInternalContext(TransformRequest request, Errors errors) + { + String errorMessage = InternalContext.checkForBasicErrors(request.getInternalContext(), "T-Request"); + if (errorMessage != null) + { + errors.rejectValue("internalContext", null, errorMessage); + } + } + + private void initialiseContext(TransformRequest request) + { + // If needed initialise the context enough to allow logging to take place without NPE checks + request.setInternalContext(InternalContext.initialise(request.getInternalContext())); + } + /** * Loads the file with the specified sourceReference from Alfresco Shared File Store * @@ -422,7 +453,7 @@ public abstract class AbstractTransformerController implements TransformControll } else if (logger.isInfoEnabled()) { - logger.info("Using transform name provided in the request: " + requestTransformName); + logger.trace("Using transform name provided in the request: " + requestTransformName); } return transformName; } diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/QueueTransformService.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/QueueTransformService.java index 7cffd7dc..cb1d6fa4 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/QueueTransformService.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/QueueTransformService.java @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2019 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -106,7 +106,7 @@ public class QueueTransformService return; } - logger.info("New T-Request from queue with correlationId: {}", correlationId); + logger.trace("New T-Request from queue with correlationId: {}", correlationId); Optional transformRequest; try diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/config/WebApplicationConfig.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/config/WebApplicationConfig.java index d8dad96c..013f850e 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/config/WebApplicationConfig.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/config/WebApplicationConfig.java @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2019 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -28,6 +28,7 @@ package org.alfresco.transformer.config; import org.alfresco.transform.client.model.TransformRequestValidator; import org.alfresco.transform.client.registry.TransformServiceRegistry; +import org.alfresco.transform.router.TransformerDebug; import org.alfresco.transformer.TransformInterceptor; import org.alfresco.transformer.TransformRegistryImpl; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; @@ -78,4 +79,10 @@ public class WebApplicationConfig implements WebMvcConfigurer { return new TransformRegistryImpl(); } + + @Bean + public TransformerDebug transformerDebug() + { + return new TransformerDebug().setIsTEngine(true); + } } diff --git a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/messaging/TransformReplySender.java b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/messaging/TransformReplySender.java index 2e1e7fa2..e4583f53 100644 --- a/alfresco-transformer-base/src/main/java/org/alfresco/transformer/messaging/TransformReplySender.java +++ b/alfresco-transformer-base/src/main/java/org/alfresco/transformer/messaging/TransformReplySender.java @@ -66,7 +66,7 @@ public class TransformReplySender m.setJMSCorrelationID(correlationId); return m; }); - logger.info("Sent: {} - with correlation ID {}", reply, correlationId); + logger.trace("Sent: {} - with correlation ID {}", reply, correlationId); } catch (Exception e) { diff --git a/alfresco-transformer-base/src/main/resources/application.yaml b/alfresco-transformer-base/src/main/resources/application.yaml index 7e22ec7a..7fa17b39 100644 --- a/alfresco-transformer-base/src/main/resources/application.yaml +++ b/alfresco-transformer-base/src/main/resources/application.yaml @@ -31,6 +31,7 @@ logging: org.alfresco.transformer.ImageMagickController: debug org.alfresco.transformer.TikaController: debug org.alfresco.transformer.MiscellaneousTransformersController: debug + org.alfresco.transform.router.TransformerDebug: debug fileStoreUrl: ${FILE_STORE_URL:http://localhost:8099/alfresco/api/-default-/private/sfs/versions/1/file} 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 073af004..b0344ef7 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 @@ -2,7 +2,7 @@ * #%L * Alfresco Transform Core * %% - * Copyright (C) 2005 - 2021 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * - @@ -48,10 +48,12 @@ import java.io.IOException; import java.net.URL; import java.nio.channels.FileChannel; import java.nio.file.Files; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import org.alfresco.transform.client.model.InternalContext; import org.alfresco.transform.client.model.TransformReply; import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.client.model.config.SupportedSourceAndTarget; @@ -61,6 +63,7 @@ import org.alfresco.transform.client.model.config.TransformOptionGroup; import org.alfresco.transform.client.model.config.TransformOptionValue; import org.alfresco.transform.client.model.config.Transformer; import org.alfresco.transform.client.registry.TransformServiceRegistry; +import org.alfresco.transform.router.TransformStack; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.probes.ProbeTestTransform; import org.junit.jupiter.api.Test; @@ -104,6 +107,7 @@ public abstract class AbstractTransformerControllerTest protected String targetExtension; protected String sourceMimetype; protected String targetMimetype; + protected HashMap options = new HashMap<>(); protected MockMultipartFile sourceFile; protected String expectedOptions; @@ -220,6 +224,30 @@ public abstract class AbstractTransformerControllerTest return builder; } + protected TransformRequest createTransformRequest(String sourceFileRef, File sourceFile) + { + TransformRequest transformRequest = new TransformRequest(); + transformRequest.setRequestId("1"); + transformRequest.setSchema(1); + transformRequest.setClientData("Alfresco Digital Business Platform"); + transformRequest.setTransformRequestOptions(options); + transformRequest.setSourceReference(sourceFileRef); + transformRequest.setSourceExtension(sourceExtension); + transformRequest.setSourceMediaType(sourceMimetype); + transformRequest.setSourceSize(sourceFile.length()); + transformRequest.setTargetExtension(targetExtension); + transformRequest.setTargetMediaType(targetMimetype); + transformRequest.setInternalContext(InternalContext.initialise(null)); + transformRequest.getInternalContext().getMultiStep().setInitialRequestId("123"); + transformRequest.getInternalContext().getMultiStep().setInitialSourceMediaType(sourceMimetype); + TransformStack.setInitialTransformRequestOptions(transformRequest.getInternalContext(), options); + TransformStack.setInitialSourceReference(transformRequest.getInternalContext(), sourceFileRef); + TransformStack.addTransformLevel(transformRequest.getInternalContext(), + TransformStack.levelBuilder(TransformStack.PIPELINE_FLAG) + .withStep("transformerName", sourceMimetype, targetMimetype)); + return transformRequest; + } + @Test public void simpleTransformTest() throws Exception { diff --git a/pom.xml b/pom.xml index abf0a12f..3ba15699 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.alfresco alfresco-transform-core - 2.5.5-SNAPSHOT + 2.5.5-A1-SNAPSHOT pom @@ -21,7 +21,7 @@ 2.0.24 3.0.1.12 ${project.version} - 1.4.3 + 1.4.5 5.16.3 2.13.0 ${dependency.jackson.version}