From d8e4604ffccbc17d71331897930cb81d5bdd092c Mon Sep 17 00:00:00 2001 From: Britt Park Date: Tue, 30 Jan 2007 17:01:00 +0000 Subject: [PATCH] This cleans up workflow sandboxes when a workflow finishes. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4970 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/avm/wf/AVMClearSubmittedHandler.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/java/org/alfresco/repo/avm/wf/AVMClearSubmittedHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMClearSubmittedHandler.java index f084127938..0d503369a4 100644 --- a/source/java/org/alfresco/repo/avm/wf/AVMClearSubmittedHandler.java +++ b/source/java/org/alfresco/repo/avm/wf/AVMClearSubmittedHandler.java @@ -17,8 +17,10 @@ package org.alfresco.repo.avm.wf; import java.util.List; +import java.util.Map; import org.alfresco.repo.avm.AVMNodeConverter; +import org.alfresco.repo.domain.PropertyValue; import org.alfresco.repo.workflow.jbpm.JBPMNode; import org.alfresco.repo.workflow.jbpm.JBPMSpringActionHandler; import org.alfresco.service.cmr.avm.AVMNodeDescriptor; @@ -26,6 +28,7 @@ import org.alfresco.service.cmr.avm.AVMService; import org.alfresco.service.cmr.avmsync.AVMDifference; import org.alfresco.service.cmr.avmsync.AVMSyncService; import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.namespace.QName; import org.alfresco.util.Pair; import org.jbpm.graph.exe.ExecutionContext; import org.springframework.beans.factory.BeanFactory; @@ -95,6 +98,17 @@ public class AVMClearSubmittedHandler extends JBPMSpringActionHandler String submittedPath = from + diff.getSourcePath().substring(pkgPath.getSecond().length()); fAVMSubmittedAspect.clearSubmitted(-1, submittedPath); } + // Now delete the stores in the workflow sandbox. + String [] storePath = pkgPath.getSecond().split(":"); + // Get the sandbox id for the package. + Map matches = fAVMService.queryStorePropertyKey(storePath[0], QName.createQName(null, ".sandbox-id%")); + QName sandboxID = matches.keySet().iterator().next(); + // Get all the stores in the sandbox. + Map> stores = fAVMService.queryStoresPropertyKeys(sandboxID); + for (String storeName : stores.keySet()) + { + fAVMService.purgeStore(storeName); + } } }