Just some clean-up to see more clearly - this should not change

anything. PLEASE CAREFULLY CODE REVIEW NEVERTHELESS.
This commit is contained in:
Michael Vorburger
2014-05-11 01:16:45 +02:00
parent e6ac1213f7
commit d33c16e594
@@ -95,10 +95,9 @@ public class JobRegisterServiceImpl implements JobRegisterService {
if (scheduler == null || !scheduler.checkExists(jobKey)) { if (scheduler == null || !scheduler.checkExists(jobKey)) {
final JobDetail jobDetail = createJobDetail(scheduledJobDetail); final JobDetail jobDetail = createJobDetail(scheduledJobDetail);
final String tempSchedulerName = "temp" + scheduledJobDetail.getId(); final String tempSchedulerName = "temp" + scheduledJobDetail.getId();
final List<Class<? extends JobListener>> listenerClasses = new ArrayList<Class<? extends JobListener>>(2); @SuppressWarnings("unchecked")
listenerClasses.add(SchedulerJobListener.class); final Scheduler tempScheduler = createScheduler(tempSchedulerName, 1, SchedulerJobListener.class,
listenerClasses.add(SchedulerStopListener.class); SchedulerStopListener.class);
final Scheduler tempScheduler = createScheduler(tempSchedulerName, 1, listenerClasses);
tempScheduler.addJob(jobDetail, true); tempScheduler.addJob(jobDetail, true);
jobDataMap.put(SchedulerServiceConstants.SCHEDULER_NAME, tempSchedulerName); jobDataMap.put(SchedulerServiceConstants.SCHEDULER_NAME, tempSchedulerName);
this.schedulers.put(tempSchedulerName, tempScheduler); this.schedulers.put(tempSchedulerName, tempScheduler);
@@ -220,6 +219,7 @@ public class JobRegisterServiceImpl implements JobRegisterService {
scheduledJobDetails.updateCurrentlyRunningStatus(false); scheduledJobDetails.updateCurrentlyRunningStatus(false);
} }
@SuppressWarnings("unchecked")
private Scheduler getScheduler(final ScheduledJobDetail scheduledJobDetail) throws Exception { private Scheduler getScheduler(final ScheduledJobDetail scheduledJobDetail) throws Exception {
final String schedulername = getSchedulerName(scheduledJobDetail); final String schedulername = getSchedulerName(scheduledJobDetail);
Scheduler scheduler = this.schedulers.get(schedulername); Scheduler scheduler = this.schedulers.get(schedulername);
@@ -228,7 +228,7 @@ public class JobRegisterServiceImpl implements JobRegisterService {
if (scheduledJobDetail.getSchedulerGroup() > 0) { if (scheduledJobDetail.getSchedulerGroup() > 0) {
noOfThreads = SchedulerServiceConstants.GROUP_THREAD_COUNT; noOfThreads = SchedulerServiceConstants.GROUP_THREAD_COUNT;
} }
scheduler = createScheduler(schedulername, noOfThreads, null); scheduler = createScheduler(schedulername, noOfThreads, SchedulerJobListener.class);
this.schedulers.put(schedulername, scheduler); this.schedulers.put(schedulername, scheduler);
} }
return scheduler; return scheduler;
@@ -254,15 +254,11 @@ public class JobRegisterServiceImpl implements JobRegisterService {
return sb.toString(); return sb.toString();
} }
private Scheduler createScheduler(final String name, final int noOfThreads, List<Class<? extends JobListener>> listenerClasses) private Scheduler createScheduler(final String name, final int noOfThreads, Class<? extends JobListener>... listenerClasses)
throws Exception { throws Exception {
final SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); final SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setSchedulerName(name); schedulerFactoryBean.setSchedulerName(name);
if (listenerClasses == null) { schedulerFactoryBean.setGlobalJobListeners(getGlobalListeners(listenerClasses));
listenerClasses = new ArrayList<Class<? extends JobListener>>(1);
listenerClasses.add(SchedulerJobListener.class);
}
schedulerFactoryBean.setGlobalJobListeners(getGlobalListener(listenerClasses));
final TriggerListener globalTriggerListener = this.applicationContext.getBean("schedulerTriggerListener", TriggerListener.class); final TriggerListener globalTriggerListener = this.applicationContext.getBean("schedulerTriggerListener", TriggerListener.class);
final TriggerListener[] globalTriggerListeners = { globalTriggerListener }; final TriggerListener[] globalTriggerListeners = { globalTriggerListener };
schedulerFactoryBean.setGlobalTriggerListeners(globalTriggerListeners); schedulerFactoryBean.setGlobalTriggerListeners(globalTriggerListeners);
@@ -274,8 +270,8 @@ public class JobRegisterServiceImpl implements JobRegisterService {
return schedulerFactoryBean.getScheduler(); return schedulerFactoryBean.getScheduler();
} }
private JobListener[] getGlobalListener(final List<Class<? extends JobListener>> listenerClasses) throws ClassNotFoundException { private JobListener[] getGlobalListeners(final Class<? extends JobListener>[] listenerClasses) throws ClassNotFoundException {
final List<JobListener> listeners = new ArrayList<JobListener>(listenerClasses.size()); final List<JobListener> listeners = new ArrayList<JobListener>(listenerClasses.length);
for (final Class<?> listenerClass : listenerClasses) { for (final Class<?> listenerClass : listenerClasses) {
final JobListener listener = (JobListener) getBeanObject(listenerClass); final JobListener listener = (JobListener) getBeanObject(listenerClass);
listeners.add(listener); listeners.add(listener);
@@ -298,11 +294,6 @@ public class JobRegisterServiceImpl implements JobRegisterService {
return jobDetailFactoryBean.getObject(); return jobDetailFactoryBean.getObject();
} }
/**
* @param jobDetails
* @return
* @throws ClassNotFoundException
*/
private Object getBeanObject(final Class<?> classType) throws ClassNotFoundException { private Object getBeanObject(final Class<?> classType) throws ClassNotFoundException {
final List<Class<?>> typesList = new ArrayList<Class<?>>(); final List<Class<?>> typesList = new ArrayList<Class<?>>();
final Class<?>[] interfaceType = classType.getInterfaces(); final Class<?>[] interfaceType = classType.getInterfaces();
@@ -332,10 +323,6 @@ public class JobRegisterServiceImpl implements JobRegisterService {
return targetObject; return targetObject;
} }
/**
* @param scheduledJobDetails
* @return
*/
private Trigger createTrigger(final ScheduledJobDetail scheduledJobDetails, final JobDetail jobDetail) { private Trigger createTrigger(final ScheduledJobDetail scheduledJobDetails, final JobDetail jobDetail) {
final MifosPlatformTenant tenant = ThreadLocalContextUtil.getTenant(); final MifosPlatformTenant tenant = ThreadLocalContextUtil.getTenant();
final CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean(); final CronTriggerFactoryBean cronTriggerFactoryBean = new CronTriggerFactoryBean();