From c5bc1a0b25b3b06f2275587d0801211d07d35560 Mon Sep 17 00:00:00 2001 From: "fabio.formosa" Date: Sat, 4 May 2019 00:20:35 +0200 Subject: [PATCH] Put job classname in application context --- .../quartzmanager/configuration/SchedulerConfig.java | 10 +++++++--- .../src/main/resources/application.yml | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java index d1bd77f..762aaf8 100644 --- a/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java +++ b/quartz-manager-backend/src/main/java/it/fabioformosa/quartzmanager/configuration/SchedulerConfig.java @@ -20,7 +20,6 @@ import org.springframework.scheduling.quartz.JobDetailFactoryBean; import org.springframework.scheduling.quartz.SchedulerFactoryBean; import org.springframework.scheduling.quartz.SimpleTriggerFactoryBean; -import it.fabioformosa.quartzmanager.jobs.myjobs.SampleJob; import it.fabioformosa.quartzmanager.scheduler.AutowiringSpringBeanJobFactory; import it.fabioformosa.quartzmanager.scheduler.TriggerMonitor; import it.fabioformosa.quartzmanager.scheduler.TriggerMonitorImpl; @@ -48,6 +47,9 @@ public class SchedulerConfig { return factoryBean; } + @Value("${quartz-manager.jobClass}") + private String jobClassname; + @Bean(name = "triggerMonitor") public TriggerMonitor createTriggerMonitor(@Qualifier("jobTrigger") Trigger trigger) { TriggerMonitor triggerMonitor = new TriggerMonitorImpl(); @@ -56,8 +58,10 @@ public class SchedulerConfig { } @Bean - public JobDetailFactoryBean jobDetail() { - return createJobDetail(SampleJob.class); + @SuppressWarnings("unchecked") + public JobDetailFactoryBean jobDetail() throws ClassNotFoundException { + Class JobClass = (Class) Class.forName(jobClassname); + return createJobDetail(JobClass); } @Bean diff --git a/quartz-manager-backend/src/main/resources/application.yml b/quartz-manager-backend/src/main/resources/application.yml index a3b8d49..9e45895 100644 --- a/quartz-manager-backend/src/main/resources/application.yml +++ b/quartz-manager-backend/src/main/resources/application.yml @@ -31,6 +31,7 @@ logging: it.fabioformosa: INFO quartz-manager: + jobClass: it.fabioformosa.quartzmanager.jobs.myjobs.SampleJob account: user: admin pwd: admin