1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.miloss.fgsms.auxsrv;
23
24 import javax.servlet.ServletContextEvent;
25 import javax.servlet.ServletContextListener;
26
27 import org.miloss.fgsms.common.Utility;
28 import org.apache.log4j.Level;
29 import org.miloss.fgsms.common.Logger;
30 import org.quartz.JobDetail;
31 import org.quartz.Scheduler;
32 import org.quartz.SchedulerException;
33 import org.quartz.Trigger;
34 import org.quartz.TriggerUtils;
35 import org.quartz.impl.StdSchedulerFactory;
36
37
38
39
40
41 @Deprecated
42 public class JobStarter implements ServletContextListener {
43
44 private Scheduler sc;
45 Logger log = Logger.getLogger("fgsms.Aux");
46
47 public void contextInitialized(ServletContextEvent sce) {
48 try {
49 sc = new StdSchedulerFactory().getScheduler();
50 String jmxurl = sce.getServletContext().getInitParameter("fgsms.qpid.jmx.connectionurl");
51 String intervalInSeconds = sce.getServletContext().getInitParameter("fgsms.qpid.jmx.interval");
52 String jmxusername = sce.getServletContext().getInitParameter("fgsms.qpid.jmx.username");
53 String jmxpassword = sce.getServletContext().getInitParameter("fgsms.qpid.jmx.encryptedpassword");
54 try {
55
56 sc.deleteJob("Uddi Publisher", "fgsms Aux Services ");
57 sc.deleteJob("Status Bueller", "fgsms Aux Services ");
58 sc.deleteJob("Data Pruner", "fgsms Aux Services ");
59 sc.deleteJob("NTSLA", "fgsms Aux Services ");
60 sc.deleteJob("Statistic Aggregator", "fgsms Aux Services ");
61 sc.deleteJob("JMX QPID", "fgsms Aux Services ");
62 } catch (Exception ex) {
63 }
64 JobDetail job = new JobDetail("Federation Publisher", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.FederationScheduler.class);
65 Trigger triger = TriggerUtils.makeMinutelyTrigger(5);
66 triger.setName("Federation Publisher Trigger");
67 sc.scheduleJob(job, triger);
68 log.log(Level.INFO, "Federation Publisher job added");
69
70 job = new JobDetail("Data Pruner", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.DataPrunerScheduler.class);
71 triger = TriggerUtils.makeMinutelyTrigger(5);
72 triger.setName("Data Pruner Trigger");
73 sc.scheduleJob(job, triger);
74 log.log(Level.INFO, "Data Pruner job added");
75
76 job = new JobDetail("Status Bueller", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.BuellerScheduler.class);
77 triger = TriggerUtils.makeSecondlyTrigger(10);
78 triger.setName("Status BuellerTrigger");
79 sc.scheduleJob(job, triger);
80 log.log(Level.INFO, "Status Buellerjob added");
81
82 job = new JobDetail("NTSLA", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.NTSLAProcessorScheduler.class);
83 triger = TriggerUtils.makeMinutelyTrigger(5);
84 triger.setName("NTSLA Trigger");
85 sc.scheduleJob(job, triger);
86 log.log(Level.INFO, "NTSLA job added");
87
88 job = new JobDetail("Statistic Aggregator", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.StatisticsAggregatorScheduler.class);
89 triger = TriggerUtils.makeMinutelyTrigger(5);
90 triger.setName("Stat Agg Trigger");
91 sc.scheduleJob(job, triger);
92 log.log(Level.INFO, "Stats Agg job added");
93
94 if (!Utility.stringIsNullOrEmpty(jmxurl)) {
95 job = new JobDetail("JMX QPID", "fgsms Aux Services ", org.miloss.fgsms.auxsrv.QpidJMXScheduler.class);
96 job.getJobDataMap().put("connecturl", jmxurl);
97 job.getJobDataMap().put("username", jmxusername);
98 job.getJobDataMap().put("encryptedpassword", jmxpassword);
99 try{
100 triger = TriggerUtils.makeSecondlyTrigger(Integer.parseInt(intervalInSeconds));
101 }
102 catch (Exception ex)
103 {
104 log.log(Level.WARN, "the configuration parameter for fgsms.qpid.jmx.interval is " + intervalInSeconds + " and could not be parsed as an integer. Defaulting to 30 second pings");
105 triger = TriggerUtils.makeSecondlyTrigger(30);
106 }
107 triger.setName("JMX QPID Trigger");
108
109 sc.scheduleJob(job, triger);
110 log.log(Level.INFO, "JMX QPID added");
111 }
112
113 if (sc.isShutdown()) {
114 log.log(Level.WARN, "starting quartz");
115 }
116 sc.start();
117 } catch (Exception ex) {
118 log.log(Level.WARN, "error scheduling UDDI Publisher", ex);
119 }
120
121 }
122
123 public void contextDestroyed(ServletContextEvent sce) {
124 try {
125 sc = new StdSchedulerFactory().getScheduler();
126 sc.unscheduleJob("Statistic Aggregator", "fgsms Aux Services ");
127 sc.deleteJob("Statistic Aggregator", "fgsms Aux Services ");
128 sc.unscheduleJob("NTSLA", "fgsms Aux Services ");
129 sc.deleteJob("NTSLA", "fgsms Aux Services ");
130 sc.unscheduleJob("Status Bueller", "fgsms Aux Services ");
131 sc.deleteJob("Status Bueller", "fgsms Aux Services ");
132
133 sc.unscheduleJob("JMX QPID", "fgsms Aux Services ");
134 sc.deleteJob("JMX QPID", "fgsms Aux Services ");
135
136
137 sc.unscheduleJob("Data Pruner", "fgsms Aux Services ");
138 sc.deleteJob("Data Pruner", "fgsms Aux Services ");
139 sc.unscheduleJob("Uddi Publisher", "fgsms Aux Services ");
140 sc.deleteJob("Uddi Publisher", "fgsms Aux Services ");
141 log.log(Level.WARN, "Undeploying fgsms Aux Services Succeeded. Jobs removed from Quartz scheduler.");
142 } catch (SchedulerException ex) {
143 log.log(Level.WARN, "error unscheduling UDDI Publisher", ex);
144 }
145 }
146 }