KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jresearch > gossip > scheduler > Scheduler


1 /*
2  * $Id: Scheduler.java,v 1.3 2005/06/07 12:32:28 bel70 Exp $
3  *
4  * ***** BEGIN LICENSE BLOCK *****
5  * The contents of this file are subject to the Mozilla Public License
6  * Version 1.1 (the "License"); you may not use this file except in
7  * compliance with the License. You may obtain a copy of the License
8  * at http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS"
11  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
12  * the License for the specific language governing rights and
13  * limitations under the License.
14  *
15  * The Original Code is JGossip forum code.
16  *
17  * The Initial Developer of the Original Code is the JResearch, Org.
18  * Portions created by the Initial Developer are Copyright (C) 2004
19  * the Initial Developer. All Rights Reserved.
20  *
21  * Contributor(s):
22  * Alexey Pavlov <alexnet@users.sourceforge.net>
23  *
24  * ***** END LICENSE BLOCK ***** */

25 package org.jresearch.gossip.scheduler;
26
27 import java.io.IOException JavaDoc;
28 import java.io.InputStream JavaDoc;
29 import java.text.ParseException JavaDoc;
30 import java.util.Properties JavaDoc;
31
32 import org.jresearch.gossip.scheduler.listeners.JobListener;
33 import org.jresearch.gossip.scheduler.listeners.TriggerListener;
34 import org.quartz.CronTrigger;
35 import org.quartz.JobDetail;
36 import org.quartz.SchedulerContext;
37 import org.quartz.SchedulerException;
38 import org.quartz.impl.StdSchedulerFactory;
39
40 /**
41  * Scheduler
42  *
43  * @author <a HREF="alexnet@sourceforge.net">A. Pavlov</a>
44  * @version $version$ $Date: 2005/06/07 12:32:28 $
45  */

46 public class Scheduler {
47
48     private org.quartz.Scheduler m_scheduler = null;
49
50     /**
51      *
52      */

53     public Scheduler() throws SchedulerException, IOException JavaDoc {
54         super();
55         try {
56             StdSchedulerFactory factory = new StdSchedulerFactory();
57             Properties JavaDoc config = new Properties JavaDoc();
58             InputStream JavaDoc configSource = Thread
59                     .currentThread()
60                     .getContextClassLoader()
61                     .getResourceAsStream(
62                             "org/jresearch/gossip/resources/scheduler.properties");
63             config.load(configSource);
64             factory.initialize(config);
65             m_scheduler = factory.getScheduler();
66             m_scheduler.addGlobalJobListener(new JobListener());
67             m_scheduler.addGlobalTriggerListener(new TriggerListener());
68             JobDetail jobDetail = new JobDetail(getConfValue(config,
69                     "task.name"), getConfValue(config, "task.group"), Class
70                     .forName(getConfValue(config, "task.class")));
71             jobDetail.setDescription(getConfValue(config, "task.description"));
72             CronTrigger trigger = new CronTrigger(getConfValue(config,
73                     "trigger.name"), getConfValue(config, "trigger.group"));
74             trigger.setCronExpression(getConfValue(config,
75                     "trigger.cronExpression"));
76             m_scheduler.scheduleJob(jobDetail, trigger);
77         } catch (ClassNotFoundException JavaDoc e) {
78             throw new SchedulerException(
79                     "Failed to find job implementation class:", e);
80         } catch (ParseException JavaDoc e) {
81             throw new SchedulerException(
82                     "Failed to parse cron trigger expression:", e);
83         }
84     }
85
86     /**
87      * @see org.quartz.Scheduler#getSchedulerName()
88      */

89     public String JavaDoc getSchedulerName() throws SchedulerException {
90         return m_scheduler.getSchedulerName();
91     }
92
93     /**
94      * @see org.quartz.Scheduler#getSchedulerInstanceId()
95      */

96     public String JavaDoc getSchedulerInstanceId() throws SchedulerException {
97         return m_scheduler.getSchedulerInstanceId();
98     }
99
100     /**
101      * @see org.quartz.Scheduler#getContext()
102      */

103     public SchedulerContext getContext() throws SchedulerException {
104         return m_scheduler.getContext();
105     }
106
107     /**
108      * @see org.quartz.Scheduler#start()
109      */

110     public void start() throws SchedulerException {
111         m_scheduler.start();
112     }
113
114     /**
115      * @see org.quartz.Scheduler#pause()
116      */

117     public void pause() throws SchedulerException {
118         m_scheduler.pause();
119     }
120
121     /**
122      * @see org.quartz.Scheduler#isPaused()
123      */

124     public boolean isPaused() throws SchedulerException {
125         return m_scheduler.isPaused();
126     }
127
128     /**
129      * @see org.quartz.Scheduler#shutdown()
130      */

131     public void shutdown() throws SchedulerException {
132         m_scheduler.shutdown();
133     }
134
135     /**
136      * @see org.quartz.Scheduler#shutdown(boolean)
137      */

138     public void shutdown(boolean waitForJobsToComplete)
139             throws SchedulerException {
140         m_scheduler.shutdown(waitForJobsToComplete);
141     }
142
143     /**
144      * @see org.quartz.Scheduler#isShutdown()
145      */

146     public boolean isShutdown() throws SchedulerException {
147         return m_scheduler.isShutdown();
148     }
149
150     private final String JavaDoc getConfValue(Properties JavaDoc conf, String JavaDoc param) {
151         StringBuffer JavaDoc key = new StringBuffer JavaDoc().append(PREFIX).append(param);
152         return conf.getProperty(key.toString());
153     }
154
155     private static final String JavaDoc PREFIX = "org.jgossip.scheduler.tasks.1.";
156 }
157
Popular Tags