Author: davsclaus
Date: Sun Aug  1 09:18:31 2010
New Revision: 981184

URL: http://svn.apache.org/viewvc?rev=981184&view=rev
Log:
CAMEL-3016: Adding suspend/resume route on CamelContext. ServiceSupport is 
prepared for suspend/resume. Fixed childservices not being duplicated in 
RouteService causing them to be started/stopped multiple times. Suspended is 
now a ServiceStatus.

Added:
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteSuspendAndResumeTest.java
      - copied, changed from r981170, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java
Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=981184&r1=981183&r2=981184&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
 Sun Aug  1 09:18:31 2010
@@ -130,6 +130,21 @@ public class ManagedRoute extends Manage
         context.stopRoute(getRouteId());
     }
 
+    @ManagedOperation(description = "Suspend Route")
+    public void suspend() throws Exception {
+        context.suspendRoute(getRouteId());
+    }
+
+    @ManagedOperation(description = "Graceful Suspend Route using timeout in 
seconds")
+    public void suspend(long timeout) throws Exception {
+        context.suspendRoute(getRouteId(), timeout, TimeUnit.SECONDS);
+    }
+
+    @ManagedOperation(description = "Resume Route")
+    public void resume() throws Exception {
+        context.resumeRoute(getRouteId());
+    }
+
     @ManagedOperation(description = "Graceful Shutdown Route")
     public void shutdown() throws Exception {
         context.shutdownRoute(getRouteId());

Copied: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteSuspendAndResumeTest.java
 (from r981170, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteSuspendAndResumeTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteSuspendAndResumeTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java&r1=981170&r2=981184&rev=981184&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteStopAndStartTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRouteSuspendAndResumeTest.java
 Sun Aug  1 09:18:31 2010
@@ -29,7 +29,7 @@ import org.apache.camel.component.mock.M
 /**
  * @version $Revision$
  */
-public class ManagedRouteStopAndStartTest extends ContextTestSupport {
+public class ManagedRouteSuspendAndResumeTest extends ContextTestSupport {
 
     @Override
     protected boolean useJmx() {
@@ -42,7 +42,7 @@ public class ManagedRouteStopAndStartTes
         super.setUp();
     }
 
-    public void testStopAndStartRoute() throws Exception {
+    public void testSuspendAndResume() throws Exception {
         MBeanServer mbeanServer = 
context.getManagementStrategy().getManagementAgent().getMBeanServer();
         ObjectName on = getRouteObjectName(mbeanServer);
 
@@ -58,10 +58,10 @@ public class ManagedRouteStopAndStartTes
         assertEquals("Should be started", ServiceStatus.Started.name(), state);
 
         // stop
-        mbeanServer.invoke(on, "stop", null, null);
+        mbeanServer.invoke(on, "suspend", null, null);
 
         state = (String) mbeanServer.getAttribute(on, "State");
-        assertEquals("Should be stopped", ServiceStatus.Stopped.name(), state);
+        assertEquals("Should be suspended", ServiceStatus.Suspended.name(), 
state);
 
         mock.reset();
         mock.expectedBodiesReceived("Bye World");
@@ -78,7 +78,7 @@ public class ManagedRouteStopAndStartTes
         mock.expectedBodiesReceived("Bye World");
 
         // start
-        mbeanServer.invoke(on, "start", null, null);
+        mbeanServer.invoke(on, "resume", null, null);
 
         state = (String) mbeanServer.getAttribute(on, "State");
         assertEquals("Should be started", ServiceStatus.Started.name(), state);


Reply via email to