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 541b9cc CAMEL-17046: Special language builder
541b9cc is described below
commit 541b9cc6d4716cf0a3c944c356497ec3b73be03d
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu Oct 7 07:26:49 2021 +0200
CAMEL-17046: Special language builder
---
.../apache/camel/builder/DatasonnetBuilder.java | 4 ++--
.../apache/camel/model/ExpressionNodeHelper.java | 27 ++++++++++++++++++----
2 files changed, 25 insertions(+), 6 deletions(-)
diff --git
a/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
b/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
index 4a2ae88..cb711fa 100644
---
a/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
+++
b/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
@@ -26,8 +26,8 @@ import org.apache.camel.spi.Language;
/**
* Creates a DataSonnet language builder.
* <p/>
- * This builder is available in the Java DSL from the {@link RouteBuilder}
which means that using datasonnet language for
- * {@link Expression}s or {@link Predicate}s is very easy with the help of
this builder.
+ * This builder is available in the Java DSL from the {@link RouteBuilder}
which means that using datasonnet language
+ * for {@link Expression}s or {@link Predicate}s is very easy with the help of
this builder.
*/
public class DatasonnetBuilder implements Predicate, Expression,
ExpressionResultTypeAware {
diff --git
a/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
b/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
index 4b8d805..556e591 100644
---
a/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
+++
b/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
@@ -18,8 +18,10 @@ package org.apache.camel.model;
import org.apache.camel.Expression;
import org.apache.camel.Predicate;
+import org.apache.camel.builder.DatasonnetBuilder;
import org.apache.camel.builder.SimpleBuilder;
import org.apache.camel.builder.ValueBuilder;
+import org.apache.camel.model.language.DatasonnetExpression;
import org.apache.camel.model.language.ExpressionDefinition;
import org.apache.camel.model.language.SimpleExpression;
import org.apache.camel.model.language.XPathExpression;
@@ -45,11 +47,19 @@ public final class ExpressionNodeHelper {
public static ExpressionDefinition toExpressionDefinition(Expression
expression) {
if (expression instanceof SimpleBuilder) {
SimpleBuilder builder = (SimpleBuilder) expression;
- // only transfer over the expression text and result type from
SimpleBuilder
- // as we want to use the definition objects in the route graph
+ // we want to use the definition objects in the route graph
SimpleExpression answer = new SimpleExpression(builder.getText());
answer.setResultType(builder.getResultType());
return answer;
+ } else if (expression instanceof DatasonnetBuilder) {
+ DatasonnetBuilder builder = (DatasonnetBuilder) expression;
+ // we want to use the definition objects in the route graph
+ DatasonnetExpression answer = new
DatasonnetExpression(builder.getText());
+ answer.setExpression(builder.getText());
+ answer.setResultType(builder.getResultType());
+ answer.setBodyMediaType(builder.getBodyMediaType());
+ answer.setOutputMediaType(builder.getOutputMediaType());
+ return answer;
} else if (expression instanceof ExpressionResultTypeAware
&&
expression.getClass().getName().equals("org.apache.camel.language.xpath.XPathBuilder"))
{
ExpressionResultTypeAware aware = (ExpressionResultTypeAware)
expression;
@@ -83,10 +93,19 @@ public final class ExpressionNodeHelper {
public static ExpressionDefinition toExpressionDefinition(Predicate
predicate) {
if (predicate instanceof SimpleBuilder) {
SimpleBuilder builder = (SimpleBuilder) predicate;
- // only transfer over the expression text and result type from
SimpleBuilder
- // as we want to use the definition objects in the route graph
+ // we want to use the definition objects in the route graph
SimpleExpression answer = new SimpleExpression(builder.getText());
answer.setExpression(builder.getText());
+ answer.setResultType(builder.getResultType());
+ return answer;
+ } else if (predicate instanceof DatasonnetBuilder) {
+ DatasonnetBuilder builder = (DatasonnetBuilder) predicate;
+ // we want to use the definition objects in the route graph
+ DatasonnetExpression answer = new
DatasonnetExpression(builder.getText());
+ answer.setExpression(builder.getText());
+ answer.setResultType(builder.getResultType());
+ answer.setBodyMediaType(builder.getBodyMediaType());
+ answer.setOutputMediaType(builder.getOutputMediaType());
return answer;
} else if (predicate instanceof ExpressionResultTypeAware
&&
predicate.getClass().getName().equals("org.apache.camel.language.xpath.XPathBuilder"))
{