@Provides
@Inject
Scheduler scheduler(JmxTransConfiguration configuration, GuiceJobFactory jobFactory) throws SchedulerException, IOException {
StdSchedulerFactory serverSchedFact = new StdSchedulerFactory();
Closer closer = Closer.create();
try {
InputStream stream;
if (configuration.getQuartPropertiesFile() == null) {
stream = closer.register(JmxTransModule.class.getResourceAsStream("/quartz.server.properties"));
} else {
stream = closer.register(new FileInputStream(configuration.getQuartPropertiesFile()));
}
serverSchedFact.initialize(stream);
} catch (Throwable t) {
throw closer.rethrow(t);
} finally {
closer.close();
}
Scheduler scheduler = serverSchedFact.getScheduler();
scheduler.setJobFactory(jobFactory);
return scheduler;
}