package ch.elexis.core.scheduler; import java.util.Properties; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.SchedulerListener; import org.quartz.impl.StdSchedulerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.elexis.core.scheduler.internal.Activator; import ch.elexis.core.scheduler.internal.ElexisSchedulerExtensionPoint; public class ElexisScheduler { private static ElexisScheduler instance; private static Logger log = LoggerFactory.getLogger(ElexisScheduler.class); private Scheduler scheduler; private SchedulerListener schedulerListener; private Properties properties; private ElexisScheduler(){ try { properties = Activator.getQuartzProperties(); scheduler = new StdSchedulerFactory(properties).getScheduler(); // schedulerListener = new ElexisSchedulerListener(); } catch (SchedulerException e) { log.error("Error initializing class", e); } }; public static ElexisScheduler getInstance(){ if (instance == null) { instance = new ElexisScheduler(); } return instance; } public void startScheduler(){ try { // scheduler.getListenerManager().addSchedulerListener(schedulerListener); ElexisSchedulerExtensionPoint.initialize(scheduler); scheduler.start(); } catch (SchedulerException e) { log.error("Error starting scheduler", e); } } public void shutdownScheduler(){ try { scheduler.shutdown(); // scheduler.getListenerManager().removeSchedulerListener(schedulerListener); } catch (SchedulerException e) { log.error("Error on scheduler shutdown", e); } } }