Repository: deltaspike
Updated Branches:
  refs/heads/master aa1893f71 -> 07bf170e8


DELTASPIKE-1055 configurable JobRunnableAdapter


Project: http://git-wip-us.apache.org/repos/asf/deltaspike/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltaspike/commit/07bf170e
Tree: http://git-wip-us.apache.org/repos/asf/deltaspike/tree/07bf170e
Diff: http://git-wip-us.apache.org/repos/asf/deltaspike/diff/07bf170e

Branch: refs/heads/master
Commit: 07bf170e8a8a039b47922b6f660ef2b1c8f9d2cd
Parents: aa1893f
Author: gpetracek <[email protected]>
Authored: Wed Dec 30 20:53:52 2015 +0100
Committer: gpetracek <[email protected]>
Committed: Wed Dec 30 20:58:04 2015 +0100

----------------------------------------------------------------------
 .../scheduler/impl/RunnableQuartzScheduler.java       | 14 +++++++++++++-
 .../scheduler/impl/SchedulerBaseConfig.java           |  7 +++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07bf170e/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/RunnableQuartzScheduler.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/RunnableQuartzScheduler.java
 
b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/RunnableQuartzScheduler.java
index 9d11f29..5fa533b 100644
--- 
a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/RunnableQuartzScheduler.java
+++ 
b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/RunnableQuartzScheduler.java
@@ -18,11 +18,23 @@
  */
 package org.apache.deltaspike.scheduler.impl;
 
+import org.apache.deltaspike.core.util.ClassUtils;
 import org.quartz.Job;
 
 //vetoed class (see SchedulerExtension)
 public class RunnableQuartzScheduler extends AbstractQuartzScheduler<Runnable>
 {
+    private Class<? extends Job> runnableAdapter;
+
+    @Override
+    public void start()
+    {
+        String configuredAdapterClassName = 
SchedulerBaseConfig.JobCustomization.RUNNABLE_ADAPTER_CLASS_NAME;
+        this.runnableAdapter = 
ClassUtils.tryToLoadClassForName(configuredAdapterClassName, Job.class);
+
+        super.start();
+    }
+
     @Override
     protected String getJobName(Class<?> jobClass)
     {
@@ -32,6 +44,6 @@ public class RunnableQuartzScheduler extends 
AbstractQuartzScheduler<Runnable>
     @Override
     protected Class<? extends Job> createFinalJobClass(Class<? extends 
Runnable> jobClass)
     {
-        return JobRunnableAdapter.class;
+        return runnableAdapter;
     }
 }

http://git-wip-us.apache.org/repos/asf/deltaspike/blob/07bf170e/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/SchedulerBaseConfig.java
----------------------------------------------------------------------
diff --git 
a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/SchedulerBaseConfig.java
 
b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/SchedulerBaseConfig.java
index 4a2d16f..225891e 100644
--- 
a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/SchedulerBaseConfig.java
+++ 
b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/SchedulerBaseConfig.java
@@ -27,6 +27,7 @@ public interface SchedulerBaseConfig extends 
DeltaSpikeBaseConfig
     interface JobCustomization
     {
         String JOB_CLASS_NAME_KEY = "deltaspike.scheduler.job-class";
+        String RUNNABLE_ADAPTER_CLASS_NAME_KEY = 
"deltaspike.scheduler.runnable-adapter-class";
 
         //don't type it to class to keep quartz optional
         String DEFAULT_JOB_FACTORY_CLASS_NAME = 
ConfigResolver.resolve("deltaspike.scheduler.DefaultJobFactory")
@@ -39,6 +40,12 @@ public interface SchedulerBaseConfig extends 
DeltaSpikeBaseConfig
                 .withCurrentProjectStage(true)
                 .withDefault("org.quartz.Job")
                 .getValue();
+
+        //don't type it to class to keep quartz optional (JobRunnableAdapter 
imports classes from quartz)
+        String RUNNABLE_ADAPTER_CLASS_NAME = 
ConfigResolver.resolve(RUNNABLE_ADAPTER_CLASS_NAME_KEY)
+                .withCurrentProjectStage(true)
+                
.withDefault("org.apache.deltaspike.scheduler.impl.JobRunnableAdapter")
+                .getValue();
     }
 
     String SCHEDULER_CONFIG_FILE = 
ConfigResolver.resolve("deltaspike.scheduler.quartz_config-file")

Reply via email to