Repository: camel Updated Branches: refs/heads/master 6d3d1309c -> a6543970c
CAMEL-7454: Allow quartz2 to not prefix scheduler instance name with camel context name, to allow reusing instance among multiple camel contexts, for people who dare that. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a6543970 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a6543970 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a6543970 Branch: refs/heads/master Commit: a6543970c5fe216d513e7827acd227cc351fdbad Parents: 6d3d130 Author: Claus Ibsen <davscl...@apache.org> Authored: Mon Sep 28 11:23:25 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Mon Sep 28 11:23:25 2015 +0200 ---------------------------------------------------------------------- .../component/quartz2/QuartzComponent.java | 28 +++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a6543970/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzComponent.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzComponent.java index 78d20ed..33dea2a 100644 --- a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzComponent.java +++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzComponent.java @@ -58,6 +58,7 @@ public class QuartzComponent extends UriEndpointComponent implements StartupList private boolean autoStartScheduler = true; private boolean prefixJobNameWithEndpointId; private boolean enableJmx = true; + private boolean prefixInstanceName = true; public QuartzComponent() { super(QuartzEndpoint.class); @@ -139,6 +140,20 @@ public class QuartzComponent extends UriEndpointComponent implements StartupList this.propertiesFile = propertiesFile; } + public boolean isPrefixInstanceName() { + return prefixInstanceName; + } + + /** + * Whether to prefix the Quartz Scheduler instance name with the CamelContext name. + * <p/> + * This is enabled by default, to let each CamelContext use its own Quartz scheduler instance by default. + * You can set this option to <tt>false</tt> to reuse Quartz scheduler instances between multiple CamelContext's. + */ + public void setPrefixInstanceName(boolean prefixInstanceName) { + this.prefixInstanceName = prefixInstanceName; + } + public SchedulerFactory getSchedulerFactory() throws SchedulerException { if (schedulerFactory == null) { schedulerFactory = createSchedulerFactory(); @@ -157,8 +172,10 @@ public class QuartzComponent extends UriEndpointComponent implements StartupList prop.put("org.terracotta.quartz.skipUpdateCheck", "true"); // camel context name will be a suffix to use one scheduler per context - String instName = createInstanceName(prop); - prop.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, instName); + if (isPrefixInstanceName()) { + String instName = createInstanceName(prop); + prop.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, instName); + } // enable jmx unless configured to not do so if (enableJmx && !prop.containsKey("org.quartz.scheduler.jmx.export")) { @@ -187,8 +204,11 @@ public class QuartzComponent extends UriEndpointComponent implements StartupList } // camel context name will be a suffix to use one scheduler per context - String instName = createInstanceName(prop); - prop.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, instName); + if (isPrefixInstanceName()) { + // camel context name will be a suffix to use one scheduler per context + String instName = createInstanceName(prop); + prop.setProperty(StdSchedulerFactory.PROP_SCHED_INSTANCE_NAME, instName); + } // force disabling update checker (will do online check over the internet) prop.put("org.quartz.scheduler.skipUpdateCheck", "true");