You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/04/20 05:09:31 UTC
svn commit: r766564 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/impl/DefaultCamelContext.java
test/java/org/apache/camel/impl/DefaultCamelContextTest.java
Author: ningjiang
Date: Mon Apr 20 03:09:31 2009
New Revision: 766564
URL: http://svn.apache.org/viewvc?rev=766564&view=rev
Log:
CAMEL-1544 clearing the RouteServices when the CamelContext is stopped.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=766564&r1=766563&r2=766564&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Mon Apr 20 03:09:31 2009
@@ -85,7 +85,7 @@
private static final String NAME_PREFIX = "camel-";
private static int nameSuffix;
- private String name;
+ private String name;
private final Map<String, Endpoint> endpoints = new HashMap<String, Endpoint>();
private final Map<String, Component> components = new HashMap<String, Component>();
private List<Route> routes;
@@ -881,13 +881,14 @@
protected synchronized void doStop() throws Exception {
LOG.info("Apache Camel " + getVersion() + " (CamelContext:" + getName() + ") is stopping");
stopServices(routeServices.values());
-
stopServices(servicesToClose);
if (components != null) {
for (Component component : components.values()) {
stopServices(component);
}
}
+ routeServices.clear();
+ servicesToClose.clear();
LOG.info("Apache Camel " + getVersion() + " (CamelContext:" + getName() + ") stopped");
}
@@ -1072,5 +1073,9 @@
}
}
}
+
+ protected Map<String, RouteService> getRouteServices() {
+ return routeServices;
+ }
}
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextTest.java?rev=766564&r1=766563&r2=766564&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextTest.java Mon Apr 20 03:09:31 2009
@@ -23,6 +23,7 @@
import org.apache.camel.Endpoint;
import org.apache.camel.NoSuchEndpointException;
import org.apache.camel.ResolveEndpointFailedException;
+import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.bean.BeanComponent;
import org.apache.camel.util.CamelContextHelper;
@@ -80,5 +81,23 @@
// expected
}
}
+
+ public void testRestartCamelContext() throws Exception {
+ DefaultCamelContext ctx = new DefaultCamelContext();
+ ctx.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:endpointA").to("mock:endpointB");
+ }
+ });
+ ctx.start();
+ assertEquals("Should have one RouteService", ctx.getRouteServices().size(), 1);
+ ctx.stop();
+ assertEquals("The RouteService should be removed ", ctx.getRouteServices().size(), 0);
+ ctx.start();
+ assertEquals("Should have one RouteService", ctx.getRouteServices().size(), 1);
+ ctx.stop();
+ assertEquals("The RouteService should be removed ", ctx.getRouteServices().size(), 0);
+ }
}