dropwizard-jobs/dropwizard-jobs

View on GitHub
dropwizard-jobs-core/src/main/java/io/dropwizard/jobs/scheduler/JobScheduler.java

Summary

Maintainability
A
0 mins
Test Coverage
package io.dropwizard.jobs.scheduler;

import io.dropwizard.jobs.Job;
import io.dropwizard.jobs.JobMediator;
import org.apache.commons.lang3.StringUtils;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class JobScheduler {
    final Logger log;

    final JobMediator mediator;

    public JobScheduler(JobMediator mediator) {
        this.mediator = mediator;
        this.log = LoggerFactory.getLogger(getClass());
    }

    public abstract void schedule() throws SchedulerException;

    protected JobDetail build(Job job) {
        Class<? extends Job> jobClass = job.getClass();
        String jobClassName = jobClass.getName();
        String jobGroupName = job.getGroupName();
        return JobBuilder
                .newJob(jobClass)
                .withIdentity(jobClassName, jobGroupName)
                .build();
    }


    protected JobKey createJobKey(final String jobName, final Job job) {
        String key = StringUtils.isNotBlank(jobName) ? jobName : job.getClass().getCanonicalName();
        return JobKey.jobKey(key, job.getGroupName());
    }

}