ACS-6460: Transform options overwrite themselves when having the same name

This commit is contained in:
Krystian Dabrowski
2023-12-05 10:35:21 +01:00
parent e700ada9d6
commit c2f0130688
2 changed files with 7 additions and 4 deletions

View File

@@ -40,12 +40,12 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.StringJoiner; import java.util.StringJoiner;
import java.util.TreeSet;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.util.stream.Collectors.toSet; import static java.util.stream.Collectors.toSet;
import static org.alfresco.transform.config.CoreVersionDecorator.setCoreVersionOnMultiStepTransformers; import static org.alfresco.transform.config.CoreVersionDecorator.setCoreVersionOnMultiStepTransformers;
import static org.alfresco.transform.registry.TransformRegistryHelper.TRANSFORM_OPTIONS_KEY_PATTERN;
/** /**
* This class combines one or more T-Engine config and local files and registers them as if they were all in one file. * This class combines one or more T-Engine config and local files and registers them as if they were all in one file.
@@ -104,7 +104,8 @@ public class CombinedTransformConfig
overrideSupported(transformConfig.getOverrideSupported(), readFrom, registry); overrideSupported(transformConfig.getOverrideSupported(), readFrom, registry);
// Add transform options and transformers from the new transformConfig // Add transform options and transformers from the new transformConfig
transformConfig.getTransformOptions().forEach(combinedTransformOptions::put); transformConfig.getTransformOptions().forEach(
(optionsName, options) -> combinedTransformOptions.put(String.format(TRANSFORM_OPTIONS_KEY_PATTERN, readFrom, optionsName), options));
transformConfig.getTransformers().forEach(t -> combinedTransformers.add(new Origin<>(t, baseUrl, readFrom))); transformConfig.getTransformers().forEach(t -> combinedTransformers.add(new Origin<>(t, baseUrl, readFrom)));
} }
@@ -411,7 +412,7 @@ public class CombinedTransformConfig
for (String transformOptionsLabel : transformer.getTransformOptions()) for (String transformOptionsLabel : transformer.getTransformOptions())
{ {
if (!combinedTransformOptions.containsKey(transformOptionsLabel)) if (!combinedTransformOptions.containsKey(String.format(TRANSFORM_OPTIONS_KEY_PATTERN, readFrom, transformOptionsLabel)))
{ {
throw new IllegalStateException("Transformer " + transformerName(name) + throw new IllegalStateException("Transformer " + transformerName(name) +
" references \"" + transformOptionsLabel + " references \"" + transformOptionsLabel +

View File

@@ -44,6 +44,8 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST;
class TransformRegistryHelper class TransformRegistryHelper
{ {
public static final String TRANSFORM_OPTIONS_KEY_PATTERN = "%s-%s";
private TransformRegistryHelper() private TransformRegistryHelper()
{ {
} }
@@ -60,7 +62,7 @@ class TransformRegistryHelper
final Set<TransformOption> options = new HashSet<>(); final Set<TransformOption> options = new HashSet<>();
for (String name : transformOptionNames) for (String name : transformOptionNames)
{ {
final Set<TransformOption> oneSetOfTransformOptions = transformOptions.get(name); final Set<TransformOption> oneSetOfTransformOptions = transformOptions.get(String.format(TRANSFORM_OPTIONS_KEY_PATTERN, readFrom, name));
if (oneSetOfTransformOptions == null) if (oneSetOfTransformOptions == null)
{ {
logError.accept("transformOptions in " + readFrom + " with the name " + name + logError.accept("transformOptions in " + readFrom + " with the name " + name +