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 NotifySitesOfDeletionApprovalFunction extends FunctionProviderComponent 17 { 18 19 public NotifySitesOfDeletionApprovalFunction() 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 52 Long siteWorkflowIdAsLong = (Long ) siteWorkflowIds.get(siteId); 53 if (siteWorkflowIdAsLong != null) 54 { 55 long siteWorkflowId = siteWorkflowIdAsLong.longValue(); 56 Map arguments = new HashMap (); 57 arguments.put("httpstate", transientVars.get("httpstate")); 58 workflowRepo.doAction(siteWorkflowId, 1402, arguments); 59 } 60 } 61 } 62 finally 63 { 64 m_manager.release(sitesDir); 65 } 66 } 67 finally 68 { 69 m_manager.release(asb); 70 } 71 } 72 catch (Exception e) 73 { 74 throw new WorkflowException(e); 75 } 76 } 77 78 } 79 | Popular Tags |