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

commit 4f70839b985464fce64ffb8532e436920d86cc80
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Oct 14 10:01:42 2021 +0200

    CAMEL-17075: Deprecate DataSonnetBuilder to not use it, and prepare for 
deletion.
---
 .../datasonnet/CamelDatasonnetJavaDslTest.java     | 15 ++++++--------
 .../org/apache/camel/builder/BuilderSupport.java   | 24 ++++++++++++++++------
 .../apache/camel/builder/DatasonnetBuilder.java    |  1 +
 .../ROOT/pages/camel-3x-upgrade-guide-3_13.adoc    | 19 +++++++++++++++++
 4 files changed, 44 insertions(+), 15 deletions(-)

diff --git 
a/components/camel-datasonnet/src/test/java/org/apache/camel/language/datasonnet/CamelDatasonnetJavaDslTest.java
 
b/components/camel-datasonnet/src/test/java/org/apache/camel/language/datasonnet/CamelDatasonnetJavaDslTest.java
index 7dd4571..00d9b48 100644
--- 
a/components/camel-datasonnet/src/test/java/org/apache/camel/language/datasonnet/CamelDatasonnetJavaDslTest.java
+++ 
b/components/camel-datasonnet/src/test/java/org/apache/camel/language/datasonnet/CamelDatasonnetJavaDslTest.java
@@ -66,23 +66,20 @@ public class CamelDatasonnetJavaDslTest extends 
CamelTestSupport {
                         .setProperty("count", simple("1", Integer.class))
                         .setProperty("isActive", simple("true", Boolean.class))
                         .setProperty("1. Full Name", constant("DataSonnet"))
-                        
.transform(datasonnet("resource:classpath:simpleMapping.ds", String.class)
-                                
.bodyMediaType(MediaTypes.APPLICATION_JSON_VALUE)
-                                
.outputMediaType(MediaTypes.APPLICATION_JSON_VALUE))
+                        
.transform(datasonnet("resource:classpath:simpleMapping.ds", String.class,
+                                MediaTypes.APPLICATION_JSON_VALUE, 
MediaTypes.APPLICATION_JSON_VALUE))
                         .to("mock:direct:end");
 
                 from("direct:transformXML")
                         .routeId("transformXML")
-                        
.transform(datasonnet("resource:classpath:readXMLExtTest.ds", String.class)
-                                
.bodyMediaType(MediaTypes.APPLICATION_XML_VALUE)
-                                
.outputMediaType(MediaTypes.APPLICATION_JSON_VALUE))
+                        
.transform(datasonnet("resource:classpath:readXMLExtTest.ds", String.class,
+                                MediaTypes.APPLICATION_XML_VALUE, 
MediaTypes.APPLICATION_JSON_VALUE))
                         .to("mock:direct:end");
 
                 from("direct:transformCSV")
                         .routeId("transformCSV")
-                        
.transform(datasonnet("resource:classpath:readCSVTest.ds", String.class)
-                                
.bodyMediaType(MediaTypes.APPLICATION_CSV_VALUE)
-                                
.outputMediaType(MediaTypes.APPLICATION_JSON_VALUE))
+                        
.transform(datasonnet("resource:classpath:readCSVTest.ds", String.class,
+                                MediaTypes.APPLICATION_CSV_VALUE, 
MediaTypes.APPLICATION_JSON_VALUE))
                         .to("mock:direct:end");
 
             }
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
index 31eb93b..d6cae2e 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/BuilderSupport.java
@@ -26,6 +26,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Expression;
 import org.apache.camel.NoSuchEndpointException;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.model.language.DatasonnetExpression;
 import org.apache.camel.model.language.ExchangePropertyExpression;
 import org.apache.camel.model.language.HeaderExpression;
 import org.apache.camel.model.language.SimpleExpression;
@@ -162,17 +163,28 @@ public abstract class BuilderSupport implements 
CamelContextAware {
     }
 
     /**
-     * Returns a Datasonnet expression value builder
+     * Returns a datasonnet expression value builder
      */
-    public DatasonnetBuilder datasonnet(String value) {
-        return DatasonnetBuilder.datasonnet(value);
+    public ValueBuilder datasonnet(String value) {
+        return datasonnet(value, null);
     }
 
     /**
-     * Returns a Datasonnet expression value builder
+     * Returns a datasonnet expression value builder
      */
-    public DatasonnetBuilder datasonnet(String value, Class<?> resultType) {
-        return DatasonnetBuilder.datasonnet(value, resultType);
+    public ValueBuilder datasonnet(String value, Class<?> resultType) {
+        return datasonnet(value, resultType, null, null);
+    }
+
+    /**
+     * Returns a datasonnet expression value builder
+     */
+    public ValueBuilder datasonnet(String value, Class<?> resultType, String 
bodyMediaType, String outputMediaType) {
+        DatasonnetExpression exp = new DatasonnetExpression(value);
+        exp.setResultType(resultType);
+        exp.setBodyMediaType(bodyMediaType);
+        exp.setOutputMediaType(outputMediaType);
+        return new ValueBuilder(exp);
     }
 
     /**
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 cb711fa..4a98fb5 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
@@ -29,6 +29,7 @@ import org.apache.camel.spi.Language;
  * 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.
  */
+@Deprecated
 public class DatasonnetBuilder implements Predicate, Expression, 
ExpressionResultTypeAware {
 
     private String text;
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
index 8908124..0dc47fd 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_13.adoc
@@ -31,6 +31,25 @@ to
 simple("1", Integer.class)
 ----
 
+=== camel-datasonnet and DataSonnetBuilder
+
+The `org.apache.camel.builder.DataSonnetBuilder` has been removed.
+
+End users that use camel-datasonnet in Java DSL should migrate from:
+
+[source,java]
+----
+datasonnet("resource:classpath:simpleMapping.ds", String.class)
+        .bodyMediaType(MediaTypes.APPLICATION_JSON_VALUE)
+        .outputMediaType(MediaTypes.APPLICATION_JSON_VALUE)
+----
+
+to
+
+[source,java]
+----
+----
+
 === Using custom Debugger
 
 Previously when setting a custom org.apache.camel.spi.Debugger, then Camel 
would automatically

Reply via email to