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