Author: davsclaus
Date: Wed May  1 06:09:48 2013
New Revision: 1477914

URL: http://svn.apache.org/r1477914
Log:
CAMEL-6330: Control Bus - Add suspend and resume actions

Modified:
    camel/branches/camel-2.11.x/   (props changed)
    
camel/branches/camel-2.11.x/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
    
camel/branches/camel-2.11.x/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java

Propchange: camel/branches/camel-2.11.x/
------------------------------------------------------------------------------
  Merged /camel/trunk:r1477913

Propchange: camel/branches/camel-2.11.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed May  1 06:09:48 2013
@@ -1 +1 @@
-/camel/trunk:1-1468763,1469704,1469819,1470420,1470426-1470427,1470429,1470508,1471293,1471330,1471407-1471408,1471543,1475657,1475677,1475742,1475786,1476113,1476428,1476442,1476448,1476502,1476545,1477851
+/camel/trunk:1-1468763,1469704,1469819,1470420,1470426-1470427,1470429,1470508,1471293,1471330,1471407-1471408,1471543,1475657,1475677,1475742,1475786,1476113,1476428,1476442,1476448,1476502,1476545,1477851,1477913

Modified: 
camel/branches/camel-2.11.x/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.11.x/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java?rev=1477914&r1=1477913&r2=1477914&view=diff
==============================================================================
--- 
camel/branches/camel-2.11.x/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
 (original)
+++ 
camel/branches/camel-2.11.x/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
 Wed May  1 06:09:48 2013
@@ -147,6 +147,10 @@ public class ControlBusProducer extends 
                     getEndpoint().getCamelContext().startRoute(id);
                 } else if ("stop".equals(action)) {
                     getEndpoint().getCamelContext().stopRoute(id);
+                } else if ("suspend".equals(action)) {
+                    getEndpoint().getCamelContext().suspendRoute(id);
+                } else if ("resume".equals(action)) {
+                    getEndpoint().getCamelContext().resumeRoute(id);
                 } else if ("status".equals(action)) {
                     ServiceStatus status = 
getEndpoint().getCamelContext().getRouteStatus(id);
                     if (status != null) {

Modified: 
camel/branches/camel-2.11.x/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
URL: 
http://svn.apache.org/viewvc/camel/branches/camel-2.11.x/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java?rev=1477914&r1=1477913&r2=1477914&view=diff
==============================================================================
--- 
camel/branches/camel-2.11.x/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
 (original)
+++ 
camel/branches/camel-2.11.x/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
 Wed May  1 06:09:48 2013
@@ -42,6 +42,29 @@ public class ControlBusStartRouteTest ex
         assertEquals("Stopped", context.getRouteStatus("foo").name());
     }
 
+    public void testControlBusSuspendResume() throws Exception {
+        assertEquals("Stopped", context.getRouteStatus("foo").name());
+
+        // store a pending message
+        getMockEndpoint("mock:foo").expectedBodiesReceived("Hello World");
+        template.sendBody("seda:foo", "Hello World");
+
+        // start the route using control bus
+        template.sendBody("controlbus:route?routeId=foo&action=start", null);
+
+        assertMockEndpointsSatisfied();
+
+        // now suspend the route, using a header
+        template.sendBody("controlbus:route?routeId=foo&action=suspend", null);
+
+        assertEquals("Suspended", context.getRouteStatus("foo").name());
+
+        // now resume the route, using a header
+        template.sendBody("controlbus:route?routeId=foo&action=resume", null);
+
+        assertEquals("Started", context.getRouteStatus("foo").name());
+    }
+
     public void testControlBusStatus() throws Exception {
         assertEquals("Stopped", context.getRouteStatus("foo").name());
 


Reply via email to