KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > hippo > cms > workflows > multiplesitessite > InvokePublishFunction


1 package nl.hippo.cms.workflows.multiplesitessite;
2
3 import com.opensymphony.module.propertyset.PropertySet;
4 import com.opensymphony.workflow.WorkflowException;
5 import com.opensymphony.workflow.spi.WorkflowEntry;
6 import java.text.DateFormat JavaDoc;
7 import java.text.SimpleDateFormat JavaDoc;
8 import java.util.Date JavaDoc;
9 import java.util.HashMap JavaDoc;
10 import java.util.Map JavaDoc;
11 import nl.hippo.cms.workflows.shared.DateUtil;
12 import nl.hippo.cms.workflows.shared.FunctionProviderComponent;
13 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil;
14 import nl.hippo.componentcontainers.AvalonSpringBridge;
15 import nl.hippo.servermanager.Project;
16 import nl.hippo.servermanager.ProjectWorkflowRepository;
17 import nl.hippo.servermanager.Server;
18 import nl.hippo.servermanager.ServerManager;
19 import org.apache.commons.httpclient.HttpState;
20
21 public class InvokePublishFunction extends FunctionProviderComponent
22 {
23
24     public InvokePublishFunction()
25     {
26         super();
27     }
28
29     public void executeImpl(Map JavaDoc transientVars, Map JavaDoc args, PropertySet ps) throws WorkflowException
30     {
31         WorkflowEntry entry = (WorkflowEntry) transientVars.get("entry");
32         String JavaDoc projectName = ps.getString("projectName");
33         AvalonSpringBridge asb;
34         try
35         {
36             asb = (AvalonSpringBridge) m_manager.lookup(AvalonSpringBridge.ROLE);
37             try
38             {
39                 Server server = ((ServerManager) asb.getBean("serverManager")).getServer();
40                 Project project = server.getProject(projectName);
41                 ProjectWorkflowRepository workflowRepo = project.getWorkflowRepository();
42                 HashMap JavaDoc params = new HashMap JavaDoc();
43                 params.put("projectName", projectName);
44                 HttpState httpState = (HttpState) transientVars.get("httpstate");
45                 params.put("httpstate", httpState);
46                 
47                 DateFormat JavaDoc df = new SimpleDateFormat JavaDoc("yyyyMMddHHmm");
48                 
49                 String JavaDoc publicationDateMode = (String JavaDoc) transientVars.get("publicationDateMode");
50                 if (publicationDateMode == null)
51                 {
52                     publicationDateMode = "now";
53                 }
54                 params.put("publicationDateMode", publicationDateMode);
55                 Object JavaDoc publicationDateAsObject = transientVars.get("publicationDate");
56                 Date JavaDoc publicationDate;
57                 if (publicationDateMode.equals("now") || publicationDateAsObject == null)
58                 {
59                     publicationDate = DateUtil.createToday();
60                 }
61                 else
62                 {
63                     publicationDate = WorkflowExtensionUtil.getDateAndTime(publicationDateAsObject);
64                 }
65                 params.put("publicationDate", df.format(publicationDate));
66                 
67                 String JavaDoc unpublicationDateMode = (String JavaDoc) transientVars.get("unpublicationDateMode");
68                 if (unpublicationDateMode == null)
69                 {
70                     unpublicationDateMode = "never";
71                 }
72                 params.put("unpublicationDateMode", unpublicationDateMode);
73                 Object JavaDoc unpublicationDateAsObject = transientVars.get("unpublicationDate");
74                 if (unpublicationDateMode.equals("never") || unpublicationDateAsObject == null)
75                 {
76                     params.remove("unpublicationDate");
77                 }
78                 else
79                 {
80                     Date JavaDoc unpublicationDate = WorkflowExtensionUtil.getDateAndTime(unpublicationDateAsObject);
81                     params.put("unpublicationDate", df.format(unpublicationDate));
82                 }
83                 
84                 workflowRepo.doAction(entry.getId(), 1005, params);
85             }
86             finally
87             {
88                 m_manager.release(asb);
89             }
90         }
91         catch (Exception JavaDoc e)
92         {
93             throw new WorkflowException(e);
94         }
95     }
96
97 }
98
Popular Tags