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 <[email protected]> Authored: Thu Jan 19 00:03:50 2017 +0900 Committer: Claus Ibsen <[email protected]> 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")
