KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > efs > openreports > providers > QuartzProvider


1 /*
2  * Copyright (C) 2006 Erik Swenson - erik@oreports.com
3  *
4  * This program is free software; you can redistribute it and/or modify it under
5  * the terms of the GNU General Public License as published by the Free Software
6  * Foundation; either version 2 of the License, or (at your option) any later
7  * version.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12  * details.
13  *
14  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16  * Place - Suite 330, Boston, MA 02111-1307, USA.
17  *
18  */

19
20 package org.efs.openreports.providers;
21
22 import org.apache.log4j.Logger;
23 import org.quartz.*;
24 import org.quartz.impl.StdSchedulerFactory;
25 import org.springframework.beans.factory.DisposableBean;
26
27 public class QuartzProvider implements DisposableBean
28 {
29     protected static Logger log = Logger.getLogger(QuartzProvider.class.getName());
30
31     public QuartzProvider() throws ProviderException
32     {
33         try
34         {
35             StdSchedulerFactory.getDefaultScheduler().start();
36         }
37         catch(SchedulerException se)
38         {
39             se.printStackTrace();
40             throw new ProviderException(se);
41         }
42         
43         log.info("Report Scheduler started.");
44     }
45
46     public static void scheduleJob(JobDetail jobDetail, Trigger trigger) throws ProviderException
47     {
48         try
49         {
50             StdSchedulerFactory.getDefaultScheduler().scheduleJob(jobDetail, trigger);
51         }
52         catch(Exception JavaDoc e)
53         {
54             throw new ProviderException(e);
55         }
56     }
57     
58     public static String JavaDoc[] getJobNames(String JavaDoc group) throws ProviderException
59     {
60         try
61         {
62             return StdSchedulerFactory.getDefaultScheduler().getJobNames(group);
63         }
64         catch(Exception JavaDoc e)
65         {
66             throw new ProviderException(e);
67         }
68     }
69     
70     public static JobDetail getJobDetail(String JavaDoc jobName, String JavaDoc group) throws ProviderException
71     {
72         try
73         {
74             return StdSchedulerFactory.getDefaultScheduler().getJobDetail(jobName, group);
75         }
76         catch(Exception JavaDoc e)
77         {
78             throw new ProviderException(e);
79         }
80     }
81     
82     public static Trigger getTrigger(String JavaDoc jobName, String JavaDoc group) throws ProviderException
83     {
84         try
85         {
86             return StdSchedulerFactory.getDefaultScheduler().getTrigger(jobName, group);
87         }
88         catch(Exception JavaDoc e)
89         {
90             throw new ProviderException(e);
91         }
92     }
93     
94     public static String JavaDoc getTriggerState(String JavaDoc jobName, String JavaDoc group) throws ProviderException
95     {
96         try
97         {
98             int state = StdSchedulerFactory.getDefaultScheduler().getTriggerState(jobName, group);
99             return getTriggerStateName(state);
100         }
101         catch(Exception JavaDoc e)
102         {
103             throw new ProviderException(e);
104         }
105     }
106     
107     public static void pauseJob(String JavaDoc jobName, String JavaDoc group) throws ProviderException
108     {
109         try
110         {
111             StdSchedulerFactory.getDefaultScheduler().pauseJob(jobName, group);
112         }
113         catch(Exception JavaDoc e)
114         {
115             throw new ProviderException(e);
116         }
117     }
118     
119     public static void resumeJob(String JavaDoc jobName, String JavaDoc group) throws ProviderException
120     {
121         try
122         {
123             StdSchedulerFactory.getDefaultScheduler().resumeJob(jobName, group);
124         }
125         catch(Exception JavaDoc e)
126         {
127             throw new ProviderException(e);
128         }
129     }
130     
131     public static void deleteJob(String JavaDoc jobName, String JavaDoc group) throws ProviderException
132     {
133         try
134         {
135             StdSchedulerFactory.getDefaultScheduler().deleteJob(jobName, group);
136         }
137         catch(Exception JavaDoc e)
138         {
139             throw new ProviderException(e);
140         }
141     }
142     
143     public void destroy()
144     {
145         try
146         {
147             Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
148             if (scheduler != null) scheduler.shutdown();
149
150             log.info("Report Scheduler shutdown.");
151         }
152         catch (SchedulerException se)
153         {
154             log.error(se.toString());
155         }
156     }
157     
158     private static String JavaDoc getTriggerStateName(int state)
159     {
160         switch (state)
161         {
162             case Trigger.STATE_BLOCKED:
163                 return "Blocked";
164             
165             case Trigger.STATE_COMPLETE:
166                 return "Complete";
167             
168             case Trigger.STATE_ERROR:
169                 return "ERROR";
170
171             case Trigger.STATE_NORMAL:
172                 return "Normal";
173
174             case Trigger.STATE_PAUSED:
175                 return "Paused";
176
177             default:
178                 return "";
179         }
180     }
181     
182
183
184 }
Popular Tags