KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > nl > hippo > cms > workflows > shared > WorkflowSchedulerUtil


1 package nl.hippo.cms.workflows.shared;
2
3 import java.util.Calendar JavaDoc;
4 import java.util.Date JavaDoc;
5 import nl.hippo.uidgenerator.UIDGenerator;
6 import nl.hippo.uidgenerator.UIDGeneratorException;
7 import org.quartz.JobDataMap;
8 import org.quartz.JobDetail;
9 import org.quartz.Scheduler;
10 import org.quartz.SchedulerException;
11 import org.quartz.SimpleTrigger;
12 import org.quartz.Trigger;
13
14 public class WorkflowSchedulerUtil
15 {
16     
17     private static final String JavaDoc SCHEDULING_DEBUG_PROPERTY_NAME = "hippo.cms.workflow.scheduling.debug";
18     
19     private Scheduler m_scheduler;
20     
21     private String JavaDoc m_projectName;
22
23     public WorkflowSchedulerUtil()
24     {
25         super();
26     }
27
28     public void setScheduler(Scheduler scheduler)
29     {
30         m_scheduler = scheduler;
31     }
32     
33     public void setProjectName(String JavaDoc projectName)
34     {
35         m_projectName = projectName;
36     }
37     
38     public String JavaDoc schedule(String JavaDoc location, String JavaDoc componentIdentifier, Date JavaDoc date, int debugOffsetInMinutes) throws UIDGeneratorException, SchedulerException
39     {
40         String JavaDoc result = UIDGenerator.generateUID();
41         JobDetail jobDetail = new JobDetail(result, m_projectName, WorkflowQuartzJob.class, false, false, false);
42         JobDataMap jobData = new JobDataMap();
43         jobData.put("location", location);
44         jobData.put("projectName", m_projectName);
45         jobData.put("component", componentIdentifier);
46         jobDetail.setJobDataMap(jobData);
47         schedule(date, debugOffsetInMinutes, jobDetail);
48         return result;
49     }
50
51     private void schedule(Date JavaDoc date, int debugOffsetInMinutes, JobDetail jobDetail) throws SchedulerException
52     {
53         String JavaDoc group = jobDetail.getGroup();
54         String JavaDoc name = jobDetail.getName();
55         if (isDebugOn())
56         {
57             Calendar JavaDoc debugDate = Calendar.getInstance();
58             debugDate.add(Calendar.MINUTE, debugOffsetInMinutes);
59             Trigger trigger = new SimpleTrigger(name, group, debugDate.getTime());
60             m_scheduler.scheduleJob(jobDetail, trigger);
61         }
62         else
63         {
64             Trigger trigger = new SimpleTrigger(name, group, date);
65             m_scheduler.scheduleJob(jobDetail, trigger);
66         }
67     }
68     
69     private boolean isDebugOn()
70     {
71         String JavaDoc debugPropertyValue = System.getProperty(SCHEDULING_DEBUG_PROPERTY_NAME);
72         return debugPropertyValue != null && debugPropertyValue.equals("true");
73     }
74 }
75
Popular Tags