package com.github.signed.sandboxe.quartz;
import com.github.signed.sandboxe.quartz.domain.SleepingJob;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.matchers.KeyMatcher;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
public class TestPlan implements Plan {
@Override
public void beforeSchedulerStarts(Scheduler scheduler) {
//noting to do
}
@Override
public void afterSchedulerStarted(Scheduler scheduler) throws SchedulerException {
JobDetail jobDetail = JobBuilder.newJob(SleepingJob.class).withIdentity("greeting job", "polite").storeDurably().build();
scheduler.addJob(jobDetail, false);
JobKey jobKey = jobDetail.getKey();
SimpleScheduleBuilder secondSchedule = simpleSchedule().withRepeatCount(3).withIntervalInSeconds(7);
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("greeting", "Gute Nacht");
Trigger goodNightTrigger = TriggerBuilder.newTrigger().forJob(jobKey).withIdentity("good night trigger", "polite")
.usingJobData(jobDataMap).withSchedule(secondSchedule).build();
scheduler.getListenerManager().addTriggerListener(new SystemOutInteractionLogger(), KeyMatcher.keyEquals(goodNightTrigger.getKey()));
scheduler.scheduleJob(goodNightTrigger);
}
}