Package fr.becpg.repo.activity.policy
Class EntityActivityPolicy
java.lang.Object
fr.becpg.repo.policy.AbstractBeCPGPolicy
fr.becpg.repo.activity.policy.EntityActivityPolicy
- All Implemented Interfaces:
org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy,org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy,org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy,org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy,org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy,org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy,org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnRestoreNodePolicy,org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy,org.alfresco.repo.policy.AssociationPolicy,org.alfresco.repo.policy.ClassPolicy,org.alfresco.repo.policy.Policy
public class EntityActivityPolicy
extends AbstractBeCPGPolicy
implements org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy, org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy, org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy, org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy, org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy, org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy, org.alfresco.repo.node.NodeServicePolicies.OnRestoreNodePolicy
EntityActivityPolicy class.
- Version:
- $Id: $Id
- Author:
- matthieu
-
Nested Class Summary
Nested classes/interfaces inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
AbstractBeCPGPolicy.BeCPGPolicyTransactionListenerNested classes/interfaces inherited from interface org.alfresco.repo.policy.Policy
org.alfresco.repo.policy.Policy.Arg -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final StringConstantDELIMITER="###"private EntityActivityServiceprivate EntityDictionaryServicestatic final Stringstatic final StringConstantKEY_QUEUE_ADDED_TPL_ASPECT="EntityActivity_AddedTplAspect"static final StringConstantKEY_QUEUE_CREATED="EntityActivity_created"static final StringConstantKEY_QUEUE_DELETED="EntityActivity_deleted"static final StringConstantKEY_QUEUE_UPDATED="EntityActivity_updated"static final StringConstantKEY_QUEUE_UPDATED_STATUS="EntityActivity_UpdatedStatus"private static final StringConstantKEY_RESTORING_ARCHIVED_NODE="EntityActivity_RestoringArchivedNode"private static final org.apache.commons.logging.LogConstantloggerprivate static final PatternConstantpatternFields inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
ASSOC_REGISTRY, KEY_PENDING_DELETE_NODES, KEY_REGISTRY, lockService, nodeService, policyBehaviourFilter, policyComponent, postTransactionListener, transactionListenerFields inherited from interface org.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy
QNAMEFields inherited from interface org.alfresco.repo.copy.CopyServicePolicies.OnCopyCompletePolicy
QNAMEFields inherited from interface org.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy
ARG_0, ARG_1, QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnRestoreNodePolicy
QNAMEFields inherited from interface org.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
ARG_0, ARG_1, ARG_2, QNAMEFields inherited from interface org.alfresco.repo.policy.Policy
NAMESPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanaccept(org.alfresco.service.namespace.QName type) accept.voidbeforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef) protected booleandoBeforeCommit(String key, Set<org.alfresco.service.cmr.repository.NodeRef> pendingNodes) doBeforeCommit.voiddoInit()doInit.org.alfresco.repo.copy.CopyBehaviourCallbackgetCopyCallback(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails) booleanignoreType(org.alfresco.service.namespace.QName type, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) ignoreType.private booleanisArchived(org.alfresco.service.cmr.repository.NodeRef nodeRef) Tells whether the node lives in the archive store, where activities are pointless: an archived node is only reachable from the trashcan, and both archiving and restoring walk the whole subtree.voidonAddAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName) voidonContentUpdate(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean newContent) voidonCreateAssociation(org.alfresco.service.cmr.repository.AssociationRef assocRef) voidonCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) voidonDeleteAssociation(org.alfresco.service.cmr.repository.AssociationRef assocRef) voidonMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef) voidonRestoreNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) Restoring an archived node is a cross-store move: Alfresco replays a creation for every descendant, which would turn a single restore into one activity per node.voidonUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) private voidregisterActivity(org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef, org.alfresco.service.namespace.QName type, ActivityEvent activityEvent) registerActivity.voidsetEntityActivityService(EntityActivityService entityActivityService) Setter for the fieldentityActivityService.voidsetEntityDictionaryService(EntityDictionaryService entityDictionaryService) Setter for the fieldentityDictionaryService.Methods inherited from class fr.becpg.repo.policy.AbstractBeCPGPolicy
containsNodeInQueue, containsNodeInQueue, disableOnCopyBehaviour, doAfterAssocsCommit, doAfterCommit, doBeforeAssocsCommit, generateDefaultKey, getKeyRegistry, init, isBeCPGVersion, isEntityTemplate, isNotLocked, isPendingDelete, isPropChanged, isVersionNode, isVersionStoreNode, isWorkingCopyOrVersion, onCopyComplete, queueAssoc, queueAssoc, queueNode, queueNode, setLockService, setNodeService, setPolicyBehaviourFilter, setPolicyComponent, unQueueNode, unQueueNode
-
Field Details
-
logger
private static final org.apache.commons.logging.Log loggerConstantlogger -
KEY_QUEUE_UPDATED
ConstantKEY_QUEUE_UPDATED="EntityActivity_updated"- See Also:
-
KEY_QUEUE_DELETED
ConstantKEY_QUEUE_DELETED="EntityActivity_deleted"- See Also:
-
KEY_QUEUE_CREATED
ConstantKEY_QUEUE_CREATED="EntityActivity_created"- See Also:
-
KEY_QUEUE_UPDATED_STATUS
ConstantKEY_QUEUE_UPDATED_STATUS="EntityActivity_UpdatedStatus"- See Also:
-
KEY_QUEUE_ADDED_TPL_ASPECT
ConstantKEY_QUEUE_ADDED_TPL_ASPECT="EntityActivity_AddedTplAspect"- See Also:
-
KEY_IGNORE_MOVE_ACTIVITIES
- See Also:
-
KEY_RESTORING_ARCHIVED_NODE
ConstantKEY_RESTORING_ARCHIVED_NODE="EntityActivity_RestoringArchivedNode"- See Also:
-
DELIMITER
ConstantDELIMITER="###"- See Also:
-
pattern
Constantpattern -
entityActivityService
-
entityDictionaryService
-
-
Constructor Details
-
EntityActivityPolicy
public EntityActivityPolicy()
-
-
Method Details
-
setEntityActivityService
Setter for the field
entityActivityService.- Parameters:
entityActivityService- aEntityActivityServiceobject.
-
setEntityDictionaryService
Setter for the field
entityDictionaryService.- Parameters:
entityDictionaryService- aEntityDictionaryServiceobject.
-
doInit
public void doInit()doInit.
Inits the.- Specified by:
doInitin classAbstractBeCPGPolicy
-
getCopyCallback
public org.alfresco.repo.copy.CopyBehaviourCallback getCopyCallback(org.alfresco.service.namespace.QName classRef, org.alfresco.repo.copy.CopyDetails copyDetails) - Specified by:
getCopyCallbackin interfaceorg.alfresco.repo.copy.CopyServicePolicies.OnCopyNodePolicy- Overrides:
getCopyCallbackin classAbstractBeCPGPolicy
-
ignoreType
public boolean ignoreType(org.alfresco.service.namespace.QName type, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) ignoreType.
-
onMoveNode
public void onMoveNode(org.alfresco.service.cmr.repository.ChildAssociationRef oldChildAssocRef, org.alfresco.service.cmr.repository.ChildAssociationRef newChildAssocRef) - Specified by:
onMoveNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnMoveNodePolicy
-
onAddAspect
public void onAddAspect(org.alfresco.service.cmr.repository.NodeRef nodeRef, org.alfresco.service.namespace.QName aspectTypeQName) - Specified by:
onAddAspectin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnAddAspectPolicy
-
onUpdateProperties
public void onUpdateProperties(org.alfresco.service.cmr.repository.NodeRef nodeRef, Map<org.alfresco.service.namespace.QName, Serializable> before, Map<org.alfresco.service.namespace.QName, Serializable> after) - Specified by:
onUpdatePropertiesin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnUpdatePropertiesPolicy
-
onCreateAssociation
public void onCreateAssociation(org.alfresco.service.cmr.repository.AssociationRef assocRef) - Specified by:
onCreateAssociationin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnCreateAssociationPolicy
-
onDeleteAssociation
public void onDeleteAssociation(org.alfresco.service.cmr.repository.AssociationRef assocRef) - Specified by:
onDeleteAssociationin interfaceorg.alfresco.repo.node.NodeServicePolicies.OnDeleteAssociationPolicy
-
onContentUpdate
public void onContentUpdate(org.alfresco.service.cmr.repository.NodeRef nodeRef, boolean newContent) - Specified by:
onContentUpdatein interfaceorg.alfresco.repo.content.ContentServicePolicies.OnContentUpdatePolicy
-
onCreateNode
public void onCreateNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) - Specified by:
onCreateNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnCreateNodePolicy
-
beforeDeleteNode
public void beforeDeleteNode(org.alfresco.service.cmr.repository.NodeRef nodeRef) - Specified by:
beforeDeleteNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.BeforeDeleteNodePolicy
-
onRestoreNode
public void onRestoreNode(org.alfresco.service.cmr.repository.ChildAssociationRef childAssocRef) Restoring an archived node is a cross-store move: Alfresco replays a creation for every descendant, which would turn a single restore into one activity per node. Those activities describe no user edit and, piled up in the single transaction of the restore, exhaust both the heap and the database locks, so the whole restore fails. Alfresco fires the same policy for a locked node on its way to the archive, hence the check on the destination store: only a node coming back to the live store is being restored.- Specified by:
onRestoreNodein interfaceorg.alfresco.repo.node.NodeServicePolicies.OnRestoreNodePolicy
-
isArchived
private boolean isArchived(org.alfresco.service.cmr.repository.NodeRef nodeRef) Tells whether the node lives in the archive store, where activities are pointless: an archived node is only reachable from the trashcan, and both archiving and restoring walk the whole subtree.
- Parameters:
nodeRef- aNodeRefobject- Returns:
- true when the node has been archived
-
doBeforeCommit
protected boolean doBeforeCommit(String key, Set<org.alfresco.service.cmr.repository.NodeRef> pendingNodes) doBeforeCommit.
- Overrides:
doBeforeCommitin classAbstractBeCPGPolicy- Parameters:
key- aStringobject.pendingNodes- aSetobject.- Returns:
- a boolean.
-
accept
private boolean accept(org.alfresco.service.namespace.QName type) accept.
- Parameters:
type- aQNameobject- Returns:
- a boolean
-
registerActivity
private void registerActivity(org.alfresco.service.cmr.repository.NodeRef actionedUponNodeRef, org.alfresco.service.namespace.QName type, ActivityEvent activityEvent) registerActivity.
- Parameters:
actionedUponNodeRef- aNodeRefobjecttype- aQNameobjectactivityEvent- aActivityEventobject
-