KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > javacoding > jspider > core > task > SchedulerFactory


1 /**
2  * $Id: SchedulerFactory.java,v 1.7 2003/04/02 20:55:17 vanrogu Exp $
3  */

4 package net.javacoding.jspider.core.task;
5
6 import net.javacoding.jspider.core.SpiderContext;
7 import net.javacoding.jspider.core.logging.LogFactory;
8 import net.javacoding.jspider.core.logging.Log;
9 import net.javacoding.jspider.core.task.impl.DefaultSchedulerProvider;
10 import net.javacoding.jspider.core.task.impl.SchedulerMonitorThread;
11 import net.javacoding.jspider.core.util.config.*;
12
13
14 public class SchedulerFactory {
15
16     public static final int DEFAULT_MONITORING_INTERVAL = 1000;
17
18     public Scheduler createScheduler(SpiderContext context) {
19
20         PropertySet props = ConfigurationFactory.getConfiguration().getJSpiderConfiguration();
21         PropertySet schedulerProps = new MappedPropertySet ( ConfigConstants.CONFIG_SCHEDULER, props);
22         Class JavaDoc providerClass = schedulerProps.getClass(ConfigConstants.CONFIG_SCHEDULER_PROVIDER, DefaultSchedulerProvider.class);
23         Log log = LogFactory.getLog(SchedulerFactory.class);
24         log.info("TaskScheduler provider class is '" + providerClass + "'");
25
26         try {
27             SchedulerProvider provider = (SchedulerProvider) providerClass.newInstance();
28             Scheduler scheduler = provider.createScheduler();
29             PropertySet monitoringProps = new MappedPropertySet(ConfigConstants.CONFIG_SCHEDULER_MONITORING, schedulerProps);
30             if ( monitoringProps.getBoolean(ConfigConstants.CONFIG_SCHEDULER_MONITORING_ENABLED, false ) ) {
31               int interval = monitoringProps.getInteger(ConfigConstants.CONFIG_SCHEDULER_MONITORING_INTERVAL, DEFAULT_MONITORING_INTERVAL);
32               new SchedulerMonitorThread ( scheduler, context.getEventDispatcher(), interval );
33             }
34             return scheduler;
35         } catch (InstantiationException JavaDoc e) {
36             log.error("InstantiationException on Scheduler", e);
37             return null;
38         } catch (IllegalAccessException JavaDoc e) {
39             log.error("IllegalAccessException on Scheduler", e);
40             return null;
41         }
42     }
43 }
44
Popular Tags