You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/01/19 12:21:14 UTC

[2/4] camel git commit: CAMEL-10531 Use fromType() and toType() instead of from() and to() to avoid confusion

CAMEL-10531 Use fromType() and toType() instead of from() and to() to avoid confusion


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8270e3e9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8270e3e9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8270e3e9

Branch: refs/heads/master
Commit: 8270e3e93bc4aab1c2a18d7d996f82281babe234
Parents: 11c7840
Author: Tomohisa Igarashi <tm...@gmail.com>
Authored: Thu Jan 19 00:03:50 2017 +0900
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Jan 19 13:20:55 2017 +0100

----------------------------------------------------------------------
 .../org/apache/camel/builder/RouteBuilder.java  |  4 +-
 .../camel/builder/TransformerBuilder.java       | 41 +++++++++++++-------
 .../java/org/apache/camel/spi/DataType.java     |  6 ++-
 .../camel/builder/TransformerBuilderTest.java   |  4 +-
 .../impl/transformer/TransformerRouteTest.java  | 16 ++++----
 .../ManagedTransformerRegistryTest.java         |  8 ++--
 .../camel/example/transformer/cdi/MyRoutes.java |  4 +-
 7 files changed, 48 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
index ba7b828..fde9494 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -53,7 +53,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
     private AtomicBoolean initialized = new AtomicBoolean(false);
     private RestsDefinition restCollection = new RestsDefinition();
     private Map<String, RestConfigurationDefinition> restConfigurations;
