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