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.
This commit is contained in:
Alan Davis 2022-01-05 12:17:17 +00:00 committed by GitHub
parent 671867e161
commit a98f937b4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 113 additions and 89 deletions

View File

@ -9,7 +9,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -8,7 +8,7 @@
<parent> <parent>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -51,7 +51,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@ -380,18 +379,7 @@ public class ImageMagickControllerTest extends AbstractTransformerControllerTest
File sourceFile = getTestFile("quick." + sourceExtension, true); File sourceFile = getTestFile("quick." + sourceExtension, true);
String targetFileRef = UUID.randomUUID().toString(); String targetFileRef = UUID.randomUUID().toString();
// Transformation Request POJO TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile);
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);
// HTTP Request // HTTP Request
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();

View File

@ -8,7 +8,7 @@
<parent> <parent>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -51,7 +51,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -228,16 +227,7 @@ public class LibreOfficeControllerTest extends AbstractTransformerControllerTest
File sourceFile = getTestFile("quick." + sourceExtension, true); File sourceFile = getTestFile("quick." + sourceExtension, true);
String targetFileRef = UUID.randomUUID().toString(); String targetFileRef = UUID.randomUUID().toString();
// Transformation Request POJO TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile);
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);
// HTTP Request // HTTP Request
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();

View File

@ -8,7 +8,7 @@
<parent> <parent>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -9,7 +9,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -9,7 +9,7 @@
<parent> <parent>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -9,7 +9,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -51,7 +51,6 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@ -292,16 +291,7 @@ public class AlfrescoPdfRendererControllerTest extends AbstractTransformerContro
File sourceFile = getTestFile("quick." + sourceExtension, true); File sourceFile = getTestFile("quick." + sourceExtension, true);
String targetFileRef = UUID.randomUUID().toString(); String targetFileRef = UUID.randomUUID().toString();
// Transformation Request POJO TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile);
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);
// HTTP Request // HTTP Request
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();

View File

@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -7,7 +7,7 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * 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.ByteArrayInputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
@ -609,17 +608,7 @@ public class TikaControllerTest extends AbstractTransformerControllerTest
File sourceFile = getTestFile("quick." + sourceExtension, true); File sourceFile = getTestFile("quick." + sourceExtension, true);
String targetFileRef = UUID.randomUUID().toString(); String targetFileRef = UUID.randomUUID().toString();
// Transformation Request POJO TransformRequest transformRequest = createTransformRequest(sourceFileRef, sourceFile);
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);
// HTTP Request // HTTP Request
HttpHeaders headers = new HttpHeaders(); HttpHeaders headers = new HttpHeaders();

View File

@ -8,7 +8,7 @@
<parent> <parent>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath> <relativePath>../../pom.xml</relativePath>
</parent> </parent>

View File

