You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/06/04 21:39:54 UTC
svn commit: r1131477 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/processor/
camel-core/src/test/java/org/apache/camel/model/
components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/
Author: davsclaus
Date: Sat Jun 4 19:39:54 2011
New Revision: 1131477
URL: http://svn.apache.org/viewvc?rev=1131477&view=rev
Log:
CAMEL-4053: Fixed parent/child relationship on model, before custom InterceptStrategy is wrapped with the model as parameter.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultChannel.java
camel/trunk/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java
camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultChannel.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultChannel.java?rev=1131477&r1=1131476&r2=1131477&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultChannel.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/DefaultChannel.java Sat Jun 4 19:39:54 2011
@@ -169,6 +169,16 @@ public class DefaultChannel extends Serv
// so if a child is set then use it, if not then its the original output used
ProcessorDefinition<?> targetOutputDef = childDefinition != null ? childDefinition : outputDefinition;
+ // fix parent/child relationship. This will be the case of the routes has been
+ // defined using XML DSL or end user may have manually assembled a route from the model.
+ // Background note: parent/child relationship is assembled on-the-fly when using Java DSL (fluent builders)
+ // where as when using XML DSL (JAXB) then it fixed after, but if people are using custom interceptors
+ // then we need to fix the parent/child relationship beforehand, and thus we can do it here
+ // ideally we need the design time route -> runtime route to be a 2-phase pass (scheduled work for Camel 3.0)
+ if (childDefinition != null && outputDefinition != childDefinition) {
+ childDefinition.setParent(outputDefinition);
+ }
+
// first wrap the output with the managed strategy if any
InterceptStrategy managed = routeContext.getManagedInterceptStrategy();
if (managed != null) {
Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java?rev=1131477&r1=1131476&r2=1131477&view=diff
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java (original)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/model/ModelSanityCheckerTest.java Sat Jun 4 19:39:54 2011
@@ -90,6 +90,11 @@ public class ModelSanityCheckerTest exte
for (Method method : clazz.getDeclaredMethods()) {
LOG.debug("Class {} has method {}", clazz.getName(), method.getName());
+ // special for OptionalIdentifiedDefinition as it has setter, so we should skip it
+ if (clazz.getCanonicalName().equals(OptionalIdentifiedDefinition.class.getCanonicalName())) {
+ continue;
+ }
+
// does the method have a jaxb annotation?
boolean attribute = method.getAnnotation(XmlAttribute.class) != null;
boolean element = method.getAnnotation(XmlElement.class) != null;
Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.java?rev=1131477&r1=1131476&r2=1131477&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.java Sat Jun 4 19:39:54 2011
@@ -21,26 +21,8 @@ import org.apache.camel.processor.interc
import static org.apache.camel.spring.processor.SpringTestHelper.createSpringCamelContext;
-/**
- *
- */
public class SpringParentChildInterceptStrategyTest extends ParentChildInterceptStrategyTest {
- public void testParentChild() throws Exception {
- getMockEndpoint("mock:done").expectedMessageCount(1);
- getMockEndpoint("mock:a").expectedMessageCount(1);
- getMockEndpoint("mock:b").expectedMessageCount(1);
- getMockEndpoint("mock:c").expectedMessageCount(1);
- getMockEndpoint("mock:d").expectedMessageCount(0);
- getMockEndpoint("mock:e").expectedMessageCount(0);
-
- template.sendBody("direct:start", "Hello Camel");
-
- assertMockEndpointsSatisfied();
-
- assertEquals(7, LIST.size());
- }
-
protected CamelContext createCamelContext() throws Exception {
return createSpringCamelContext(this, "org/apache/camel/spring/processor/intercept/SpringParentChildInterceptStrategyTest.xml");
}