You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2011/12/17 14:03:40 UTC

svn commit: r1215482 - in /camel/trunk/camel-core/src: main/java/org/apache/camel/impl/RouteService.java test/java/org/apache/camel/impl/RouteRemoveTest.java

Author: ningjiang
Date: Sat Dec 17 13:03:39 2011
New Revision: 1215482

URL: http://svn.apache.org/viewvc?rev=1215482&view=rev
Log:
CAMEL-4790 Using the CamelContext.stopRoute(routeId) should not remove the route from context

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
    camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RouteRemoveTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java?rev=1215482&r1=1215481&r2=1215482&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java Sat Dec 17 13:03:39 2011
@@ -214,8 +214,9 @@ public class RouteService extends ChildS
             // fire event
             EventHelper.notifyRouteStopped(camelContext, route);
         }
-
-        camelContext.removeRouteCollection(routes);
+        if (isRemovingRoutes()) {
+            camelContext.removeRouteCollection(routes);
+        }
         // need to warm up again
         warmUpDone.set(false);
     }
@@ -238,7 +239,9 @@ public class RouteService extends ChildS
         for (LifecycleStrategy strategy : camelContext.getLifecycleStrategies()) {
             strategy.onRoutesRemove(routes);
         }
-
+        
+        camelContext.removeRouteCollection(routes);
+        
         // clear inputs on shutdown
         inputs.clear();
         warmUpDone.set(false);

Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RouteRemoveTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RouteRemoveTest.java?rev=1215482&r1=1215481&r2=1215482&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RouteRemoveTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RouteRemoveTest.java Sat Dec 17 13:03:39 2011
@@ -17,6 +17,7 @@
 package org.apache.camel.impl;
 
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 
@@ -25,6 +26,17 @@ import org.apache.camel.component.mock.M
  */
 public class RouteRemoveTest extends ContextTestSupport {
 
+    public void testStopRouteOnContext() throws Exception {
+        assertEquals(ServiceStatus.Started, ((DefaultRoute) context.getRoute("foo")).getStatus());
+        assertEquals(ServiceStatus.Started, context.getRouteStatus("foo"));
+        
+        context.stopRoute("foo");
+        
+        assertEquals(ServiceStatus.Stopped, ((DefaultRoute) context.getRoute("foo")).getStatus());
+        assertEquals(ServiceStatus.Stopped, context.getRouteStatus("foo"));
+    }
+    
+
     public void testRemove() throws Exception {
         MockEndpoint mock = getMockEndpoint("mock:result");
         mock.expectedBodiesReceived("A");