Author: davsclaus
Date: Wed May  1 06:08:43 2013
New Revision: 1477913

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

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java?rev=1477913&r1=1477912&r2=1477913&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusProducer.java
 Wed May  1 06:08:43 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/trunk/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java?rev=1477913&r1=1477912&r2=1477913&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/component/controlbus/ControlBusStartRouteTest.java
 Wed May  1 06:08:43 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