ACS-1998 Enhance the transform config (#796)

* ACS-1998 Pick up changes in transform-model 1.4.1 for "xxxSupported" elements [skip ci]
* Pick up 2.5.4 t-engines for testing
This commit is contained in:
Alan Davis
2021-11-16 15:16:51 +00:00
committed by GitHub
parent 46da760cb2
commit 53c70cee66
8 changed files with 89 additions and 73 deletions

View File

@@ -60,7 +60,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext01TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext02TestSuite" - name: "Repository - AppContext02TestSuite"
@@ -75,7 +75,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext04TestSuite" - name: "Repository - AppContext04TestSuite"
@@ -83,7 +83,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContext05TestSuite" - name: "Repository - AppContext05TestSuite"
@@ -102,7 +102,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext06TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContext06TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - AppContextExtraTestSuite" - name: "Repository - AppContextExtraTestSuite"
@@ -110,7 +110,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=AppContextExtraTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - MiscContextTestSuite" - name: "Repository - MiscContextTestSuite"
@@ -118,7 +118,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl repository -Dtest=MiscContextTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl repository -Dtest=MiscContextTestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Repository - SearchTestSuite" - name: "Repository - SearchTestSuite"
@@ -241,7 +241,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext02TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext03TestSuite" - name: "Remote-api - AppContext03TestSuite"
@@ -249,7 +249,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext03TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContext04TestSuite" - name: "Remote-api - AppContext04TestSuite"
@@ -257,7 +257,7 @@ jobs:
before_script: before_script:
- docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300' - docker run -d -p 5433:5432 -e POSTGRES_PASSWORD=alfresco -e POSTGRES_USER=alfresco -e POSTGRES_DB=alfresco postgres:13.3 postgres -c 'max_connections=300'
- docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1 - docker run -d -p 61616:61616 -p 5672:5672 alfresco/alfresco-activemq:5.16.1
- docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.3 - docker run -d -p 8090:8090 -e JAVA_OPTS=" -Xms256m -Xmx256m" alfresco/alfresco-transform-core-aio:2.5.4
script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco script: travis_wait 20 mvn -B test -pl remote-api -Dtest=AppContext04TestSuite -Ddb.driver=org.postgresql.Driver -Ddb.name=alfresco -Ddb.url=jdbc:postgresql://localhost:5433/alfresco -Ddb.username=alfresco -Ddb.password=alfresco
- name: "Remote-api - AppContextExtraTestSuite" - name: "Remote-api - AppContextExtraTestSuite"

View File

@@ -1,4 +1,4 @@
TRANSFORMERS_TAG=2.5.3 TRANSFORMERS_TAG=2.5.4
SOLR6_TAG=2.0.2-RC1 SOLR6_TAG=2.0.2-RC1
POSTGRES_TAG=13.3 POSTGRES_TAG=13.3
ACTIVEMQ_TAG=5.16.1 ACTIVEMQ_TAG=5.16.1

View File

@@ -1,4 +1,4 @@
TRANSFORMERS_TAG=2.5.3 TRANSFORMERS_TAG=2.5.4
SOLR6_TAG=2.0.2 SOLR6_TAG=2.0.2
POSTGRES_TAG=13.3 POSTGRES_TAG=13.3
ACTIVEMQ_TAG=5.16.1 ACTIVEMQ_TAG=5.16.1

View File

@@ -51,7 +51,7 @@
<dependency.alfresco-log-sanitizer.version>0.2</dependency.alfresco-log-sanitizer.version> <dependency.alfresco-log-sanitizer.version>0.2</dependency.alfresco-log-sanitizer.version>
<dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version> <dependency.activiti-engine.version>5.23.0</dependency.activiti-engine.version>
<dependency.activiti.version>5.23.0</dependency.activiti.version> <dependency.activiti.version>5.23.0</dependency.activiti.version>
<dependency.alfresco-transform-model.version>1.4.0</dependency.alfresco-transform-model.version> <dependency.alfresco-transform-model.version>1.4.3</dependency.alfresco-transform-model.version>
<dependency.alfresco-greenmail.version>6.2</dependency.alfresco-greenmail.version> <dependency.alfresco-greenmail.version>6.2</dependency.alfresco-greenmail.version>
<dependency.acs-event-model.version>0.0.13</dependency.acs-event-model.version> <dependency.acs-event-model.version>0.0.13</dependency.acs-event-model.version>

View File

@@ -2,7 +2,7 @@
* #%L * #%L
* Alfresco Repository * Alfresco Repository
* %% * %%
* Copyright (C) 2019 Alfresco Software Limited * Copyright (C) 2005 - 2021 Alfresco Software Limited
* %% * %%
* This file is part of the Alfresco software. * This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of * If the software was purchased under a paid Alfresco license, the terms of
@@ -34,6 +34,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.transform.client.model.config.SupportedSourceAndTarget; import org.alfresco.transform.client.model.config.SupportedSourceAndTarget;
import org.alfresco.transform.client.model.config.TransformOption; import org.alfresco.transform.client.model.config.TransformOption;
import org.alfresco.transform.client.model.config.Transformer; import org.alfresco.transform.client.model.config.Transformer;
import org.alfresco.transform.client.registry.AbstractTransformRegistry;
import org.alfresco.transform.client.registry.CombinedConfig; import org.alfresco.transform.client.registry.CombinedConfig;
import java.io.IOException; import java.io.IOException;
@@ -52,7 +53,8 @@ import java.util.Set;
* any mimetype starting "text/", or "application/x-javascript", or "application/dita+xml". There must be no transform * any mimetype starting "text/", or "application/x-javascript", or "application/dita+xml". There must be no transform
* options, but in case of the text transform the source and target encodings may be change. * options, but in case of the text transform the source and target encodings may be change.
* *
* Supported transforms are added by {@link CombinedConfig#addPassThroughTransformer(org.alfresco.service.cmr.repository.MimetypeService)}. * Supported transforms are added by {@link CombinedConfig#addPassThroughTransformer(
* org.alfresco.service.cmr.repository.MimetypeService, AbstractTransformRegistry)}.
* *
* @author adavis * @author adavis
*/ */
@@ -76,10 +78,18 @@ public class LocalPassThroughTransform extends AbstractLocalTransform
Set<SupportedSourceAndTarget> supportedSourceAndTargetList = new HashSet(); Set<SupportedSourceAndTarget> supportedSourceAndTargetList = new HashSet();
for (String mimetype: mimetypes) for (String mimetype: mimetypes)
{ {
supportedSourceAndTargetList.add(new SupportedSourceAndTarget(mimetype, mimetype, -1, 20)); supportedSourceAndTargetList.add(SupportedSourceAndTarget.builder()
.withSourceMediaType(mimetype)
.withTargetMediaType(mimetype)
.withPriority(20)
.build());
if (isToText(mimetype, mimetype)) if (isToText(mimetype, mimetype))
{ {
supportedSourceAndTargetList.add(new SupportedSourceAndTarget(mimetype, MimetypeMap.MIMETYPE_TEXT_PLAIN, -1, 20)); supportedSourceAndTargetList.add(SupportedSourceAndTarget.builder()
.withSourceMediaType(mimetype)
.withTargetMediaType(MimetypeMap.MIMETYPE_TEXT_PLAIN)
.withPriority(20)
.build());
} }
} }
return Transformer.builder().withTransformerName(LocalPassThroughTransform.NAME). return Transformer.builder().withTransformerName(LocalPassThroughTransform.NAME).

