Author: davsclaus Date: Sat Dec 3 08:25:16 2011 New Revision: 1209852 URL: http://svn.apache.org/viewvc?rev=1209852&view=rev Log: CAMEL-4733: Fixed issue with Java DSL creating expression with expression clause, not ensuring the model is update with the expression definition being used. This would cause the JAXB model of the route to not contain the actual expression in use.
Added: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java - copied unchanged from r1209845, camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java - copied, changed from r1209845, camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java Modified: camel/branches/camel-2.8.x/ (props changed) camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/MethodCallExpression.java camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/XPathExpression.java Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Sat Dec 3 08:25:16 2011 @@ -1 +1 @@ -/camel/trunk:1202148,1202167,1202204-1202206,1202215,1202223,1202659,1202685,1203879,1203978,1204338,1205124,1205372,1205412,1205429,1205431,1205713,1206116,1206414,1207743,1207784,1208301,1208930,1208964-1208965,1209006-1209007,1209382,1209401,1209477 +/camel/trunk:1202148,1202167,1202204-1202206,1202215,1202223,1202659,1202685,1203879,1203978,1204338,1205124,1205372,1205412,1205429,1205431,1205713,1206116,1206414,1207743,1207784,1208301,1208930,1208964-1208965,1209006-1209007,1209382,1209401,1209477,1209845 Propchange: camel/branches/camel-2.8.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java Sat Dec 3 08:25:16 2011 @@ -26,6 +26,9 @@ import org.apache.camel.Expression; import org.apache.camel.LoggingLevel; import org.apache.camel.NoSuchEndpointException; import org.apache.camel.builder.xml.XPathBuilder; +import org.apache.camel.model.language.HeaderExpression; +import org.apache.camel.model.language.MethodCallExpression; +import org.apache.camel.model.language.PropertyExpression; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,15 +54,17 @@ public abstract class BuilderSupport { * Returns a value builder for the given header */ public ValueBuilder header(String name) { - return Builder.header(name); + HeaderExpression expression = new HeaderExpression(name); + return new ValueBuilder(expression); } /** * Returns a value builder for the given property */ public ValueBuilder property(String name) { - return Builder.property(name); - } + PropertyExpression expression = new PropertyExpression(name); + return new ValueBuilder(expression); + } /** * Returns a predicate and value builder for the inbound body on an exchange @@ -174,7 +179,13 @@ public abstract class BuilderSupport { * @return the builder */ public ValueBuilder bean(Object beanOrBeanRef, String method) { - return Builder.bean(beanOrBeanRef, method); + MethodCallExpression expression; + if (beanOrBeanRef instanceof String) { + expression = new MethodCallExpression((String) beanOrBeanRef, method); + } else { + expression = new MethodCallExpression((Object) beanOrBeanRef, method); + } + return new ValueBuilder(expression); } /** @@ -185,7 +196,8 @@ public abstract class BuilderSupport { * @return the builder */ public ValueBuilder bean(Class<?> beanType) { - return Builder.bean(beanType, null); + MethodCallExpression expression = new MethodCallExpression(beanType); + return new ValueBuilder(expression); } /** @@ -197,7 +209,8 @@ public abstract class BuilderSupport { * @return the builder */ public ValueBuilder bean(Class<?> beanType, String method) { - return Builder.bean(beanType, method); + MethodCallExpression expression = new MethodCallExpression(beanType, method); + return new ValueBuilder(expression); } /** Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/SimpleBuilder.java Sat Dec 3 08:25:16 2011 @@ -51,6 +51,10 @@ public class SimpleBuilder implements Pr return answer; } + public String getText() { + return text; + } + public Class<?> getResultType() { return resultType; } Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/ExpressionNode.java Sat Dec 3 08:25:16 2011 @@ -52,13 +52,13 @@ public class ExpressionNode extends Proc public ExpressionNode(Expression expression) { if (expression != null) { - setExpression(new ExpressionDefinition(expression)); + setExpression(ExpressionNodeHelper.toExpressionDefinition(expression)); } } public ExpressionNode(Predicate predicate) { if (predicate != null) { - setExpression(new ExpressionDefinition(predicate)); + setExpression(ExpressionNodeHelper.toExpressionDefinition(predicate)); } } Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/MethodCallExpression.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/MethodCallExpression.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/MethodCallExpression.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/MethodCallExpression.java Sat Dec 3 08:25:16 2011 @@ -75,7 +75,7 @@ public class MethodCallExpression extend } public MethodCallExpression(Object instance, String method) { - super(instance.getClass().getName()); + super(ObjectHelper.className(instance)); this.instance = instance; this.method = method; } @@ -85,7 +85,7 @@ public class MethodCallExpression extend } public MethodCallExpression(Class<?> type, String method) { - super(type.toString()); + super(type.getName()); this.beanType = type; this.method = method; } Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/SimpleExpression.java Sat Dec 3 08:25:16 2011 @@ -49,6 +49,10 @@ public class SimpleExpression extends Ex super(expression); } + public SimpleExpression(Expression expression) { + super(expression); + } + public String getLanguage() { return "simple"; } Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/XPathExpression.java URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/XPathExpression.java?rev=1209852&r1=1209851&r2=1209852&view=diff ============================================================================== --- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/XPathExpression.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/model/language/XPathExpression.java Sat Dec 3 08:25:16 2011 @@ -47,6 +47,10 @@ public class XPathExpression extends Nam super(expression); } + public XPathExpression(Expression expression) { + setExpressionValue(expression); + } + public String getLanguage() { return "xpath"; } Copied: camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java (from r1209845, camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java) URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java?p2=camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java&r1=1209845&r2=1209852&rev=1209852&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java (original) +++ camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlRoutePredicateTest.java Sat Dec 3 08:25:16 2011 @@ -20,7 +20,6 @@ import org.apache.camel.ContextTestSuppo import org.apache.camel.MyBarSingleton; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.JndiRegistry; -import org.apache.camel.model.ModelHelper; /** *