SchedulerTriggerListener really should just be normally injected, like

everything else; it's an anti pattern to directly use
applicationContext, unless there is a specific good reason for it.
This commit is contained in:
Michael Vorburger
2014-05-11 02:27:23 +02:00
parent 226439bef1
commit f194867c15
@@ -54,6 +54,7 @@ public class JobRegisterServiceImpl implements JobRegisterService {
private TenantDetailsService tenantDetailsService;
private SchedulerJobListener schedulerJobListener;
private SchedulerStopListener schedulerStopListener;
private SchedulerTriggerListener globalSchedulerTriggerListener;
private final HashMap<String, Scheduler> schedulers = new HashMap<String, Scheduler>(4);
@@ -82,6 +83,11 @@ public class JobRegisterServiceImpl implements JobRegisterService {
this.schedulerStopListener = schedulerStopListener;
}
@Autowired
public void setGlobalTriggerListener(SchedulerTriggerListener globalTriggerListener) {
this.globalSchedulerTriggerListener = globalTriggerListener;
}
@PostConstruct
public void loadAllJobs() {
final List<MifosPlatformTenant> allTenants = this.tenantDetailsService.findAllTenants();
@@ -277,8 +283,7 @@ public class JobRegisterServiceImpl implements JobRegisterService {
final SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setSchedulerName(name);
schedulerFactoryBean.setGlobalJobListeners(jobListeners);
final TriggerListener globalTriggerListener = this.applicationContext.getBean("schedulerTriggerListener", TriggerListener.class);
final TriggerListener[] globalTriggerListeners = { globalTriggerListener };
final TriggerListener[] globalTriggerListeners = { globalSchedulerTriggerListener };
schedulerFactoryBean.setGlobalTriggerListeners(globalTriggerListeners);
final Properties quartzProperties = new Properties();
quartzProperties.put(SchedulerFactoryBean.PROP_THREAD_COUNT, Integer.toString(noOfThreads));