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;
     }


Reply via email to