diff --git a/source/java/org/alfresco/repo/action/ActionsAspect.java b/source/java/org/alfresco/repo/action/ActionsAspect.java index 30e9a575a7..4478850330 100644 --- a/source/java/org/alfresco/repo/action/ActionsAspect.java +++ b/source/java/org/alfresco/repo/action/ActionsAspect.java @@ -154,6 +154,7 @@ public class ActionsAspect QName classRef, NodeRef sourceNodeRef, NodeRef destinationRef, + boolean copyToNew, Map copyMap) { this.onAddAspectBehaviour.enable(); diff --git a/source/java/org/alfresco/repo/copy/CopyServiceImpl.java b/source/java/org/alfresco/repo/copy/CopyServiceImpl.java index 48e42308e0..a26de1a4e3 100644 --- a/source/java/org/alfresco/repo/copy/CopyServiceImpl.java +++ b/source/java/org/alfresco/repo/copy/CopyServiceImpl.java @@ -172,7 +172,7 @@ public class CopyServiceImpl implements CopyService // Foreach of the newly created copies call the copy complete policy for (Map.Entry entry : copiedChildren.entrySet()) { - invokeCopyComplete(entry.getKey(), entry.getValue(), copiedChildren); + invokeCopyComplete(entry.getKey(), entry.getValue(), true, copiedChildren); } return copy; @@ -188,16 +188,17 @@ public class CopyServiceImpl implements CopyService private void invokeCopyComplete( NodeRef sourceNodeRef, NodeRef destinationNodeRef, + boolean copyToNewNode, Map copiedNodeRefs) { QName sourceClassRef = this.nodeService.getType(sourceNodeRef); - invokeCopyComplete(sourceClassRef, sourceNodeRef, destinationNodeRef, copiedNodeRefs); + invokeCopyComplete(sourceClassRef, sourceNodeRef, destinationNodeRef, copyToNewNode, copiedNodeRefs); // Get the source aspects Set sourceAspects = this.nodeService.getAspects(sourceNodeRef); for (QName sourceAspect : sourceAspects) { - invokeCopyComplete(sourceAspect, sourceNodeRef, destinationNodeRef, copiedNodeRefs); + invokeCopyComplete(sourceAspect, sourceNodeRef, destinationNodeRef, copyToNewNode, copiedNodeRefs); } } @@ -212,6 +213,7 @@ public class CopyServiceImpl implements CopyService QName typeQName, NodeRef sourceNodeRef, NodeRef destinationNodeRef, + boolean copyToNewNode, Map copiedNodeRefs) { Collection policies = this.onCopyCompleteDelegate.getList(typeQName); @@ -223,7 +225,7 @@ public class CopyServiceImpl implements CopyService { for (CopyServicePolicies.OnCopyCompletePolicy policy : policies) { - policy.onCopyComplete(typeQName, sourceNodeRef, destinationNodeRef, copiedNodeRefs); + policy.onCopyComplete(typeQName, sourceNodeRef, destinationNodeRef, copyToNewNode, copiedNodeRefs); } } } @@ -723,6 +725,11 @@ public class CopyServiceImpl implements CopyService copyProperties(destinationNodeRef, copyDetails); copyAspects(destinationNodeRef, copyDetails); copyAssociations(destinationNodeRef, copyDetails, false, new HashMap()); + + // invoke the copy complete policy + Map copiedNodes = new HashMap(1); + copiedNodes.put(sourceNodeRef, destinationNodeRef); + invokeCopyComplete(sourceNodeRef, destinationNodeRef, false, copiedNodes); } /** @@ -750,6 +757,7 @@ public class CopyServiceImpl implements CopyService QName classRef, NodeRef sourceNodeRef, NodeRef destinationRef, + boolean copyToNew, Map copyMap) { // Do nothing since we do not want the copy from aspect to be relative to the copied nodes diff --git a/source/java/org/alfresco/repo/copy/CopyServicePolicies.java b/source/java/org/alfresco/repo/copy/CopyServicePolicies.java index d68f154fc2..89d68b23bd 100644 --- a/source/java/org/alfresco/repo/copy/CopyServicePolicies.java +++ b/source/java/org/alfresco/repo/copy/CopyServicePolicies.java @@ -67,6 +67,7 @@ public interface CopyServicePolicies QName classRef, NodeRef sourceNodeRef, NodeRef destinationRef, + boolean copyToNewNode, Map copyMap); } } diff --git a/source/java/org/alfresco/repo/rule/RulesAspect.java b/source/java/org/alfresco/repo/rule/RulesAspect.java index e3a4294676..8a8f4c623d 100644 --- a/source/java/org/alfresco/repo/rule/RulesAspect.java +++ b/source/java/org/alfresco/repo/rule/RulesAspect.java @@ -152,6 +152,7 @@ public class RulesAspect QName classRef, NodeRef sourceNodeRef, NodeRef destinationRef, + boolean copyToNew, Map copyMap) { this.onAddAspectBehaviour.enable();