-    private List<TransformerBuilder> transformerBuilders = new ArrayList<TransformerBuilder>();
+    private List<TransformerBuilder> transformerBuilders = new ArrayList<>();
     private RoutesDefinition routeCollection = new RoutesDefinition();
 
     public RouteBuilder() {
@@ -133,7 +133,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
     }
 
     /**
-     * Create a new Transformer.
+     * Create a new {@code TransformerBuilder}.
      * 
      * @return the builder
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
index 4858fc9..5bb0243 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/TransformerBuilder.java
@@ -22,11 +22,14 @@ import org.apache.camel.model.transformer.CustomTransformerDefinition;
 import org.apache.camel.model.transformer.DataFormatTransformerDefinition;
 import org.apache.camel.model.transformer.EndpointTransformerDefinition;
 import org.apache.camel.model.transformer.TransformerDefinition;
+import org.apache.camel.spi.DataType;
 import org.apache.camel.spi.Transformer;
 
 /**
  * A <a href="http://camel.apache.org/dsl.html">Java DSL</a> which is
  * used to build a {@link org.apache.camel.spi.Transformer} and register into {@link org.apache.camel.CamelContext}.
+ * It requires 'scheme' or a pair of 'from' and 'to' to be specified by scheme(), from() and to() method.
+ * And then you can choose a type of transformer by withUri(), withDataFormat(), withJava() or withBean() method.
  */
 public class TransformerBuilder {
 
@@ -39,7 +42,10 @@ public class TransformerBuilder {
     private String beanRef;
 
     /**
-     * Set a scheme name supported by the transformer.
+     * Set the scheme name supported by the transformer.
+     * If you specify 'csv', the transformer will be picked up for all of 'csv' from/to
+     * Java transformation. Note that the scheme matching is performed only when
+     * no exactly matched transformer exists.
      *
      * @param scheme scheme name
      */
@@ -49,11 +55,14 @@ public class TransformerBuilder {
     }
 
     /**
-     * Set the 'from' data type .
+     * Set the 'from' data type name.
+     * If you specify 'xml:XYZ', the transformer will be picked up if source type is
+     * 'xml:XYZ'. If you specify just 'xml', the transformer matches with all of
+     * 'xml' source type like 'xml:ABC' or 'xml:DEF'.
      *
-     * @param from 'from' data type
+     * @param from 'from' data type name
      */
-    public TransformerBuilder from(String from) {
+    public TransformerBuilder fromType(String from) {
         this.from = from;
         return this;
     }
@@ -63,17 +72,20 @@ public class TransformerBuilder {
      *
      * @param clazz 'from' Java class
      */
-    public TransformerBuilder from(Class<?> from) {
-        this.from = "java:" + from.getName();
+    public TransformerBuilder fromType(Class<?> from) {
+        this.from = new DataType(from).toString();
         return this;
     }
 
     /**
-     * Set the 'to' data type .
+     * Set the 'to' data type name.
+     * If you specify 'json:XYZ', the transformer will be picked up if destination type is
+     * 'json:XYZ'. If you specify just 'json', the transformer matches with all of
+     * 'json' destination type like 'json:ABC' or 'json:DEF'.
      *
      * @param to 'to' data type
      */
-    public TransformerBuilder to(String to) {
+    public TransformerBuilder toType(String to) {
         this.to = to;
         return this;
     }
@@ -83,8 +95,8 @@ public class TransformerBuilder {
      *
      * @param clazz 'to' Java class
      */
-    public TransformerBuilder to(Class<?> to) {
-        this.to = "java:" + to.getName();
+    public TransformerBuilder toType(Class<?> to) {
+        this.to = new DataType(to).toString();
         return this;
     }
 
@@ -104,17 +116,16 @@ public class TransformerBuilder {
      * Set the {@code DataFormatDefinition} to be used for the {@code DataFormat} {@code Transformer}.
      * @see {@code DataFormatTransformerDefinition}, {@code DataFormatTransformer}
      * 
-     * @param dfd {@code DataFormatDefinition}
+     * @param dataFormatDefinition {@code DataFormatDefinition}
      */
-    public TransformerBuilder withDataFormat(DataFormatDefinition dfd) {
+    public TransformerBuilder withDataFormat(DataFormatDefinition dataFormatDefinition) {
         resetType();
-        this.dataFormat = dfd;
+        this.dataFormat = dataFormatDefinition;
         return this;
     }
 
     /**
-     * Set the Java {@code Class} represents a custom {@code Transformer} implementation class
-     * to be used for custom Transformer.
+     * Set the Java {@code Class} represents a custom {@code Transformer} implementation class.
      * @see {@code CustomTransformerDefinition}
      * 
      * @param clazz {@code Class} object represents custom transformer implementation

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/main/java/org/apache/camel/spi/DataType.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataType.java b/camel-core/src/main/java/org/apache/camel/spi/DataType.java
index 3efae96..5d96839 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/DataType.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/DataType.java
@@ -23,6 +23,8 @@ import org.apache.camel.util.StringHelper;
  */
 public class DataType {
 
+    public static final String JAVA_TYPE_PREFIX = "java";
+
     private String model;
     private String name;
     private boolean isJavaType;
@@ -32,7 +34,7 @@ public class DataType {
         if (urn != null) {
             String split[] = StringHelper.splitOnCharacter(urn, ":", 2);
             model = split[0];
-            isJavaType = model.equals("java");
+            isJavaType = model.equals(JAVA_TYPE_PREFIX);
             if (split.length > 1) {
                 name = split[1];
             }
@@ -40,7 +42,7 @@ public class DataType {
     }
     
     public DataType(Class<?> clazz) {
-        model = "java";
+        model = JAVA_TYPE_PREFIX;
         isJavaType = true;
         name = clazz.getName();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/test/java/org/apache/camel/builder/TransformerBuilderTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/builder/TransformerBuilderTest.java b/camel-core/src/test/java/org/apache/camel/builder/TransformerBuilderTest.java
index 1a7c54f..9a7e895 100644
--- a/camel-core/src/test/java/org/apache/camel/builder/TransformerBuilderTest.java
+++ b/camel-core/src/test/java/org/apache/camel/builder/TransformerBuilderTest.java
@@ -58,7 +58,7 @@ public class TransformerBuilderTest extends TestSupport {
         RouteBuilder builder = new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                transformer().from("xml:foo").to("json:bar").withDataFormat(new StringDataFormat());
+                transformer().fromType("xml:foo").toType("json:bar").withDataFormat(new StringDataFormat());
             }
         };
         ctx.addRoutes(builder);
@@ -77,7 +77,7 @@ public class TransformerBuilderTest extends TestSupport {
         RouteBuilder builder = new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                transformer().from("json:foo").to("xml:bar").withUri("direct:transformer");
+                transformer().fromType("json:foo").toType("xml:bar").withUri("direct:transformer");
                 from("direct:transformer");
             }
         };

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/test/java/org/apache/camel/impl/transformer/TransformerRouteTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/transformer/TransformerRouteTest.java b/camel-core/src/test/java/org/apache/camel/impl/transformer/TransformerRouteTest.java
index ddb1daf..4d5a0d1 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/transformer/TransformerRouteTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/transformer/TransformerRouteTest.java
@@ -188,12 +188,12 @@ public class TransformerRouteTest extends ContextTestSupport {
                 
                 context.addComponent("myxml", new MyXmlComponent());
                 transformer()
-                    .from("xml:XmlXOrder")
-                    .to(XOrder.class)
+                    .fromType("xml:XmlXOrder")
+                    .toType(XOrder.class)
                     .withUri("myxml:endpoint");
                 transformer()
-                    .from(XOrderResponse.class)
-                    .to("xml:XmlXOrderResponse")
+                    .fromType(XOrderResponse.class)
+                    .toType("xml:XmlXOrderResponse")
                     .withUri("myxml:endpoint");
                 from("direct:endpoint")
                     .inputType("xml:XmlXOrder")
@@ -201,12 +201,12 @@ public class TransformerRouteTest extends ContextTestSupport {
                     .inOut("direct:xyz");
                 
                 transformer()
-                    .from("other:OtherXOrder")
-                    .to(XOrder.class)
+                    .fromType("other:OtherXOrder")
+                    .toType(XOrder.class)
                     .withJava(OtherToXOrderTransformer.class);
                 transformer()
-                    .from(XOrderResponse.class)
-                    .to("other:OtherXOrderResponse")
+                    .fromType(XOrderResponse.class)
+                    .toType("other:OtherXOrderResponse")
                     .withJava(XOrderResponseToOtherTransformer.class);
                 from("direct:custom")
                     .inputType("other:OtherXOrder")

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/camel-core/src/test/java/org/apache/camel/management/ManagedTransformerRegistryTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedTransformerRegistryTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedTransformerRegistryTest.java
index d1b500f..cc1023f 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedTransformerRegistryTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedTransformerRegistryTest.java
@@ -117,12 +117,12 @@ public class ManagedTransformerRegistryTest extends ManagementTestSupport {
             @Override
             public void configure() throws Exception {
                 transformer()
-                    .from("xml:foo")
-                    .to("json:bar")
+                    .fromType("xml:foo")
+                    .toType("json:bar")
                     .withUri("direct:transformer");
                 transformer()
-                    .from(ManagedTransformerRegistryTest.class)
-                    .to("xml:test")
+                    .fromType(ManagedTransformerRegistryTest.class)
+                    .toType("xml:test")
                     .withDataFormat(new StringDataFormat());
                 transformer()
                     .scheme("custom")

http://git-wip-us.apache.org/repos/asf/camel/blob/8270e3e9/examples/camel-example-transformer-cdi/src/main/java/org/apache/camel/example/transformer/cdi/MyRoutes.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-transformer-cdi/src/main/java/org/apache/camel/example/transformer/cdi/MyRoutes.java b/examples/camel-example-transformer-cdi/src/main/java/org/apache/camel/example/transformer/cdi/MyRoutes.java
index c19d6ed..49290aa 100644
--- a/examples/camel-example-transformer-cdi/src/main/java/org/apache/camel/example/transformer/cdi/MyRoutes.java
+++ b/examples/camel-example-transformer-cdi/src/main/java/org/apache/camel/example/transformer/cdi/MyRoutes.java
@@ -26,8 +26,8 @@ public class MyRoutes extends RouteBuilder {
     @Override
     public void configure() {
         transformer()
-            .from("xml:MyRequest")
-            .to("xml:MyResponse")
+            .fromType("xml:MyRequest")
+            .toType("xml:MyResponse")
             .withUri("xslt:transform.xsl");
         
         from("timer:foo?period=5000").id("timer-route")