ACS-3118 Check the size of intermmitent results in a pipeline (#629)

Set the size of a transform result in the Reply to the t-router.

Tidy up code: Avoid having to add the transformName to the transformOptions in the Controller class and then remove it in Transformer interface.
This commit is contained in:
Alan Davis 2022-05-31 15:21:15 +01:00 committed by GitHub
parent 7a4d3c14ce
commit 60eb104bc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 26 additions and 31 deletions

View File

@ -71,12 +71,9 @@ public class AIOController extends AbstractTransformerController
return getTransformerName() + " available"; return getTransformerName() + " available";
} }
// TODO ATS-713 Currently uses the Misc probeTest. The implementation will need to be changed such that the test can be selected based on the required transform
@Override @Override
public ProbeTestTransform getProbeTestTransform() public ProbeTestTransform getProbeTestTransform()
{ {
// HtmlParserContentTransformer html -> text
// See the Javadoc on this method and Probes.md for the choice of these values.
return new ProbeTestTransform(this, "quick.html", "quick.txt", return new ProbeTestTransform(this, "quick.html", "quick.txt",
119, 30, 150, 1024, 119, 30, 150, 1024,
60 * 2 + 1, 60 * 2) 60 * 2 + 1, 60 * 2)
@ -120,7 +117,6 @@ public class AIOController extends AbstractTransformerController
logger.debug("Performing transform with name '{}' using transformer with id '{}'.", transformName, transformer.getTransformerId()); logger.debug("Performing transform with name '{}' using transformer with id '{}'.", transformName, transformer.getTransformerId());
} }
transformOptions.put(TRANSFORM_NAME_PARAMETER, transformName); transformer.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
transformer.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

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.
* - * -
@ -184,9 +184,8 @@ public class AIOTransformRegistryTest
Map<String, String> parameters = new HashMap<>(); Map<String, String> parameters = new HashMap<>();
parameters.put(SOURCE_ENCODING, "ISO-8859-1"); parameters.put(SOURCE_ENCODING, "ISO-8859-1");
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
Transformer transformer = aioTransformerRegistry.getByTransformName("html"); Transformer transformer = aioTransformerRegistry.getByTransformName("html");
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD); transformer.transformExtractOrEmbed("html", SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
assertEquals(expected, readFromFile(tmpD, "UTF-8")); assertEquals(expected, readFromFile(tmpD, "UTF-8"));
tmpS.delete(); tmpS.delete();
@ -198,9 +197,8 @@ public class AIOTransformRegistryTest
tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt"); tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt");
parameters = new HashMap<>(); parameters = new HashMap<>();
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
parameters.put(SOURCE_ENCODING, "UTF-8"); parameters.put(SOURCE_ENCODING, "UTF-8");
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD); transformer.transformExtractOrEmbed("html", SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
assertEquals(expected, readFromFile(tmpD, "UTF-8")); assertEquals(expected, readFromFile(tmpD, "UTF-8"));
tmpS.delete(); tmpS.delete();
tmpD.delete(); tmpD.delete();
@ -211,9 +209,8 @@ public class AIOTransformRegistryTest
tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt"); tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt");
parameters = new HashMap<>(); parameters = new HashMap<>();
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
parameters.put(SOURCE_ENCODING, "UTF-16"); parameters.put(SOURCE_ENCODING, "UTF-16");
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD); transformer.transformExtractOrEmbed("html", SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
assertEquals(expected, readFromFile(tmpD, "UTF-8")); assertEquals(expected, readFromFile(tmpD, "UTF-8"));
tmpS.delete(); tmpS.delete();
tmpD.delete(); tmpD.delete();
@ -237,9 +234,8 @@ public class AIOTransformRegistryTest
tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt"); tmpD = File.createTempFile("AlfrescoTestTarget_", ".txt");
parameters = new HashMap<>(); parameters = new HashMap<>();
parameters.put(TRANSFORM_NAME_PARAMETER, "html");
parameters.put(SOURCE_ENCODING, "ISO-8859-1"); parameters.put(SOURCE_ENCODING, "ISO-8859-1");
transformer.transform(SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD); transformer.transformExtractOrEmbed("html", SOURCE_MIMETYPE, TARGET_MIMETYPE, parameters, tmpS, tmpD);
assertEquals(expected, readFromFile(tmpD, "UTF-8")); assertEquals(expected, readFromFile(tmpD, "UTF-8"));
tmpS.delete(); tmpS.delete();
tmpD.delete(); tmpD.delete();
@ -295,9 +291,8 @@ public class AIOTransformRegistryTest
// Transform to PDF // Transform to PDF
Map<String, String> parameters = new HashMap<>(); Map<String, String> parameters = new HashMap<>();
parameters.put(PAGE_LIMIT, pageLimit); parameters.put(PAGE_LIMIT, pageLimit);
parameters.put(TRANSFORM_NAME_PARAMETER, "textToPdf");
Transformer transformer = aioTransformerRegistry.getByTransformName("textToPdf"); Transformer transformer = aioTransformerRegistry.getByTransformName("textToPdf");
transformer.transform("text/plain", "application/pdf", parameters, sourceFile, targetFile); transformer.transformExtractOrEmbed("textToPdf", "text/plain", "application/pdf", parameters, sourceFile, targetFile);
// Read back in the PDF and check it // Read back in the PDF and check it
PDDocument doc = PDDocument.load(targetFile); PDDocument doc = PDDocument.load(targetFile);

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.
* - * -
@ -126,6 +126,6 @@ public class ImageMagickController extends AbstractTransformerController
public void transformImpl(String transformName, String sourceMimetype, String targetMimetype, public void transformImpl(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions, File sourceFile, File targetFile) Map<String, String> transformOptions, File sourceFile, File targetFile)
{ {
commandExecutor.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); commandExecutor.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

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.
* - * -
@ -128,6 +128,6 @@ public class LibreOfficeController extends AbstractTransformerController
public void transformImpl(String transformName, String sourceMimetype, String targetMimetype, public void transformImpl(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions, File sourceFile, File targetFile) Map<String, String> transformOptions, File sourceFile, File targetFile)
{ {
javaExecutor.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); javaExecutor.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

View File

@ -83,7 +83,6 @@ public class MiscController extends AbstractTransformerController
public void transformImpl(String transformName, String sourceMimetype, String targetMimetype, public void transformImpl(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions, File sourceFile, File targetFile) Map<String, String> transformOptions, File sourceFile, File targetFile)
{ {
transformOptions.put(TRANSFORM_NAME_PARAMETER, transformName); transformer.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
transformer.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

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.
* - * -
@ -113,6 +113,6 @@ public class AlfrescoPdfRendererController extends AbstractTransformerController
public void transformImpl(String transformName, String sourceMimetype, String targetMimetype, public void transformImpl(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions, File sourceFile, File targetFile) Map<String, String> transformOptions, File sourceFile, File targetFile)
{ {
commandExecutor.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); commandExecutor.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

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.
* - * -
@ -40,7 +40,6 @@ import java.util.Map;
import static org.alfresco.transformer.executors.Tika.PDF_BOX; import static org.alfresco.transformer.executors.Tika.PDF_BOX;
import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_PDF; import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_PDF;
import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_TEXT_PLAIN; import static org.alfresco.transformer.util.MimetypeMap.MIMETYPE_TEXT_PLAIN;
import static org.alfresco.transformer.util.RequestParamMap.TRANSFORM_NAME_PARAMETER;
/** /**
* Controller for the Docker based Tika transformers. * Controller for the Docker based Tika transformers.
@ -107,7 +106,6 @@ public class TikaController extends AbstractTransformerController
public void transformImpl(String transformName, String sourceMimetype, String targetMimetype, public void transformImpl(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions, File sourceFile, File targetFile) Map<String, String> transformOptions, File sourceFile, File targetFile)
{ {
transformOptions.put(TRANSFORM_NAME_PARAMETER, transformName); javaExecutor.transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
javaExecutor.transform(sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
} }
} }

View File

@ -352,6 +352,7 @@ public abstract class AbstractTransformerController implements TransformControll
transformerDebug.logOptions(request); 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);
reply.getInternalContext().setCurrentSourceSize(targetFile.length());
} }
catch (TransformException e) catch (TransformException e)
{ {

View File

@ -4,7 +4,7 @@ package org.alfresco.transformer.executors;
* #%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.
* - * -
@ -52,11 +52,17 @@ public interface Transformer
String getTransformerId(); String getTransformerId();
default void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions, default void transform(String sourceMimetype, String targetMimetype, Map<String, String> transformOptions,
File sourceFile, File targetFile) throws TransformException File sourceFile, File targetFile) throws TransformException {
final String transformName = transformOptions.remove(TRANSFORM_NAME_PARAMETER);
transformExtractOrEmbed(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);
}
default void transformExtractOrEmbed(String transformName, String sourceMimetype, String targetMimetype,
Map<String, String> transformOptions,
File sourceFile, File targetFile) throws TransformException
{ {
try try
{ {
final String transformName = transformOptions.remove(TRANSFORM_NAME_PARAMETER);
if (MIMETYPE_METADATA_EXTRACT.equals(targetMimetype)) if (MIMETYPE_METADATA_EXTRACT.equals(targetMimetype))
{ {
extractMetadata(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile); extractMetadata(transformName, sourceMimetype, targetMimetype, transformOptions, sourceFile, targetFile);