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());