Author: davsclaus Date: Fri Jun 25 05:07:04 2010 New Revision: 957796 URL: http://svn.apache.org/viewvc?rev=957796&view=rev Log: CAMEL-2844: quartz should keep jobs on shutdown. And only remove if the job if its volatile.
Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java?rev=957796&r1=957795&r2=957796&view=diff ============================================================================== --- camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java (original) +++ camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java Fri Jun 25 05:07:04 2010 @@ -163,13 +163,20 @@ public class QuartzComponent extends Def } - public void removeJob(Trigger trigger) throws SchedulerException { + public void removeJob(JobDetail job, Trigger trigger) throws SchedulerException { JOBS.decrementAndGet(); - if (LOG.isDebugEnabled()) { - LOG.debug("Removing job using trigger: " + trigger.getGroup() + "/" + trigger.getName()); + // only un schedule volatile jobs + if (job.isVolatile()) { + if (LOG.isDebugEnabled()) { + LOG.debug("Removing job using trigger: " + trigger.getGroup() + "/" + trigger.getName()); + } + getScheduler().unscheduleJob(trigger.getName(), trigger.getGroup()); + } else { + if (LOG.isDebugEnabled()) { + LOG.debug("Keeping volatile job using trigger: " + trigger.getGroup() + "/" + trigger.getName()); + } } - getScheduler().unscheduleJob(trigger.getName(), trigger.getGroup()); } // Properties Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java?rev=957796&r1=957795&r2=957796&view=diff ============================================================================== --- camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java (original) +++ camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java Fri Jun 25 05:07:04 2010 @@ -77,8 +77,8 @@ public class QuartzEndpoint extends Defa getComponent().addJob(detail, trigger); } - public void removeTrigger(final Trigger trigger) throws SchedulerException { - getComponent().removeJob(trigger); + public void removeTrigger(final Trigger trigger, final JobDetail detail) throws SchedulerException { + getComponent().removeJob(detail, trigger); } /** @@ -196,7 +196,7 @@ public class QuartzEndpoint extends Defa ObjectHelper.notNull(trigger, "trigger"); getLoadBalancer().removeProcessor(consumer.getProcessor()); if (getLoadBalancer().getProcessors().isEmpty() && started) { - removeTrigger(getTrigger()); + removeTrigger(getTrigger(), getJobDetail()); started = false; } }