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>