View File

@@ -133,7 +133,7 @@ public class LocalTransformServiceRegistry extends TransformServiceRegistryImpl
@Override @Override
public boolean readConfig() throws IOException public boolean readConfig() throws IOException
{ {
CombinedConfig combinedConfig = new CombinedConfig(getLog()); CombinedConfig combinedConfig = new CombinedConfig(getLog(), this);
List<String> urls = getTEngineUrls(); List<String> urls = getTEngineUrls();
boolean successReadingConfig = combinedConfig.addRemoteConfig(urls, "T-Engine"); boolean successReadingConfig = combinedConfig.addRemoteConfig(urls, "T-Engine");
successReadingConfig &= combinedConfig.addLocalConfig("alfresco/transforms"); successReadingConfig &= combinedConfig.addLocalConfig("alfresco/transforms");
@@ -141,7 +141,7 @@ public class LocalTransformServiceRegistry extends TransformServiceRegistryImpl
{ {
successReadingConfig &= combinedConfig.addLocalConfig(pipelineConfigDir); successReadingConfig &= combinedConfig.addLocalConfig(pipelineConfigDir);
} }
combinedConfig.addPassThroughTransformer(mimetypeService); combinedConfig.addPassThroughTransformer(mimetypeService, this);
combinedConfig.register(this); combinedConfig.register(this);
return successReadingConfig; return successReadingConfig;
} }
@@ -159,7 +159,7 @@ public class LocalTransformServiceRegistry extends TransformServiceRegistryImpl
} }
@Override @Override
public void register(Transformer transformer, Map<String, Set<TransformOption>> transformOptions, protected void register(Transformer transformer, Map<String, Set<TransformOption>> transformOptions,
String baseUrl, String readFrom) String baseUrl, String readFrom)
{ {
try try

View File

@@ -44,6 +44,7 @@ import org.apache.http.util.EntityUtils;
import java.io.IOException; import java.io.IOException;
import java.io.StringReader; import java.io.StringReader;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
@@ -51,8 +52,8 @@ import java.util.List;
* in one file. Transform options are shared between all sources.<p> * in one file. Transform options are shared between all sources.<p>
* *
* The caller should make calls to {@link #addRemoteConfig(List, String)}, {@link #addLocalConfig(String)} or * The caller should make calls to {@link #addRemoteConfig(List, String)}, {@link #addLocalConfig(String)} or
* {@link #addTransformConfig(TransformConfig, String, String)} followed by a call to * {@link CombinedTransformConfig#addTransformConfig(TransformConfig, String, String, AbstractTransformRegistry)}
* {@link #register(TransformServiceRegistryImpl)}. * followed by a call to {@link #register(TransformServiceRegistryImpl)}.
* *
* @author adavis * @author adavis
*/ */
@@ -64,7 +65,7 @@ public class CombinedConfig extends CombinedTransformConfig
private ConfigFileFinder configFileFinder; private ConfigFileFinder configFileFinder;
private int tEngineCount; private int tEngineCount;
public CombinedConfig(Log log) public CombinedConfig(Log log, AbstractTransformRegistry registry)
{ {
this.log = log; this.log = log;
@@ -74,7 +75,7 @@ public class CombinedConfig extends CombinedTransformConfig
protected void readJson(JsonNode jsonNode, String readFrom, String baseUrl) protected void readJson(JsonNode jsonNode, String readFrom, String baseUrl)
{ {
TransformConfig transformConfig = jsonObjectMapper.convertValue(jsonNode, TransformConfig.class); TransformConfig transformConfig = jsonObjectMapper.convertValue(jsonNode, TransformConfig.class);
addTransformConfig(transformConfig, readFrom, baseUrl); addTransformConfig(transformConfig, readFrom, baseUrl, registry);
} }
}; };
} }
@@ -129,9 +130,9 @@ public class CombinedConfig extends CombinedTransformConfig
String content = getContent(resEntity); String content = getContent(resEntity);
try (StringReader reader = new StringReader(content)) try (StringReader reader = new StringReader(content))
{ {
int transformCount = combinedTransformers.size(); int transformCount = transformerCount();
configFileFinder.readFile(reader, remoteType+" on "+baseUrl, "json", baseUrl, log); configFileFinder.readFile(reader, remoteType+" on "+baseUrl, "json", baseUrl, log);
if (transformCount == combinedTransformers.size()) if (transformCount == transformerCount())
{ {
successReadingConfig = false; successReadingConfig = false;
} }
@@ -225,11 +226,14 @@ public class CombinedConfig extends CombinedTransformConfig
* from selected text based types. * from selected text based types.
* @param mimetypeService to find all the mimetypes * @param mimetypeService to find all the mimetypes
*/ */
public void addPassThroughTransformer(MimetypeService mimetypeService) public void addPassThroughTransformer(MimetypeService mimetypeService, AbstractTransformRegistry registry)
{ {
List<String> mimetypes = mimetypeService.getMimetypes(); List<String> mimetypes = mimetypeService.getMimetypes();
Transformer transformer = LocalPassThroughTransform.getConfig(mimetypes); Transformer transformer = LocalPassThroughTransform.getConfig(mimetypes);
combinedTransformers.add(new TransformAndItsOrigin(transformer, null, "based on mimetype list")); TransformConfig transformConfig = TransformConfig.builder()
.withTransformers(Collections.singletonList(transformer))
.build();
addTransformConfig(transformConfig, "based on mimetype list", null, registry);
} }
public void register(TransformServiceRegistryImpl registry) public void register(TransformServiceRegistryImpl registry)

View File

@@ -33,6 +33,7 @@ import org.alfresco.repo.content.transform.LocalTransformImpl;
import org.alfresco.repo.content.transform.LocalTransformServiceRegistry; import org.alfresco.repo.content.transform.LocalTransformServiceRegistry;
import org.alfresco.repo.content.transform.TransformerDebug; import org.alfresco.repo.content.transform.TransformerDebug;
import org.alfresco.transform.client.model.config.SupportedSourceAndTarget; import org.alfresco.transform.client.model.config.SupportedSourceAndTarget;
import org.alfresco.transform.client.model.config.TransformConfig;
import org.alfresco.transform.client.model.config.TransformOption; import org.alfresco.transform.client.model.config.TransformOption;
import org.alfresco.transform.client.model.config.TransformOptionGroup; import org.alfresco.transform.client.model.config.TransformOptionGroup;
import org.alfresco.transform.client.model.config.TransformOptionValue; import org.alfresco.transform.client.model.config.TransformOptionValue;
@@ -191,7 +192,7 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
private static final String URL = ".url"; private static final String URL = ".url";
private Map<String, Set<TransformOption>> mapOfTransformOptions; private Map<String, Set<TransformOption>> mapOfTransformOptions;
private List<CombinedConfig.TransformAndItsOrigin> transformerList; private List<Transformer> transformerList;
protected TestLocalTransformServiceRegistry registry; protected TestLocalTransformServiceRegistry registry;
@@ -262,11 +263,13 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
*/ */
private void retrieveLocalTransformList(String path) private void retrieveLocalTransformList(String path)
{ {
CombinedConfig combinedConfig = new CombinedConfig(log); CombinedConfig combinedConfig = new CombinedConfig(log, registry);
combinedConfig.addLocalConfig(path); combinedConfig.addLocalConfig(path);
combinedConfig.register(registry); combinedConfig.register(registry);
mapOfTransformOptions = combinedConfig.combinedTransformOptions;
transformerList = combinedConfig.combinedTransformers; TransformConfig transformConfig = combinedConfig.buildTransformConfig();
mapOfTransformOptions = transformConfig.getTransformOptions();
transformerList = transformConfig.getTransformers();
} }
/** /**
@@ -370,7 +373,6 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
return LOCAL_TRANSFORM+transformer.getTransformerName()+".url"; return LOCAL_TRANSFORM+transformer.getTransformerName()+".url";
} }
private int countTopLevelOptions(Set<String> transformOptionNames) private int countTopLevelOptions(Set<String> transformOptionNames)
{ {
int i = 0; int i = 0;
@@ -384,7 +386,7 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
private void register(String path) throws IOException private void register(String path) throws IOException
{ {
CombinedConfig combinedConfig = new CombinedConfig(log); CombinedConfig combinedConfig = new CombinedConfig(log, registry);
combinedConfig.addLocalConfig(path); combinedConfig.addLocalConfig(path);
combinedConfig.register((TransformServiceRegistryImpl)registry); combinedConfig.register((TransformServiceRegistryImpl)registry);
} }
@@ -561,22 +563,22 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
listOfExpectedTransformersName.add("libreoffice"); listOfExpectedTransformersName.add("libreoffice");
listOfExpectedTransformersName.add("officeToImageViaPdf"); listOfExpectedTransformersName.add("officeToImageViaPdf");
for (CombinedConfig.TransformAndItsOrigin t : transformerList) for (Transformer transformer : transformerList)
{ {
assertTrue(t.transformer.getTransformerName() + " should be an expected local transformer.", listOfExpectedTransformersName.contains(t.transformer.getTransformerName())); assertTrue(transformer.getTransformerName() + " should be an expected local transformer.", listOfExpectedTransformersName.contains(transformer.getTransformerName()));
listOfExpectedTransformersName.remove(t.transformer.getTransformerName()); listOfExpectedTransformersName.remove(transformer.getTransformerName());
switch (t.transformer.getTransformerName()) switch (transformer.getTransformerName())
{ {
case "imagemagick": case "imagemagick":
assertEquals(t.transformer.getTransformerName() + " incorrect number of supported transform", 18, t.transformer.getSupportedSourceAndTargetList().size()); assertEquals(transformer.getTransformerName() + " incorrect number of supported transform", 18, transformer.getSupportedSourceAndTargetList().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform option names", 1, t.transformer.getTransformOptions().size()); assertEquals( transformer.getTransformerName() + "incorrect number of transform option names", 1, transformer.getTransformOptions().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform options", 6, countTopLevelOptions(t.transformer.getTransformOptions())); assertEquals( transformer.getTransformerName() + "incorrect number of transform options", 6, countTopLevelOptions(transformer.getTransformOptions()));
assertEquals(t.transformer.getTransformerName() + " expected to not be a transformer pipeline", t.transformer.getTransformerPipeline().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a transformer pipeline", transformer.getTransformerPipeline().size(), 0);
assertEquals(t.transformer.getTransformerName() + " expected to not be a failover pipeline", t.transformer.getTransformerFailover().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a failover pipeline", transformer.getTransformerFailover().size(), 0);
//Test supportedSourceAndTargetList //Test supportedSourceAndTargetList
for ( SupportedSourceAndTarget ssat: t.transformer.getSupportedSourceAndTargetList()) for ( SupportedSourceAndTarget ssat: transformer.getSupportedSourceAndTargetList())
{ {
assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", imagemagickSupportedTransformation.containsKey(ssat.getSourceMediaType())); assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", imagemagickSupportedTransformation.containsKey(ssat.getSourceMediaType()));
assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), imagemagickSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType())); assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), imagemagickSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType()));
@@ -584,14 +586,14 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
break; break;
case "tika": case "tika":
assertEquals(t.transformer.getTransformerName() + " incorrect number of supported transform", 11, t.transformer.getSupportedSourceAndTargetList().size()); assertEquals(transformer.getTransformerName() + " incorrect number of supported transform", 11, transformer.getSupportedSourceAndTargetList().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform option names", 1, t.transformer.getTransformOptions().size()); assertEquals( transformer.getTransformerName() + "incorrect number of transform option names", 1, transformer.getTransformOptions().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform options", 5, countTopLevelOptions(t.transformer.getTransformOptions())); assertEquals( transformer.getTransformerName() + "incorrect number of transform options", 5, countTopLevelOptions(transformer.getTransformOptions()));
assertEquals(t.transformer.getTransformerName() + " expected to not be a transformer pipeline", t.transformer.getTransformerPipeline().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a transformer pipeline", transformer.getTransformerPipeline().size(), 0);
assertEquals(t.transformer.getTransformerName() + " expected to not be a failover pipeline", t.transformer.getTransformerFailover().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a failover pipeline", transformer.getTransformerFailover().size(), 0);
//Test supportedSourceAndTargetList //Test supportedSourceAndTargetList
for ( SupportedSourceAndTarget ssat: t.transformer.getSupportedSourceAndTargetList()) for ( SupportedSourceAndTarget ssat: transformer.getSupportedSourceAndTargetList())
{ {
assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", tikaSupportedTransformation.containsKey(ssat.getSourceMediaType())); assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", tikaSupportedTransformation.containsKey(ssat.getSourceMediaType()));
assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), tikaSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType())); assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), tikaSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType()));
@@ -599,14 +601,14 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
break; break;
case "pdfrenderer": case "pdfrenderer":
assertEquals(t.transformer.getTransformerName() + " incorrect number of supported transform", 4, t.transformer.getSupportedSourceAndTargetList().size()); assertEquals(transformer.getTransformerName() + " incorrect number of supported transform", 4, transformer.getSupportedSourceAndTargetList().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform option names", 1, t.transformer.getTransformOptions().size()); assertEquals( transformer.getTransformerName() + "incorrect number of transform option names", 1, transformer.getTransformOptions().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform options", 5, countTopLevelOptions(t.transformer.getTransformOptions())); assertEquals( transformer.getTransformerName() + "incorrect number of transform options", 5, countTopLevelOptions(transformer.getTransformOptions()));
assertEquals(t.transformer.getTransformerName() + " expected to not be a transformer pipeline", t.transformer.getTransformerPipeline().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a transformer pipeline", transformer.getTransformerPipeline().size(), 0);
assertEquals(t.transformer.getTransformerName() + " expected to not be a failover pipeline", t.transformer.getTransformerFailover().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a failover pipeline", transformer.getTransformerFailover().size(), 0);
//Test supportedSourceAndTargetList //Test supportedSourceAndTargetList
for ( SupportedSourceAndTarget ssat: t.transformer.getSupportedSourceAndTargetList()) for ( SupportedSourceAndTarget ssat: transformer.getSupportedSourceAndTargetList())
{ {
assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", pdfRendererSupportedTransformation.containsKey(ssat.getSourceMediaType())); assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", pdfRendererSupportedTransformation.containsKey(ssat.getSourceMediaType()));
assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), pdfRendererSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType())); assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), pdfRendererSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType()));
@@ -614,14 +616,14 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
break; break;
case "libreoffice": case "libreoffice":
assertEquals(t.transformer.getTransformerName() + " incorrect number of supported transform", 9, t.transformer.getSupportedSourceAndTargetList().size()); assertEquals(transformer.getTransformerName() + " incorrect number of supported transform", 9, transformer.getSupportedSourceAndTargetList().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform option names", 0, t.transformer.getTransformOptions().size()); assertEquals( transformer.getTransformerName() + "incorrect number of transform option names", 0, transformer.getTransformOptions().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform options", 0, countTopLevelOptions(t.transformer.getTransformOptions())); assertEquals( transformer.getTransformerName() + "incorrect number of transform options", 0, countTopLevelOptions(transformer.getTransformOptions()));
assertEquals(t.transformer.getTransformerName() + " expected to not be a transformer pipeline", t.transformer.getTransformerPipeline().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a transformer pipeline", transformer.getTransformerPipeline().size(), 0);
assertEquals(t.transformer.getTransformerName() + " expected to not be a failover pipeline", t.transformer.getTransformerFailover().size(), 0); assertEquals(transformer.getTransformerName() + " expected to not be a failover pipeline", transformer.getTransformerFailover().size(), 0);
//Test supportedSourceAndTargetList //Test supportedSourceAndTargetList
for ( SupportedSourceAndTarget ssat: t.transformer.getSupportedSourceAndTargetList()) for ( SupportedSourceAndTarget ssat: transformer.getSupportedSourceAndTargetList())
{ {
assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", libreofficeSupportedTransformation.containsKey(ssat.getSourceMediaType())); assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", libreofficeSupportedTransformation.containsKey(ssat.getSourceMediaType()));
assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), libreofficeSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType())); assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), libreofficeSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType()));
@@ -630,13 +632,13 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
case "officeToImageViaPdf": case "officeToImageViaPdf":
// Note we will get 35 entries in getSupportedSourceAndTargetList() if the metadata transforms are not excluded // Note we will get 35 entries in getSupportedSourceAndTargetList() if the metadata transforms are not excluded
assertEquals(t.transformer.getTransformerName() + " incorrect number of supported transform", 28, t.transformer.getSupportedSourceAndTargetList().size()); assertEquals(transformer.getTransformerName() + " incorrect number of supported transform", 28, transformer.getSupportedSourceAndTargetList().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform option names", 2, t.transformer.getTransformOptions().size()); assertEquals( transformer.getTransformerName() + "incorrect number of transform option names", 2, transformer.getTransformOptions().size());
assertEquals( t.transformer.getTransformerName() + "incorrect number of transform options", 11, countTopLevelOptions(t.transformer.getTransformOptions())); assertEquals( transformer.getTransformerName() + "incorrect number of transform options", 11, countTopLevelOptions(transformer.getTransformOptions()));
assertEquals(t.transformer.getTransformerName() + " expected to be a transformer pipeline", t.transformer.getTransformerPipeline().size(), 3); assertEquals(transformer.getTransformerName() + " expected to be a transformer pipeline", transformer.getTransformerPipeline().size(), 3);
//Test supportedSourceAndTargetList //Test supportedSourceAndTargetList
for ( SupportedSourceAndTarget ssat: t.transformer.getSupportedSourceAndTargetList()) for ( SupportedSourceAndTarget ssat: transformer.getSupportedSourceAndTargetList())
{ {
assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", officeToImageViaPdfSupportedTransformation.containsKey(ssat.getSourceMediaType())); assertTrue(ssat.getSourceMediaType() + " not expected to be a supported transform source.", officeToImageViaPdfSupportedTransformation.containsKey(ssat.getSourceMediaType()));
assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), officeToImageViaPdfSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType())); assertTrue(ssat.getTargetMediaType() + " not expected to be a supported transform target for " + ssat.getSourceMediaType(), officeToImageViaPdfSupportedTransformation.get(ssat.getSourceMediaType()).contains(ssat.getTargetMediaType()));
@@ -653,11 +655,11 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
retrieveLocalTransformList(LOCAL_TRANSFORM_SERVICE_CONFIG); retrieveLocalTransformList(LOCAL_TRANSFORM_SERVICE_CONFIG);
assertNotNull("Transformer list is null.", transformerList); assertNotNull("Transformer list is null.", transformerList);
for (CombinedConfig.TransformAndItsOrigin t : transformerList) for (Transformer transformer : transformerList)
{ {
if(t.transformer.getTransformerPipeline() == null) if (transformer.getTransformerPipeline() == null)
{ {
assertNotNull(t.transformer.getTransformerName()+ " JVM property not set.", System.getProperty(LOCAL_TRANSFORM + t.transformer.getTransformerName() + URL)); assertNotNull(transformer.getTransformerName()+ " JVM property not set.", System.getProperty(LOCAL_TRANSFORM + transformer.getTransformerName() + URL));
} }
} }
assertEquals("Unexpected pdfrenderer JVM property value", "http://localhost:8090/", System.getProperty(LOCAL_TRANSFORM + "pdfrenderer" + URL)); assertEquals("Unexpected pdfrenderer JVM property value", "http://localhost:8090/", System.getProperty(LOCAL_TRANSFORM + "pdfrenderer" + URL));
@@ -665,11 +667,11 @@ public class LocalTransformServiceRegistryConfigTest extends TransformRegistryTe
assertEquals("Unexpected libreoffice JVM property value", "http://localhost:8092/", System.getProperty(LOCAL_TRANSFORM + "libreoffice" + URL)); assertEquals("Unexpected libreoffice JVM property value", "http://localhost:8092/", System.getProperty(LOCAL_TRANSFORM + "libreoffice" + URL));
assertEquals("Unexpected tika JVM property value", "http://localhost:8093/", System.getProperty(LOCAL_TRANSFORM + "tika" + URL)); assertEquals("Unexpected tika JVM property value", "http://localhost:8093/", System.getProperty(LOCAL_TRANSFORM + "tika" + URL));
for (CombinedConfig.TransformAndItsOrigin t : transformerList) for (Transformer transformer : transformerList)
{ {
if(t.transformer.getTransformerPipeline() == null) if(transformer.getTransformerPipeline() == null)
{ {
assertNotNull(t.transformer.getTransformerName()+ " alfresco-global property not set.", properties.getProperty(LOCAL_TRANSFORM + t.transformer.getTransformerName() + URL)); assertNotNull(transformer.getTransformerName()+ " alfresco-global property not set.", properties.getProperty(LOCAL_TRANSFORM + transformer.getTransformerName() + URL));
} }
} }
assertEquals("Unexpected pdfrenderer alfresco-global property value", "http://localhost:8090/", properties.getProperty(LOCAL_TRANSFORM + "pdfrenderer" + URL)); assertEquals("Unexpected pdfrenderer alfresco-global property value", "http://localhost:8090/", properties.getProperty(LOCAL_TRANSFORM + "pdfrenderer" + URL));