Author: davsclaus Date: Fri Jul 8 14:10:03 2011 New Revision: 1144320 URL: http://svn.apache.org/viewvc?rev=1144320&view=rev Log: CAMEL-4197: scheduled route policy should not start quartz scheduler itself, but rely on QuartzComponent doing that. Polished logging.
Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java?rev=1144320&r1=1144319&r2=1144320&view=diff ============================================================================== --- camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java (original) +++ camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/CronScheduledRoutePolicy.java Fri Jul 8 14:10:03 2011 @@ -65,7 +65,6 @@ public class CronScheduledRoutePolicy ex if (getRouteStartTime() != null) { scheduleRoute(Action.START); } - if (getRouteStopTime() != null) { scheduleRoute(Action.STOP); } Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java?rev=1144320&r1=1144319&r2=1144320&view=diff ============================================================================== --- camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java (original) +++ camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java Fri Jul 8 14:10:03 2011 @@ -38,7 +38,8 @@ public abstract class ScheduledRoutePoli protected abstract Trigger createTrigger(Action action, Route route) throws Exception; protected void onJobExecute(Action action, Route route) throws Exception { - LOG.debug("Scheduled Event notification received. Performing requested operation {} for route {}", action, route.getId()); + LOG.debug("Scheduled Event notification received. Performing action: {} on route: {}", action, route.getId()); + ServiceStatus routeStatus = route.getRouteContext().getCamelContext().getRouteStatus(route.getId()); if (action == Action.START) { if (routeStatus == ServiceStatus.Stopped) { @@ -74,11 +75,11 @@ public abstract class ScheduledRoutePoli loadCallbackDataIntoSchedulerContext(jobDetail, action, route); getScheduler().scheduleJob(jobDetail, trigger); - - if (LOG.isDebugEnabled()) { - LOG.debug("Scheduled Trigger: {} is operational", trigger.getFullName()); + + if (LOG.isInfoEnabled()) { + LOG.info("Scheduled trigger: {} for action: {} on route: ", new Object[]{trigger.getFullName(), action, route.getId()}); } - } + } public void pauseRouteTrigger(Action action) throws SchedulerException { String triggerName = retrieveTriggerName(action); @@ -86,7 +87,7 @@ public abstract class ScheduledRoutePoli getScheduler().pauseTrigger(triggerName, triggerGroup); - LOG.debug("Scheduled Trigger: {}. {} is paused", triggerGroup, triggerName); + LOG.debug("Scheduled trigger: {}.{} is paused", triggerGroup, triggerName); } public void resumeRouteTrigger(Action action) throws SchedulerException { @@ -95,7 +96,7 @@ public abstract class ScheduledRoutePoli getScheduler().resumeTrigger(triggerName, triggerGroup); - LOG.debug("Scheduled Trigger: {}. {} has been resumed", triggerGroup, triggerName); + LOG.debug("Scheduled trigger: {}.{} is resumed", triggerGroup, triggerName); } public void deleteRouteJob(Action action) throws SchedulerException { @@ -106,7 +107,7 @@ public abstract class ScheduledRoutePoli getScheduler().deleteJob(jobDetailName, jobDetailGroup); } - LOG.debug("Scheduled Job: {}. {} has been deleted", jobDetailGroup, jobDetailName); + LOG.debug("Scheduled Job: {}.{} is deleted", jobDetailGroup, jobDetailName); } protected JobDetail createJobDetail(Action action, Route route) throws Exception { Modified: camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java?rev=1144320&r1=1144319&r2=1144320&view=diff ============================================================================== --- camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java (original) +++ camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/SimpleScheduledRoutePolicy.java Fri Jul 8 14:10:03 2011 @@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit; import org.apache.camel.Route; import org.apache.camel.component.quartz.QuartzComponent; +import org.apache.camel.util.ObjectHelper; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.slf4j.Logger; @@ -41,49 +42,53 @@ public class SimpleScheduledRoutePolicy private int routeResumeRepeatCount; private long routeResumeRepeatInterval; - public void onInit(Route route) { - try { - QuartzComponent quartz = route.getRouteContext().getCamelContext().getComponent("quartz", QuartzComponent.class); - setScheduler(quartz.getScheduler()); + public void onInit(Route route) { + try { + doOnInit(route); + } catch (Exception e) { + throw ObjectHelper.wrapRuntimeCamelException(e); + } + } + + protected void doOnInit(Route route) throws Exception { + QuartzComponent quartz = route.getRouteContext().getCamelContext().getComponent("quartz", QuartzComponent.class); + setScheduler(quartz.getScheduler()); - if (getRouteStopGracePeriod() == 0) { - setRouteStopGracePeriod(10000); - } - - if (getTimeUnit() == null) { - setTimeUnit(TimeUnit.MILLISECONDS); + // Important: do not start scheduler as QuartzComponent does that automatic + // when CamelContext has been fully initialized and started + + if (getRouteStopGracePeriod() == 0) { + setRouteStopGracePeriod(10000); + } + + if (getTimeUnit() == null) { + setTimeUnit(TimeUnit.MILLISECONDS); + } + + // validate time options has been configured + if ((getRouteStartDate() == null) && (getRouteStopDate() == null) && (getRouteSuspendDate() == null) && (getRouteResumeDate() == null)) { + throw new IllegalArgumentException("Scheduled Route Policy for route {} has no stop/stop/suspend/resume times specified"); + } + + if (scheduledRouteDetails == null) { + scheduledRouteDetails = new ScheduledRouteDetails(); + scheduledRouteDetails.setRoute(route); + + if (getRouteStartDate() != null) { + scheduleRoute(Action.START); } - - // validate time options has been configured - if ((getRouteStartDate() == null) && (getRouteStopDate() == null) && (getRouteSuspendDate() == null) && (getRouteResumeDate() == null)) { - throw new IllegalArgumentException("Scheduled Route Policy for route {} has no stop/stop/suspend/resume times specified"); + if (getRouteStopDate() != null) { + scheduleRoute(Action.STOP); } - if (scheduledRouteDetails == null) { - scheduledRouteDetails = new ScheduledRouteDetails(); - scheduledRouteDetails.setRoute(route); - - if (getRouteStartDate() != null) { - scheduleRoute(Action.START); - } - - if (getRouteStopDate() != null) { - scheduleRoute(Action.STOP); - } - - if (getRouteSuspendDate() != null) { - scheduleRoute(Action.SUSPEND); - } - if (getRouteResumeDate() != null) { - scheduleRoute(Action.RESUME); - } + if (getRouteSuspendDate() != null) { + scheduleRoute(Action.SUSPEND); } - - getScheduler().start(); - } catch (Exception e) { - handleException(e); - } - } + if (getRouteResumeDate() != null) { + scheduleRoute(Action.RESUME); + } + } + } @Override protected void doStop() throws Exception { @@ -101,9 +106,6 @@ public class SimpleScheduledRoutePolicy } } - /* (non-Javadoc) - * @see org.apache.camel.routepolicy.quartz.ScheduledRoutePolicy#createTrigger(org.apache.camel.routepolicy.quartz.ScheduledRoutePolicyConstants.Action) - */ @Override protected Trigger createTrigger(Action action, Route route) throws Exception { SimpleTrigger trigger = null; @@ -125,8 +127,6 @@ public class SimpleScheduledRoutePolicy return trigger; } - - public Date getRouteStartDate() { return routeStartDate; }