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 <[email protected]>
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>