This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 3a5a5d88adb CAMEL-21982: camel-core - LW XML dumper should output inlined Java DSL expressions 3a5a5d88adb is described below commit 3a5a5d88adb632df7dd514b50ff330427239c6ed Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Apr 16 17:22:33 2025 +0200 CAMEL-21982: camel-core - LW XML dumper should output inlined Java DSL expressions --- .../src/main/java/org/apache/camel/builder/Builder.java | 13 +++++++++++-- .../org/apache/camel/builder/ExpressionClauseSupport.java | 13 +++++++++++-- .../camel/processor/NestedChoiceWithEndChoiceIssueTest.java | 4 ++-- .../camel/processor/NestedChoiceWithEndChoiceIssueTest.xml | 8 ++++---- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java index 56962d3f727..9846d6807ec 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/Builder.java @@ -17,6 +17,7 @@ package org.apache.camel.builder; import org.apache.camel.Expression; +import org.apache.camel.model.ExpressionNodeHelper; import org.apache.camel.model.language.CSimpleExpression; import org.apache.camel.model.language.ConstantExpression; import org.apache.camel.model.language.ExchangePropertyExpression; @@ -100,7 +101,11 @@ public final class Builder { if (value instanceof String str) { exp = new ConstantExpression(str); } else { - exp = ExpressionBuilder.constantExpression(value); + ConstantExpression ce = new ConstantExpression(); + var def = ExpressionNodeHelper.toExpressionDefinition(ExpressionBuilder.constantExpression(value)); + ce.setExpressionType(def); + ce.setExpression(String.valueOf(value)); + exp = ce; } return new ValueBuilder(exp); } @@ -124,7 +129,11 @@ public final class Builder { ce.setTrim(trim ? "true" : "false"); exp = ce; } else { - exp = ExpressionBuilder.constantExpression(value); + ConstantExpression ce = new ConstantExpression(); + ce.setExpressionType(ExpressionNodeHelper.toExpressionDefinition(ExpressionBuilder.constantExpression(value))); + ce.setExpression(String.valueOf(value)); + ce.setTrim(trim ? "true" : "false"); + exp = ce; } return new ValueBuilder(exp); } diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java index aa42b8bfd37..517ab16dd59 100644 --- a/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java +++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/ExpressionClauseSupport.java @@ -23,10 +23,12 @@ import org.apache.camel.CamelContext; import org.apache.camel.Expression; import org.apache.camel.ExpressionFactory; import org.apache.camel.PredicateFactory; +import org.apache.camel.model.ExpressionNodeHelper; import org.apache.camel.model.language.CSimpleExpression; import org.apache.camel.model.language.ConstantExpression; import org.apache.camel.model.language.DatasonnetExpression; import org.apache.camel.model.language.ExchangePropertyExpression; +import org.apache.camel.model.language.ExpressionDefinition; import org.apache.camel.model.language.GroovyExpression; import org.apache.camel.model.language.HeaderExpression; import org.apache.camel.model.language.Hl7TerserExpression; @@ -117,7 +119,10 @@ public class ExpressionClauseSupport<T> implements ExpressionFactoryAware, Predi if (value instanceof String str) { return expression(new ConstantExpression(str)); } else { - return expression(ExpressionBuilder.constantExpression(value)); + ConstantExpression ce = new ConstantExpression(); + ce.setExpressionType(new ExpressionDefinition(ExpressionBuilder.constantExpression(value))); + ce.setExpression(String.valueOf(value)); + return expression(ce); } } @@ -141,7 +146,11 @@ public class ExpressionClauseSupport<T> implements ExpressionFactoryAware, Predi ce.setTrim(trim ? "true" : "false"); return expression(ce); } else { - return expression(ExpressionBuilder.constantExpression(value)); + ConstantExpression ce = new ConstantExpression(); + ce.setExpressionType(ExpressionNodeHelper.toExpressionDefinition(ExpressionBuilder.constantExpression(value))); + ce.setExpression(String.valueOf(value)); + ce.setTrim(trim ? "true" : "false"); + return expression(ce); } } diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.java index b7af477e1b6..0145a2090af 100644 --- a/core/camel-core/src/test/java/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.java @@ -86,11 +86,11 @@ public class NestedChoiceWithEndChoiceIssueTest extends ContextTestSupport { .to("direct:test") .when(simple("${header.count} < 1000 && ${body} == 1")) .setHeader("count", simple("${header.count}++")) - .setBody(constant(2)) + .setBody().constant(2) .log("Second when. Header is:${header.count} Body is:${body}") .to("direct:test") .when(simple("${header.count} < 1000 && ${body} == 2")) - .setHeader("count", simple("${header.count}++")) + .setHeader("count").simple("${header.count}++") .setBody(constant(0)) .choice() .when(simple("${header.count} < 500")) diff --git a/core/camel-core/src/test/resources/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.xml b/core/camel-core/src/test/resources/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.xml index ba9efbd6416..c5456a70b89 100644 --- a/core/camel-core/src/test/resources/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.xml +++ b/core/camel-core/src/test/resources/org/apache/camel/processor/NestedChoiceWithEndChoiceIssueTest.xml @@ -28,7 +28,7 @@ <simple>${header.count}++</simple> </setHeader> <setBody id="setBody"> - <expressionDefinition>1</expressionDefinition> + <constant>1</constant> </setBody> <log id="log" message="First when. Header is:${header.count} Body is:${body}"/> <to id="to" uri="direct:test"/> @@ -39,7 +39,7 @@ <simple>${header.count}++</simple> </setHeader> <setBody id="setBody"> - <expressionDefinition>2</expressionDefinition> + <constant>2</constant> </setBody> <log id="log" message="Second when. Header is:${header.count} Body is:${body}"/> <to id="to" uri="direct:test"/> @@ -50,7 +50,7 @@ <simple>${header.count}++</simple> </setHeader> <setBody id="setBody"> - <expressionDefinition>0</expressionDefinition> + <constant>0</constant> </setBody> <choice id="choice"> <when id="when"> @@ -68,7 +68,7 @@ <simple>${header.count} == 996</simple> <log id="log" message="Deep choice log. Header is:${header.count}"/> <setHeader id="setHeader" name="count"> - <expressionDefinition>998</expressionDefinition> + <constant>998</constant> </setHeader> </when> </choice>