@ -4,12 +4,12 @@
<parent> <parent>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
<artifactId>alfresco-transformer-base</artifactId> <artifactId>alfresco-transformer-base</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<properties> <properties>
<transformer.base.deploy.skip>false</transformer.base.deploy.skip> <transformer.base.deploy.skip>false</transformer.base.deploy.skip>

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -26,12 +26,15 @@
*/ */
package org.alfresco.transformer; package org.alfresco.transformer;
import org.alfresco.transform.client.model.InternalContext;
import org.alfresco.transform.client.model.TransformReply; import org.alfresco.transform.client.model.TransformReply;
import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.client.model.TransformRequest;
import org.alfresco.transform.client.model.TransformRequestValidator; import org.alfresco.transform.client.model.TransformRequestValidator;
import org.alfresco.transform.client.model.config.TransformConfig; import org.alfresco.transform.client.model.config.TransformConfig;
import org.alfresco.transform.client.registry.TransformServiceRegistry; import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transform.exceptions.TransformException; 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.clients.AlfrescoSharedFileStoreClient;
import org.alfresco.transformer.logging.LogEntry; import org.alfresco.transformer.logging.LogEntry;
import org.alfresco.transformer.model.FileRefResponse; import org.alfresco.transformer.model.FileRefResponse;
@ -134,6 +137,9 @@ public abstract class AbstractTransformerController implements TransformControll
@Autowired @Autowired
private TransformServiceRegistry transformRegistry; private TransformServiceRegistry transformRegistry;
@Autowired
private TransformerDebug transformerDebug;
@GetMapping(value = "/transform/config") @GetMapping(value = "/transform/config")
public ResponseEntity<TransformConfig> info() public ResponseEntity<TransformConfig> info()
{ {
@ -203,16 +209,18 @@ public abstract class AbstractTransformerController implements TransformControll
public ResponseEntity<TransformReply> transform(@RequestBody TransformRequest request, public ResponseEntity<TransformReply> transform(@RequestBody TransformRequest request,
@RequestParam(value = "timeout", required = false) Long timeout) @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(); final TransformReply reply = new TransformReply();
reply.setInternalContext(request.getInternalContext());
reply.setRequestId(request.getRequestId()); reply.setRequestId(request.getRequestId());
reply.setSourceReference(request.getSourceReference()); reply.setSourceReference(request.getSourceReference());
reply.setSchema(request.getSchema()); reply.setSchema(request.getSchema());
reply.setClientData(request.getClientData()); reply.setClientData(request.getClientData());
final Errors errors = validateTransformRequest(request); final Errors errors = validateTransformRequest(request);
validateInternalContext(request, errors);
initialiseContext(request);
reply.setInternalContext(request.getInternalContext());
if (!errors.getAllErrors().isEmpty()) if (!errors.getAllErrors().isEmpty())
{ {
reply.setStatus(BAD_REQUEST.value()); reply.setStatus(BAD_REQUEST.value());
@ -222,7 +230,8 @@ public abstract class AbstractTransformerController implements TransformControll
.map(Object::toString) .map(Object::toString)
.collect(joining(", "))); .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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
@ -237,7 +246,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(e.getStatusCode()); reply.setStatus(e.getStatusCode());
reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
catch (HttpClientErrorException e) catch (HttpClientErrorException e)
@ -245,8 +255,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(e.getStatusCode().value()); reply.setStatus(e.getStatusCode().value());
reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); reply.setErrorDetails(messageWithCause("Failed at reading the source file", e));
logger.error("Failed to load source file (HttpClientErrorException), sending " + transformerDebug.logFailure(reply);
reply, e); logger.trace("Failed to load source file (HttpClientErrorException), sending " + reply, e);
return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
catch (Exception e) catch (Exception e)
@ -254,7 +264,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setStatus(INTERNAL_SERVER_ERROR.value());
reply.setErrorDetails(messageWithCause("Failed at reading the source file", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
@ -266,10 +277,10 @@ public abstract class AbstractTransformerController implements TransformControll
// Run the transformation // Run the transformation
try try
{ {
String targetMimetype = request.getTargetMediaType(); String targetMimetype = request.getTargetMediaType();
String sourceMimetype = request.getSourceMediaType(); String sourceMimetype = request.getSourceMediaType();
Map<String, String> transformOptions = request.getTransformRequestOptions(); Map<String, String> transformOptions = request.getTransformRequestOptions();
transformerDebug.logOptions(request);
String transformName = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions); String transformName = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions);
transformImpl(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); transformImpl(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
@ -278,7 +289,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(e.getStatusCode()); reply.setStatus(e.getStatusCode());
reply.setErrorDetails(messageWithCause("Failed at processing transformation", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
catch (Exception e) catch (Exception e)
@ -286,7 +298,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setStatus(INTERNAL_SERVER_ERROR.value());
reply.setErrorDetails(messageWithCause("Failed at processing transformation", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
@ -301,7 +314,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(e.getStatusCode()); reply.setStatus(e.getStatusCode());
reply.setErrorDetails(messageWithCause("Failed at writing the transformed file", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
catch (HttpClientErrorException e) catch (HttpClientErrorException e)
@ -309,8 +323,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(e.getStatusCode().value()); reply.setStatus(e.getStatusCode().value());
reply.setErrorDetails(messageWithCause("Failed at writing the transformed file. ", e)); reply.setErrorDetails(messageWithCause("Failed at writing the transformed file. ", e));
logger.error("Failed to save target file (HttpClientErrorException), sending " + reply, transformerDebug.logFailure(reply);
e); logger.trace("Failed to save target file (HttpClientErrorException), sending " + reply, e);
return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
catch (Exception e) catch (Exception e)
@ -318,7 +332,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setStatus(INTERNAL_SERVER_ERROR.value()); reply.setStatus(INTERNAL_SERVER_ERROR.value());
reply.setErrorDetails(messageWithCause("Failed at writing the transformed file. ", e)); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
@ -343,7 +358,8 @@ public abstract class AbstractTransformerController implements TransformControll
reply.setTargetReference(targetRef.getEntry().getFileRef()); reply.setTargetReference(targetRef.getEntry().getFileRef());
reply.setStatus(CREATED.value()); 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())); return new ResponseEntity<>(reply, HttpStatus.valueOf(reply.getStatus()));
} }
@ -354,6 +370,21 @@ public abstract class AbstractTransformerController implements TransformControll
return errors; 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 * 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()) 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; return transformName;
} }

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -106,7 +106,7 @@ public class QueueTransformService
return; return;
} }
logger.info("New T-Request from queue with correlationId: {}", correlationId); logger.trace("New T-Request from queue with correlationId: {}", correlationId);
Optional<TransformRequest> transformRequest; Optional<TransformRequest> transformRequest;
try try

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * 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.model.TransformRequestValidator;
import org.alfresco.transform.client.registry.TransformServiceRegistry; import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transform.router.TransformerDebug;
import org.alfresco.transformer.TransformInterceptor; import org.alfresco.transformer.TransformInterceptor;
import org.alfresco.transformer.TransformRegistryImpl; import org.alfresco.transformer.TransformRegistryImpl;
import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient;
@ -78,4 +79,10 @@ public class WebApplicationConfig implements WebMvcConfigurer
{ {
return new TransformRegistryImpl(); return new TransformRegistryImpl();
} }
@Bean
public TransformerDebug transformerDebug()
{
return new TransformerDebug().setIsTEngine(true);
}
} }

View File

@ -66,7 +66,7 @@ public class TransformReplySender
m.setJMSCorrelationID(correlationId); m.setJMSCorrelationID(correlationId);
return m; return m;
}); });
logger.info("Sent: {} - with correlation ID {}", reply, correlationId); logger.trace("Sent: {} - with correlation ID {}", reply, correlationId);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -31,6 +31,7 @@ logging:
org.alfresco.transformer.ImageMagickController: debug org.alfresco.transformer.ImageMagickController: debug
org.alfresco.transformer.TikaController: debug org.alfresco.transformer.TikaController: debug
org.alfresco.transformer.MiscellaneousTransformersController: 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} fileStoreUrl: ${FILE_STORE_URL:http://localhost:8099/alfresco/api/-default-/private/sfs/versions/1/file}

View File

@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Transform Core * 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. * This file is part of the Alfresco software.
* - * -
@ -48,10 +48,12 @@ import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.alfresco.transform.client.model.InternalContext;
import org.alfresco.transform.client.model.TransformReply; import org.alfresco.transform.client.model.TransformReply;
import org.alfresco.transform.client.model.TransformRequest; import org.alfresco.transform.client.model.TransformRequest;
import org.alfresco.transform.client.model.config.SupportedSourceAndTarget; 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.TransformOptionValue;
import org.alfresco.transform.client.model.config.Transformer; import org.alfresco.transform.client.model.config.Transformer;
import org.alfresco.transform.client.registry.TransformServiceRegistry; import org.alfresco.transform.client.registry.TransformServiceRegistry;
import org.alfresco.transform.router.TransformStack;
import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient; import org.alfresco.transformer.clients.AlfrescoSharedFileStoreClient;
import org.alfresco.transformer.probes.ProbeTestTransform; import org.alfresco.transformer.probes.ProbeTestTransform;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -104,6 +107,7 @@ public abstract class AbstractTransformerControllerTest
protected String targetExtension; protected String targetExtension;
protected String sourceMimetype; protected String sourceMimetype;
protected String targetMimetype; protected String targetMimetype;
protected HashMap<String, String> options = new HashMap<>();
protected MockMultipartFile sourceFile; protected MockMultipartFile sourceFile;
protected String expectedOptions; protected String expectedOptions;
@ -220,6 +224,30 @@ public abstract class AbstractTransformerControllerTest
return builder; 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 @Test
public void simpleTransformTest() throws Exception public void simpleTransformTest() throws Exception
{ {

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.alfresco</groupId> <groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId> <artifactId>alfresco-transform-core</artifactId>
<version>2.5.5-SNAPSHOT</version> <version>2.5.5-A1-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<parent> <parent>
@ -21,7 +21,7 @@
<dependency.pdfbox.version>2.0.24</dependency.pdfbox.version> <dependency.pdfbox.version>2.0.24</dependency.pdfbox.version>
<dependency.alfresco-jodconverter-core.version>3.0.1.12</dependency.alfresco-jodconverter-core.version> <dependency.alfresco-jodconverter-core.version>3.0.1.12</dependency.alfresco-jodconverter-core.version>
<env.project_version>${project.version}</env.project_version> <env.project_version>${project.version}</env.project_version>
<dependency.alfresco-transform-model.version>1.4.3</dependency.alfresco-transform-model.version> <dependency.alfresco-transform-model.version>1.4.5</dependency.alfresco-transform-model.version>
<dependency.activemq.version>5.16.3</dependency.activemq.version> <dependency.activemq.version>5.16.3</dependency.activemq.version>
<dependency.jackson.version>2.13.0</dependency.jackson.version> <dependency.jackson.version>2.13.0</dependency.jackson.version>
<dependency.jackson-databind.version>${dependency.jackson.version}</dependency.jackson-databind.version> <dependency.jackson-databind.version>${dependency.jackson.version}</dependency.jackson-databind.version>