Author: davsclaus
Date: Fri Jun 29 11:41:41 2012
New Revision: 1355326

URL: http://svn.apache.org/viewvc?rev=1355326&view=rev
Log:
CAMEL-5401: Fixed route policy ref not working with all callbacks being invoked.

Added:
    
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyRefCallbackTest.java
      - copied, changed from r1355270, 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
    
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.java
    
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml
      - copied, changed from r1355266, 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRefDataFormatTest.xml
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java?rev=1355326&r1=1355325&r2=1355326&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/impl/RouteService.java 
Fri Jun 29 11:41:41 2012
@@ -170,8 +170,8 @@ public class RouteService extends ChildS
             ServiceHelper.startService(route);
 
             // invoke callbacks on route policy
-            if (routeDefinition.getRoutePolicies() != null) {
-                for (RoutePolicy routePolicy : 
routeDefinition.getRoutePolicies()) {
+            if (route.getRouteContext().getRoutePolicyList() != null) {
+                for (RoutePolicy routePolicy : 
route.getRouteContext().getRoutePolicyList()) {
                     routePolicy.onStart(route);
                 }
             }
@@ -219,8 +219,8 @@ public class RouteService extends ChildS
             }
 
             // invoke callbacks on route policy
-            if (routeDefinition.getRoutePolicies() != null) {
-                for (RoutePolicy routePolicy : 
routeDefinition.getRoutePolicies()) {
+            if (route.getRouteContext().getRoutePolicyList() != null) {
+                for (RoutePolicy routePolicy : 
route.getRouteContext().getRoutePolicyList()) {
                     routePolicy.onStop(route);
                 }
             }
@@ -261,8 +261,8 @@ public class RouteService extends ChildS
             // see more details in the warmUp method
             ServiceHelper.stopAndShutdownServices(route.getEndpoint());
             // invoke callbacks on route policy
-            if (routeDefinition.getRoutePolicies() != null) {
-                for (RoutePolicy routePolicy : 
routeDefinition.getRoutePolicies()) {
+            if (route.getRouteContext().getRoutePolicyList() != null) {
+                for (RoutePolicy routePolicy : 
route.getRouteContext().getRoutePolicyList()) {
                     routePolicy.onRemove(route);
                 }
             }
@@ -292,8 +292,8 @@ public class RouteService extends ChildS
         // suspend and resume logic is provided by DefaultCamelContext which 
leverages ShutdownStrategy
         // to safely suspend and resume
         for (Route route : routes) {
-            if (routeDefinition.getRoutePolicies() != null) {
-                for (RoutePolicy routePolicy : 
routeDefinition.getRoutePolicies()) {
+            if (route.getRouteContext().getRoutePolicyList() != null) {
+                for (RoutePolicy routePolicy : 
route.getRouteContext().getRoutePolicyList()) {
                     routePolicy.onSuspend(route);
                 }
             }
@@ -305,8 +305,8 @@ public class RouteService extends ChildS
         // suspend and resume logic is provided by DefaultCamelContext which 
leverages ShutdownStrategy
         // to safely suspend and resume
         for (Route route : routes) {
-            if (routeDefinition.getRoutePolicies() != null) {
-                for (RoutePolicy routePolicy : 
routeDefinition.getRoutePolicies()) {
+            if (route.getRouteContext().getRoutePolicyList() != null) {
+                for (RoutePolicy routePolicy : 
route.getRouteContext().getRoutePolicyList()) {
                     routePolicy.onResume(route);
                 }
             }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java?rev=1355326&r1=1355325&r2=1355326&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
 Fri Jun 29 11:41:41 2012
@@ -26,7 +26,7 @@ import org.apache.camel.builder.RouteBui
  */
 public class RoutePolicyCallbackTest extends ContextTestSupport {
 
-    private MyRoutePolicy policy = new MyRoutePolicy();
+    protected MyRoutePolicy policy = new MyRoutePolicy();
 
     public static class MyRoutePolicy extends RoutePolicySupport {
 
@@ -92,7 +92,13 @@ public class RoutePolicyCallbackTest ext
         }
     }
 
+    protected MyRoutePolicy getAndInitMyRoutePolicy() {
+        return policy;
+    }
+
     public void testCallback() throws Exception {
+        policy = getAndInitMyRoutePolicy();
+
         assertTrue(policy.doStart);
         assertTrue(policy.init);
 

Copied: 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyRefCallbackTest.java
 (from r1355270, 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyRefCallbackTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyRefCallbackTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java&r1=1355270&r2=1355326&rev=1355326&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyRefCallbackTest.java
 Fri Jun 29 11:41:41 2012
@@ -16,120 +16,23 @@
  */
 package org.apache.camel.impl;
 
-import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
-import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 
 /**
  *
  */
-public class RoutePolicyCallbackTest extends ContextTestSupport {
+public class RoutePolicyRefCallbackTest extends RoutePolicyCallbackTest {
 
-    private MyRoutePolicy policy = new MyRoutePolicy();
-
-    public static class MyRoutePolicy extends RoutePolicySupport {
-
-        boolean begin;
-        boolean done;
-        boolean init;
-        boolean remove;
-        boolean resume;
-        boolean start;
-        boolean stop;
-        boolean suspend;
-        boolean doStart;
-        boolean doStop;
-
-        @Override
-        public void onExchangeBegin(Route route, Exchange exchange) {
-            begin = true;
-        }
-
-        @Override
-        public void onExchangeDone(Route route, Exchange exchange) {
-            done = true;
-        }
-
-        @Override
-        public void onInit(Route route) {
-            init = true;
-        }
-
-        @Override
-        public void onRemove(Route route) {
-            remove = true;
-        }
-
-        @Override
-        public void onResume(Route route) {
-            resume = true;
-        }
-
-        @Override
-        public void onStart(Route route) {
-            start = true;
-        }
-
-        @Override
-        public void onStop(Route route) {
-            stop = true;
-        }
-
-        @Override
-        public void onSuspend(Route route) {
-            suspend = true;
-        }
-
-        @Override
-        protected void doStop() throws Exception {
-            doStop = true;
-        }
-
-        @Override
-        protected void doStart() throws Exception {
-            doStart = true;
-        }
+    @Override
+    protected JndiRegistry createRegistry() throws Exception {
+        JndiRegistry jndi = super.createRegistry();
+        jndi.bind("myPolicy", policy);
+        return jndi;
     }
 
-    public void testCallback() throws Exception {
-        assertTrue(policy.doStart);
-        assertTrue(policy.init);
-
-        assertFalse(policy.begin);
-        assertFalse(policy.done);
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-        template.sendBody("direct:start", "Hello World");
-        assertMockEndpointsSatisfied();
-        assertTrue(policy.begin);
-        assertTrue(policy.done);
-
-        assertFalse(policy.suspend);
-        context.suspendRoute("foo");
-        assertTrue(policy.suspend);
-
-        assertFalse(policy.resume);
-        context.resumeRoute("foo");
-        assertTrue(policy.resume);
-
-        assertFalse(policy.stop);
-        context.stopRoute("foo");
-        assertTrue(policy.stop);
-
-        // previously started, so force flag to be false
-        policy.start = false;
-        assertFalse(policy.start);
-        context.startRoute("foo");
-        assertTrue(policy.start);
-
-        assertFalse(policy.remove);
-        context.stopRoute("foo");
-        context.removeRoute("foo");
-        assertTrue(policy.remove);
-
-        // stop camel which should stop policy as well
-        context.stop();
-        assertTrue(policy.doStop);
+    @Override
+    protected MyRoutePolicy getAndInitMyRoutePolicy() {
+        return context.getRegistry().lookup("myPolicy", MyRoutePolicy.class);
     }
 
     @Override
@@ -137,7 +40,7 @@ public class RoutePolicyCallbackTest ext
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").routeId("foo").routePolicy(policy)
+                from("direct:start").routeId("foo").routePolicyRef("myPolicy")
                     .to("mock:result");
             }
         };

Added: 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.java?rev=1355326&view=auto
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.java
 (added)
+++ 
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.java
 Fri Jun 29 11:41:41 2012
@@ -0,0 +1,33 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.impl;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.impl.RoutePolicyRefCallbackTest;
+
+import static 
org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
+
+/**
+ *
+ */
+public class SpringRoutePolicyRefCallbackTest extends 
RoutePolicyRefCallbackTest {
+
+    protected CamelContext createCamelContext() throws Exception {
+        return createSpringCamelContext(this, 
"org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml");
+    }
+
+}

Copied: 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml
 (from r1355266, 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRefDataFormatTest.xml)
URL: 
http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml?p2=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml&p1=camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRefDataFormatTest.xml&r1=1355266&r2=1355326&rev=1355326&view=diff
==============================================================================
--- 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRefDataFormatTest.xml
 (original)
+++ 
camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/impl/SpringRoutePolicyRefCallbackTest.xml
 Fri Jun 29 11:41:41 2012
@@ -22,29 +22,13 @@
        http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd
     ">
 
-  <!-- START SNIPPET: e1 -->
-  <!-- this is our custom data format implementation -->
-  <bean id="reverse" 
class="org.apache.camel.impl.RefDataFormatTest$MyReverseDataFormat"/>
+  <bean id="myPolicy" 
class="org.apache.camel.impl.RoutePolicyCallbackTest$MyRoutePolicy"/>
 
   <camelContext xmlns="http://camel.apache.org/schema/spring";>
-    <route>
-      <from uri="direct:a"/>
-      <marshal>
-        <!-- refer to my custom data format -->
-        <custom ref="reverse"/>
-      </marshal>
-      <to uri="mock:a"/>
-    </route>
-
-    <route>
-      <from uri="direct:b"/>
-      <unmarshal>
-        <!-- refer to my custom data format -->
-        <custom ref="reverse"/>
-      </unmarshal>
-      <to uri="mock:b"/>
+    <route id="foo" routePolicyRef="myPolicy">
+      <from uri="direct:start"/>
+      <to uri="mock:result"/>
     </route>
   </camelContext>
-  <!-- END SNIPPET: e1 -->
 
 </beans>


Reply via email to