package org.openstack.atlas.scheduler; import org.openstack.atlas.tools.QuartzSchedulerConfigs; import org.openstack.atlas.logs.hadoop.util.LogDateFormat; import org.quartz.JobExecutionContext; import org.springframework.beans.factory.annotation.Required; import org.springframework.scheduling.quartz.QuartzJobBean; public abstract class BaseMapreduceJob extends QuartzJobBean { protected LogDateFormat format; @Required public void setLogDateFormat(LogDateFormat logDateFormat) { this.format = logDateFormat; } protected String getRuntime(JobExecutionContext context) { return format.format(context.getScheduledFireTime()); } protected QuartzSchedulerConfigs getSchedulerConfigs(JobExecutionContext context) { QuartzSchedulerConfigs schedulerConfigs = QuartzSchedulerConfigs.createSchedulerConfigsFromMap(context.getJobDetail().getJobDataMap()); if (schedulerConfigs.getRunTime() == null) { schedulerConfigs.setRunTime(getRuntime(context)); } return schedulerConfigs; } protected JobScheduler createSchedulerInstance(JobExecutionContext context) { JobScheduler scheduler = new JobScheduler(); scheduler.setSchedulerFactoryBean(context.getScheduler()); return scheduler; } }