From 338e2b93ddbcbf00b9ebea53a3e500058cd00890 Mon Sep 17 00:00:00 2001 From: Alan Davis Date: Wed, 9 Feb 2022 13:39:57 +0000 Subject: [PATCH] ACS-2498 Add coreVersion to T-Engine config (#937) Added isSupported(CoreFunction function, String transformerName) and isSupported(CoreFunction function, LocalTransform transform) ready for work on the ACS-2493 & ACS-2494. --- pom.xml | 2 +- .../transform/AbstractLocalTransform.java | 1 + .../transform/DummyTransformServiceRegistry.java | 9 ++++++++- .../repo/content/transform/LocalTransform.java | 7 ++++++- .../transform/LocalTransformServiceRegistry.java | 16 +++++++++++++++- .../SwitchingTransformServiceRegistry.java | 9 ++++++++- .../client/registry/CombinedConfig.java | 4 +++- .../rendition2/TestTransformServiceRegistry.java | 9 ++++++++- 8 files changed, 50 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index a546fd9094..c9c251319d 100644 --- a/pom.xml +++ b/pom.xml @@ -51,7 +51,7 @@ 0.2 5.23.0 5.23.0 - 1.4.8 + 1.4.9 6.2 0.0.13 diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java index 6a4dcf4002..bb50de6f8d 100644 --- a/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java +++ b/repository/src/main/java/org/alfresco/repo/content/transform/AbstractLocalTransform.java @@ -86,6 +86,7 @@ public abstract class AbstractLocalTransform implements LocalTransform String renditionName, NodeRef sourceNodeRef) throws UnsupportedTransformationException, ContentIOException; + @Override public String getName() { return name; diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/DummyTransformServiceRegistry.java b/repository/src/main/java/org/alfresco/repo/content/transform/DummyTransformServiceRegistry.java index a35ee45cda..a664d3cde6 100644 --- a/repository/src/main/java/org/alfresco/repo/content/transform/DummyTransformServiceRegistry.java +++ b/repository/src/main/java/org/alfresco/repo/content/transform/DummyTransformServiceRegistry.java @@ -2,7 +2,7 @@ * #%L * Alfresco Repository * %% - * Copyright (C) 2019 Alfresco Software Limited + * Copyright (C) 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -25,6 +25,7 @@ */ package org.alfresco.repo.content.transform; +import org.alfresco.transform.client.model.config.CoreFunction; import org.alfresco.transform.client.registry.TransformServiceRegistry; import java.util.Map; @@ -49,4 +50,10 @@ public class DummyTransformServiceRegistry implements TransformServiceRegistry { return null; } + + @Override + public boolean isSupported(CoreFunction function, String transformerName) + { + return true; + } } diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransform.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransform.java index 7b989796e3..72f71936ea 100644 --- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransform.java +++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransform.java @@ -2,7 +2,7 @@ * #%L * Alfresco Repository * %% - * Copyright (C) 2019 Alfresco Software Limited + * Copyright (C) 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -54,4 +54,9 @@ public interface LocalTransform void transform(ContentReader reader, ContentWriter writer, Map transformOptions, String renditionName, NodeRef sourceNodeRef) throws UnsupportedTransformationException, ContentIOException; + + /** + * @return the name of the transform. + */ + String getName(); } diff --git a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java index cde68e2f63..7b2a13c1ea 100644 --- a/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java +++ b/repository/src/main/java/org/alfresco/repo/content/transform/LocalTransformServiceRegistry.java @@ -2,7 +2,7 @@ * #%L * Alfresco Repository * %% - * Copyright (C) 2019 - 2021 Alfresco Software Limited + * Copyright (C) 2019 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -36,6 +36,7 @@ import java.util.function.Consumer; import java.util.stream.Collectors; import org.alfresco.service.cmr.repository.MimetypeService; +import org.alfresco.transform.client.model.config.CoreFunction; import org.alfresco.transform.client.model.config.TransformOptionGroup; import org.alfresco.transform.client.registry.CombinedConfig; import org.alfresco.transform.client.model.config.TransformOption; @@ -473,4 +474,17 @@ public class LocalTransformServiceRegistry extends TransformServiceRegistryImpl } return localTransform; } + + /** + * Returns {@code true} if the {@code function} is supported by the transform. Not all transforms are + * able to support all functionality, as newer features may have been introduced into the core t-engine code since + * it was released. + * @param function to be checked. + * @param transform the local transform. + * @return {@code true} is supported, {@code false} otherwise. + */ + boolean isSupported(CoreFunction function, LocalTransform transform) + { + return isSupported(function, transform.getName()); + } } diff --git a/repository/src/main/java/org/alfresco/repo/rendition2/SwitchingTransformServiceRegistry.java b/repository/src/main/java/org/alfresco/repo/rendition2/SwitchingTransformServiceRegistry.java index 26a394c8ed..c9647621a7 100644 --- a/repository/src/main/java/org/alfresco/repo/rendition2/SwitchingTransformServiceRegistry.java +++ b/repository/src/main/java/org/alfresco/repo/rendition2/SwitchingTransformServiceRegistry.java @@ -2,7 +2,7 @@ * #%L * Alfresco Repository * %% - * Copyright (C) 2005 - 2020 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -25,6 +25,7 @@ */ package org.alfresco.repo.rendition2; +import org.alfresco.transform.client.model.config.CoreFunction; import org.alfresco.transform.client.registry.TransformServiceRegistry; import java.util.Map; @@ -78,4 +79,10 @@ public class SwitchingTransformServiceRegistry implements TransformServiceRegist } return name; } + + @Override + public boolean isSupported(CoreFunction function, String transformerName) + { + return primary.isSupported(function, transformerName) && secondary.isSupported(function, transformerName); + } } diff --git a/repository/src/main/java/org/alfresco/transform/client/registry/CombinedConfig.java b/repository/src/main/java/org/alfresco/transform/client/registry/CombinedConfig.java index cd6f3faded..5749f4443e 100644 --- a/repository/src/main/java/org/alfresco/transform/client/registry/CombinedConfig.java +++ b/repository/src/main/java/org/alfresco/transform/client/registry/CombinedConfig.java @@ -47,6 +47,8 @@ import java.io.StringReader; import java.util.Collections; import java.util.List; +import static org.alfresco.transform.client.util.RequestParamMap.INCLUDE_CORE_VERSION; + /** * This class reads multiple T-Engine config and local files and registers as if they were all * in one file. Transform options are shared between all sources.

@@ -104,7 +106,7 @@ public class CombinedConfig extends CombinedTransformConfig private boolean addRemoteConfig(String baseUrl, String remoteType) { - String url = baseUrl + (baseUrl.endsWith("/") ? "" : "/") + "transform/config"; + String url = baseUrl + (baseUrl.endsWith("/") ? "" : "/") + "transform/config?" + INCLUDE_CORE_VERSION + "=" + true; HttpGet httpGet = new HttpGet(url); boolean successReadingConfig = true; try diff --git a/repository/src/test/java/org/alfresco/repo/rendition2/TestTransformServiceRegistry.java b/repository/src/test/java/org/alfresco/repo/rendition2/TestTransformServiceRegistry.java index 4f332c5945..3e62a92378 100644 --- a/repository/src/test/java/org/alfresco/repo/rendition2/TestTransformServiceRegistry.java +++ b/repository/src/test/java/org/alfresco/repo/rendition2/TestTransformServiceRegistry.java @@ -2,7 +2,7 @@ * #%L * Alfresco Repository * %% - * Copyright (C) 2005 - 2019 Alfresco Software Limited + * Copyright (C) 2005 - 2022 Alfresco Software Limited * %% * This file is part of the Alfresco software. * If the software was purchased under a paid Alfresco license, the terms of @@ -25,6 +25,7 @@ */ package org.alfresco.repo.rendition2; +import org.alfresco.transform.client.model.config.CoreFunction; import org.alfresco.transform.client.registry.TransformServiceRegistry; import java.util.Map; @@ -69,4 +70,10 @@ public class TestTransformServiceRegistry implements TransformServiceRegistry { throw new UnsupportedOperationException("not implemented"); } + + @Override + public boolean isSupported(CoreFunction function, String transformerName) + { + return true; + } }