From 3ad33034f122af679e9ad065b59d6906939cc58e Mon Sep 17 00:00:00 2001 From: montgolfiere Date: Wed, 10 Feb 2021 20:37:57 +0000 Subject: [PATCH] MNT-14308: CMIS - optionally request rendition(s) when uploading docs - part 2 (#283) * MNT-14308: CMIS - optionally request rendition(s) when uploading docs - part 2 - note: PublicApiAlfrescoCmisServiceFactory extends AlfrescoCmisServiceFactory and overrides getCmisServiceTarget - hence, also ensure property (cmis.create.doc.request.renditions.set) is set for public rest api spring context - note: set following log4j.properties: log4j.logger.org.alfresco.opencmis=info * MNT-14308: CMIS - optionally request rendition(s) when uploading docs - part 2 - tweak info log to output property on init (since service currently instantiated on every call) - note: set following log4j.properties: log4j.logger.org.alfresco.opencmis=info --- .../alfresco/public-rest-context.xml | 1 + .../opencmis/AlfrescoCmisServiceFactory.java | 27 ++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/remote-api/src/main/resources/alfresco/public-rest-context.xml b/remote-api/src/main/resources/alfresco/public-rest-context.xml index 2d9a20b0f4..c3306fbb29 100644 --- a/remote-api/src/main/resources/alfresco/public-rest-context.xml +++ b/remote-api/src/main/resources/alfresco/public-rest-context.xml @@ -1081,6 +1081,7 @@ + diff --git a/repository/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceFactory.java b/repository/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceFactory.java index cdb0b6196b..754b14a8cf 100644 --- a/repository/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceFactory.java +++ b/repository/src/main/java/org/alfresco/opencmis/AlfrescoCmisServiceFactory.java @@ -174,6 +174,11 @@ public class AlfrescoCmisServiceFactory extends AbstractServiceFactory // cmisService, // connector.getTypesDefaultMaxItems(), connector.getTypesDefaultDepth(), // connector.getObjectsDefaultMaxItems(), connector.getObjectsDefaultDepth()); + + if (logger.isInfoEnabled()) + { + logger.info("init: cmis.create.doc.request.renditions.set=" + cmisCreateDocRequestRenditionsSet); + } } @Override @@ -206,7 +211,17 @@ public class AlfrescoCmisServiceFactory extends AbstractServiceFactory } AlfrescoCmisService service = getCmisServiceTarget(connector); - + if (service instanceof AlfrescoCmisServiceImpl) + { + Set stringSet = parseCommaSeparatedSet(getCmisCreateDocRequestRenditionsSet()); + ((AlfrescoCmisServiceImpl)service).setCmisRequestRenditionsOnCreateDoc(stringSet); + + if (logger.isTraceEnabled()) + { + logger.trace("getService: cmis.create.doc.request.renditions.set=" + stringSet); + } + } + // Wrap it ProxyFactory proxyFactory = new ProxyFactory(service); proxyFactory.addInterface(AlfrescoCmisService.class); @@ -227,16 +242,10 @@ public class AlfrescoCmisServiceFactory extends AbstractServiceFactory return wrapperService; } - + protected AlfrescoCmisService getCmisServiceTarget(CMISConnector connector) { - AlfrescoCmisServiceImpl cmisService = new AlfrescoCmisServiceImpl(connector); - - Set stringSet = parseCommaSeparatedSet(getCmisCreateDocRequestRenditionsSet()); - logger.info("getCmisServiceTarget: cmis.create.doc.request.renditions.set="+stringSet); - cmisService.setCmisRequestRenditionsOnCreateDoc(stringSet); - - return cmisService; + return new AlfrescoCmisServiceImpl(connector); } private Set parseCommaSeparatedSet(String str)