1 package nl.hippo.cms.workflows.reviewedactions; 2 3 import com.opensymphony.module.propertyset.PropertySet; 4 import com.opensymphony.workflow.WorkflowException; 5 import java.util.Date ; 6 import java.util.Map ; 7 import nl.hippo.cms.workflows.shared.FunctionProviderComponent; 8 import nl.hippo.cms.workflows.shared.WorkflowExtensionUtil; 9 import nl.hippo.cms.workflows.shared.WorkflowSchedulerUtil; 10 import nl.hippo.componentcontainers.AvalonSpringBridge; 11 import nl.hippo.servermanager.Project; 12 import nl.hippo.servermanager.ServerManager; 13 import org.apache.avalon.framework.CascadingException; 14 import org.quartz.Scheduler; 15 16 public class StartPublicationTaskFunction extends FunctionProviderComponent { 17 18 private static final int DEBUG_OFFSET_IN_MINUTES = 2; 19 20 public StartPublicationTaskFunction() { 21 super(); 22 } 23 24 public void executeImpl(Map transientVars, Map args, PropertySet ps) 25 throws WorkflowException { 26 Date publicationDate = WorkflowExtensionUtil.getDateAndTime(transientVars.get("publicationDate")); 27 String location = (String ) transientVars.get("location"); 28 String projectName = (String ) transientVars.get("projectname"); 29 30 AvalonSpringBridge asb = null; 31 try 32 { 33 asb = (AvalonSpringBridge) m_manager.lookup(AvalonSpringBridge.ROLE); 34 ServerManager sm = (ServerManager)asb.getBean("serverManager"); 35 Project p = sm.getServer().getProject(projectName); 36 Scheduler scheduler = p.getJobScheduler(); 37 38 WorkflowSchedulerUtil wsu = new WorkflowSchedulerUtil(); 39 wsu.setScheduler(scheduler); 40 wsu.setProjectName(projectName); 41 42 String taskId = wsu.schedule(location, PublicationTask.class.getName(), publicationDate, DEBUG_OFFSET_IN_MINUTES); 43 44 ps.setString("publicationTaskId", taskId); 45 } 46 catch (Exception e) 47 { 48 Throwable t = e; 49 while (t != null && t instanceof CascadingException) 50 { 51 t = ((CascadingException)t).getCause(); 52 } 53 throw new WorkflowException(t); 54 } 55 finally 56 { 57 if (asb != null) 58 { 59 m_manager.release(asb); 60 } 61 } 62 } 63 64 } 65 | Popular Tags |