Author: ningjiang
Date: Mon Apr 20 09:57:03 2009
New Revision: 766633

URL: http://svn.apache.org/viewvc?rev=766633&view=rev
Log:
CAMEL-1547, CAMEL-1546 resolved some issues of restarting the CamelContext

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Delayer.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.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=766633&r1=766632&r2=766633&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 09:57:03 2009
@@ -84,7 +84,7 @@
     private static final transient Log LOG = 
LogFactory.getLog(DefaultCamelContext.class);
     private static final String NAME_PREFIX = "camel-";
     private static int nameSuffix;
-
+    private boolean routeDefinitionInitiated;
     private String name;  
     private final Map<String, Endpoint> endpoints = new HashMap<String, 
Endpoint>();
     private final Map<String, Component> components = new HashMap<String, 
Component>();
@@ -808,7 +808,7 @@
 
         if (getStreamCache()) {
             // only add a new stream cache if not already configured
-            if (StreamCaching.getStreamCache(this) == null) {
+            if (StreamCaching.getStreamCaching(this) == null) {
                 LOG.debug("StreamCaching is enabled");
                 addInterceptStrategy(new StreamCaching());
             }
@@ -855,7 +855,11 @@
                 startServices(component);
             }
         }
-        startRouteDefinitions(routeDefinitions);
+         // To avoid initiating the routeDefinitions after stopping the camel 
context
+        if (!routeDefinitionInitiated) {            
+            startRouteDefinitions(routeDefinitions);
+            routeDefinitionInitiated = true;
+        }        
     }
 
     protected void startRouteDefinitions(Collection<RouteDefinition> list) 
throws Exception {
@@ -887,7 +891,7 @@
                 stopServices(component);
             }
         }
-        routeServices.clear();
+        
         servicesToClose.clear();
         LOG.info("Apache Camel " + getVersion() + " (CamelContext:" + 
getName() + ") stopped");
     }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Delayer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Delayer.java?rev=766633&r1=766632&r2=766633&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Delayer.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/Delayer.java
 Mon Apr 20 09:57:03 2009
@@ -44,11 +44,11 @@
      * @param context the camel context the delayer is connected to
      * @return the delayer or null if none can be found
      */
-    public static DelayInterceptor getDelayer(CamelContext context) {
+    public static Delayer getDelayer(CamelContext context) {
         List<InterceptStrategy> list = context.getInterceptStrategies();
         for (InterceptStrategy interceptStrategy : list) {
-            if (interceptStrategy instanceof DelayInterceptor) {
-                return (DelayInterceptor)interceptStrategy;
+            if (interceptStrategy instanceof Delayer) {
+                return (Delayer)interceptStrategy;
             }
         }
         return null;

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java?rev=766633&r1=766632&r2=766633&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCaching.java
 Mon Apr 20 09:57:03 2009
@@ -34,17 +34,17 @@
     }
     
     /**
-     * A helper method to return the StreamCacheInterceptor instance
+     * A helper method to return the StreamCaching instance
      * for a given {...@link org.apache.camel.CamelContext} if one is enabled
      *
      * @param context the camel context the stream cache is connected to
      * @return the stream cache or null if none can be found
      */
-    public static StreamCachingInterceptor getStreamCache(CamelContext 
context) {
+    public static StreamCaching getStreamCaching(CamelContext context) {
         List<InterceptStrategy> list = context.getInterceptStrategies();
         for (InterceptStrategy interceptStrategy : list) {
-            if (interceptStrategy instanceof StreamCachingInterceptor) {
-                return (StreamCachingInterceptor)interceptStrategy;
+            if (interceptStrategy instanceof StreamCaching) {
+                return (StreamCaching)interceptStrategy;
             }
         }
         return null;

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=766633&r1=766632&r2=766633&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 09:57:03 2009
@@ -91,13 +91,18 @@
             }            
         });
         ctx.start();
-        assertEquals("Should have one RouteService", 
ctx.getRouteServices().size(), 1);
-        ctx.stop();
-        assertEquals("The RouteService should be removed ", 
ctx.getRouteServices().size(), 0);
+        assertEquals("Should have one RouteService", 
ctx.getRouteServices().size(), 1);        
+        String routesString = ctx.getRoutes().toString();
+        System.out.println("The routes is " + ctx.getRoutes());
+        ctx.stop();        
+        assertEquals("The RouteService should be removed ", 
ctx.getRouteServices().size(), 1);
         ctx.start();
         assertEquals("Should have one RouteService", 
ctx.getRouteServices().size(), 1);
+        System.out.println("The routes is " + ctx.getRoutes());
+        assertEquals("The Routes should be same", routesString, 
ctx.getRoutes().toString());
         ctx.stop();
-        assertEquals("The RouteService should be removed ", 
ctx.getRouteServices().size(), 0);
+        assertEquals("The RouteService should be removed ", 
ctx.getRouteServices().size(), 1);        
+        
     }
 
 }


Reply via email to