diff --git a/li.strolch.agent/src/main/java/li/strolch/job/StrolchJobsHandler.java b/li.strolch.agent/src/main/java/li/strolch/job/StrolchJobsHandler.java index 061115348..00a24f590 100644 --- a/li.strolch.agent/src/main/java/li/strolch/job/StrolchJobsHandler.java +++ b/li.strolch.agent/src/main/java/li/strolch/job/StrolchJobsHandler.java @@ -38,8 +38,7 @@ public class StrolchJobsHandler extends StrolchComponent { super.initialize(configuration); } - public StrolchJob registerAndScheduleJob(Class strolchJobClass) { - + private StrolchJob instantiateStrolchJob(Class strolchJobClass) { StrolchJob strolchJob; try { Constructor constructor = strolchJobClass.getConstructor(StrolchAgent.class); @@ -47,13 +46,22 @@ public class StrolchJobsHandler extends StrolchComponent { } catch (Exception e) { throw new IllegalArgumentException("Failed to instantiate class " + strolchJobClass.getName(), e); } + return strolchJob; + } + public StrolchJob registerAndScheduleJob(Class strolchJobClass) { + return register(instantiateStrolchJob(strolchJobClass)).schedule(); + } + + public StrolchJob register(Class strolchJobClass) { + return register(instantiateStrolchJob(strolchJobClass)); + } + + public StrolchJob register(StrolchJob strolchJob) { if (this.jobs.containsKey(strolchJob.getName())) throw new IllegalArgumentException("Job " + strolchJob.getName() + " is already registered!"); - - strolchJob.schedule(); - this.jobs.put(strolchJob.getName(), strolchJob); + return strolchJob; }