1 package nl.hippo.cms.workflows.multiplesitesdocument; 2 3 import com.opensymphony.module.propertyset.PropertySet; 4 import com.opensymphony.workflow.WorkflowException; 5 import java.util.HashMap ; 6 import java.util.Iterator ; 7 import java.util.Map ; 8 import nl.hippo.cms.sitesdirectory.SitesDirectory; 9 import nl.hippo.cms.workflows.shared.FunctionProviderComponent; 10 import nl.hippo.componentcontainers.AvalonSpringBridge; 11 import nl.hippo.servermanager.Project; 12 import nl.hippo.servermanager.ProjectWorkflowRepository; 13 import nl.hippo.servermanager.Server; 14 import nl.hippo.servermanager.ServerManager; 15 16 public class NotifySitesOfDeletionCancellationFunction extends FunctionProviderComponent 17 { 18 19 public NotifySitesOfDeletionCancellationFunction() 20 { 21 super(); 22 } 23 24 public void executeImpl(Map transientVars, Map args, PropertySet ps) throws WorkflowException 25 { 26 String projectName = (String ) transientVars 27 .get(MultipleSitesDocumentConstants.PROJECT_NAME_KEY); 28 try 29 { 30 AvalonSpringBridge asb = (AvalonSpringBridge) m_manager.lookup(AvalonSpringBridge.ROLE); 31 try 32 { 33 Server server = ((ServerManager) asb.getBean("serverManager")).getServer(); 34 Project project = server.getProject(projectName); 35 ProjectWorkflowRepository workflowRepo = project.getWorkflowRepository(); 36 37 SitesDirectory sitesDir = (SitesDirectory) m_manager.lookup(SitesDirectory.ROLE); 38 try 39 { 40 Map siteWorkflowIds = (Map ) ps 41 .getAsActualType(MultipleSitesDocumentConstants.SITE_WORKFLOW_IDS_KEY); 42 if (siteWorkflowIds == null) 43 { 44 siteWorkflowIds = new HashMap (); 45 } 46 47 Iterator siteIdsIterator = sitesDir.siteIdsIterator(); 48 while (siteIdsIterator.hasNext()) 49 { 50 String siteId = (String ) siteIdsIterator.next(); 51 Long siteWorkflowIdAsLong = (Long ) siteWorkflowIds.get(siteId); 52 if (siteWorkflowIdAsLong != null) 53 { 54 long siteWorkflowId = siteWorkflowIdAsLong.longValue(); 55 workflowRepo.doAction(siteWorkflowId, 1011, new HashMap ()); 56 } 57 } 58 } 59 finally 60 { 61 m_manager.release(sitesDir); 62 } 63 } 64 finally 65 { 66 m_manager.release(asb); 67 } 68 } 69 catch (Exception e) 70 { 71 throw new WorkflowException(e); 72 } 73 } 74 75 } 76 | Popular Tags |