1 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 e) 53 { 54 throw new ProviderException(e); 55 } 56 } 57 58 public static String [] getJobNames(String group) throws ProviderException 59 { 60 try 61 { 62 return StdSchedulerFactory.getDefaultScheduler().getJobNames(group); 63 } 64 catch(Exception e) 65 { 66 throw new ProviderException(e); 67 } 68 } 69 70 public static JobDetail getJobDetail(String jobName, String group) throws ProviderException 71 { 72 try 73 { 74 return StdSchedulerFactory.getDefaultScheduler().getJobDetail(jobName, group); 75 } 76 catch(Exception e) 77 { 78 throw new ProviderException(e); 79 } 80 } 81 82 public static Trigger getTrigger(String jobName, String group) throws ProviderException 83 { 84 try 85 { 86 return StdSchedulerFactory.getDefaultScheduler().getTrigger(jobName, group); 87 } 88 catch(Exception e) 89 { 90 throw new ProviderException(e); 91 } 92 } 93 94 public static String getTriggerState(String jobName, String group) throws ProviderException 95 { 96 try 97 { 98 int state = StdSchedulerFactory.getDefaultScheduler().getTriggerState(jobName, group); 99 return getTriggerStateName(state); 100 } 101 catch(Exception e) 102 { 103 throw new ProviderException(e); 104 } 105 } 106 107 public static void pauseJob(String jobName, String group) throws ProviderException 108 { 109 try 110 { 111 StdSchedulerFactory.getDefaultScheduler().pauseJob(jobName, group); 112 } 113 catch(Exception e) 114 { 115 throw new ProviderException(e); 116 } 117 } 118 119 public static void resumeJob(String jobName, String group) throws ProviderException 120 { 121 try 122 { 123 StdSchedulerFactory.getDefaultScheduler().resumeJob(jobName, group); 124 } 125 catch(Exception e) 126 { 127 throw new ProviderException(e); 128 } 129 } 130 131 public static void deleteJob(String jobName, String group) throws ProviderException 132 { 133 try 134 { 135 StdSchedulerFactory.getDefaultScheduler().deleteJob(jobName, group); 136 } 137 catch(Exception 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 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 |