mirror of
https://github.com/Alfresco/alfresco-transform-core.git
synced 2025-05-12 17:04:48 +00:00
ATS-707: add transformName override (#228) [trigger release]
* Provide a way for Legacy ACS transformers to specify the transform to perform
This commit is contained in:
parent
205d1c76ec
commit
23e837609b
@ -71,6 +71,14 @@ public class AIOController extends AbstractTransformerController
|
||||
{
|
||||
private static final Logger logger = LoggerFactory.getLogger(AIOController.class);
|
||||
|
||||
// This property can be sent by acs repository's legacy transformers to force a transform,
|
||||
// instead of letting this T-Engine determine it based on the request parameters.
|
||||
// This allows clients to specify transform names as they appear in the engine config files, for example:
|
||||
// imagemagick, libreoffice, PdfBox, TikaAuto, ....
|
||||
// See ATS-731.
|
||||
@Deprecated
|
||||
private static final String TRANSFORM_NAME_PROPERTY = "transformName";
|
||||
|
||||
@Autowired
|
||||
private AIOTransformRegistry transformRegistry;
|
||||
|
||||
@ -122,14 +130,17 @@ public class AIOController extends AbstractTransformerController
|
||||
@RequestParam(TARGET_MIMETYPE) String targetMimetype,
|
||||
@RequestParam(TARGET_EXTENSION) String targetExtension,
|
||||
@RequestParam Map<String, String> requestParameters,
|
||||
@RequestParam (value = TEST_DELAY, required = false) Long testDelay)
|
||||
{
|
||||
@RequestParam (value = TEST_DELAY, required = false) Long testDelay,
|
||||
|
||||
// The TRANSFORM_NAME_PROPERTY param allows ACS legacy transformers to specify which transform to use,
|
||||
// It can be removed once legacy transformers are removed from ACS.
|
||||
@RequestParam (value = TRANSFORM_NAME_PROPERTY, required = false) String requestTransformName)
|
||||
{
|
||||
debugLogTransform("Request parameters: ", sourceMimetype, targetMimetype, targetExtension, requestParameters);
|
||||
|
||||
//Remove all required parameters from request parameters to get the list of options
|
||||
List<String> optionsToFilter = Arrays.asList(SOURCE_EXTENSION, TARGET_EXTENSION, TARGET_MIMETYPE,
|
||||
SOURCE_MIMETYPE, TEST_DELAY);
|
||||
SOURCE_MIMETYPE, TEST_DELAY, TRANSFORM_NAME_PROPERTY);
|
||||
Map<String, String> transformOptions = new HashMap<>(requestParameters);
|
||||
transformOptions.keySet().removeAll(optionsToFilter);
|
||||
transformOptions.values().removeIf(v -> v.isEmpty());
|
||||
@ -140,7 +151,21 @@ public class AIOController extends AbstractTransformerController
|
||||
final File sourceFile = createSourceFile(request, sourceMultipartFile);
|
||||
final File targetFile = createTargetFile(request, targetFilename);
|
||||
|
||||
final String transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
// Check if transformName was provided in the request (this can happen for ACS legacy transformers)
|
||||
String transform = requestTransformName;
|
||||
if (transform == null || transform.isEmpty())
|
||||
{
|
||||
if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Using engine config to determine the transform name.");
|
||||
}
|
||||
transform = getTransformerName(sourceFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
}
|
||||
else if (logger.isDebugEnabled())
|
||||
{
|
||||
logger.debug("Using transform name provided by the request.");
|
||||
}
|
||||
|
||||
debugLogTransform("Performing transform with parameters: ", sourceMimetype, targetMimetype,
|
||||
targetExtension, transformOptions);
|
||||
transformInternal(transform, sourceFile, targetFile, sourceMimetype, targetMimetype, transformOptions);
|
||||
|
Loading…
x
Reference in New Issue
Block a user