From 770ee1047b96d2f5f5b60f888c1d178bc3f41d55 Mon Sep 17 00:00:00 2001 From: cagache Date: Fri, 24 Aug 2018 13:25:45 +0300 Subject: [PATCH] MNT-18806 create a new content bin for the copy on copy complete behavior --- .../rm-model-context.xml | 2 ++ .../model/rma/aspect/RecordAspect.java | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml index ddd303c982..0ab48b9cc7 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-model-context.xml @@ -143,6 +143,8 @@ + + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java index c2e67a2460..c84494dadc 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordAspect.java @@ -51,9 +51,13 @@ import org.alfresco.repo.policy.annotation.BehaviourBean; import org.alfresco.repo.policy.annotation.BehaviourKind; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; +import org.alfresco.service.cmr.model.FileFolderService; import org.alfresco.service.cmr.quickshare.QuickShareService; import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ContentData; +import org.alfresco.service.cmr.repository.ContentReader; +import org.alfresco.service.cmr.repository.ContentService; +import org.alfresco.service.cmr.repository.ContentWriter; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.ScriptService; import org.alfresco.service.namespace.QName; @@ -94,6 +98,12 @@ public class RecordAspect extends AbstractDisposableItem /** quickShare service */ private QuickShareService quickShareService; + /** File folder service */ + private FileFolderService fileFolderService; + + /** Content service */ + private ContentService contentService; + /** I18N */ private static final String MSG_CANNOT_UPDATE_RECORD_CONTENT = "rm.service.update-record-content"; @@ -130,6 +140,24 @@ public class RecordAspect extends AbstractDisposableItem this.quickShareService = quickShareService; } + /** + * + * @param fileFolderService file folder service + */ + public void setFileFolderService(FileFolderService fileFolderService) + { + this.fileFolderService = fileFolderService; + } + + /** + * + * @param contentService content service + */ + public void setContentService(ContentService contentService) + { + this.contentService = contentService; + } + /** * Behaviour to ensure renditions have the appropriate extended security. * @@ -358,6 +386,11 @@ public class RecordAspect extends AbstractDisposableItem { // then remove any extended security from the newly copied record extendedSecurityService.remove(targetNodeRef); + + //create a new content URL for the copy + ContentReader reader = fileFolderService.getReader(targetNodeRef); + ContentWriter writer = contentService.getWriter(targetNodeRef, ContentModel.PROP_CONTENT, true); + writer.putContent(reader); } }