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 2013/06/04 12:15:12 UTC

[3/3] git commit: CAMEL-6422: Add tokenizeXML to java dsl on value builder.

CAMEL-6422: Add tokenizeXML to java dsl on value builder.


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

Branch: refs/heads/camel-2.10.x
Commit: ffd479d70c73596d6fc3563ca279c5e7a180f72c
Parents: 8d2e138
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Jun 4 12:13:45 2013 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jun 4 12:14:39 2013 +0200

----------------------------------------------------------------------
 .../org/apache/camel/builder/ValueBuilder.java     |   10 ++++++++
 .../language/TokenXMLPairNamespaceSplitTest.java   |   19 +++++++++++++++
 2 files changed, 29 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/ffd479d7/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
index 496e20c..31c4b96 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ValueBuilder.java
@@ -177,6 +177,16 @@ public class ValueBuilder implements Expression, Predicate {
         return new ValueBuilder(newExp);
     }
 
+    public ValueBuilder tokenizeXML(String tagName, String inheritNamespaceTagName) {
+        Expression newExp = ExpressionBuilder.tokenizeXMLExpression(tagName, inheritNamespaceTagName);
+        return new ValueBuilder(newExp);
+    }
+
+    public ValueBuilder tokenizePair(String startToken, String endToken, boolean includeTokens) {
+        Expression newExp = ExpressionBuilder.tokenizePairExpression(startToken, endToken, includeTokens);
+        return new ValueBuilder(newExp);
+    }
+
     /**
      * Tokenizes the string conversion of this expression using the given
      * regular expression

http://git-wip-us.apache.org/repos/asf/camel/blob/ffd479d7/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java b/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java
index 6914630..dd74896 100644
--- a/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java
+++ b/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java
@@ -29,6 +29,7 @@ public class TokenXMLPairNamespaceSplitTest extends ContextTestSupport {
     @Override
     protected void setUp() throws Exception {
         deleteDirectory("target/pair");
+        deleteDirectory("target/pair2");
         super.setUp();
     }
 
@@ -45,6 +46,19 @@ public class TokenXMLPairNamespaceSplitTest extends ContextTestSupport {
         assertMockEndpointsSatisfied();
     }
 
+    public void testTokenXMLPair2() throws Exception {
+        MockEndpoint mock = getMockEndpoint("mock:split");
+        mock.expectedMessageCount(3);
+        mock.message(0).body().isEqualTo("<order id=\"1\" xmlns=\"http:acme.com\">Camel in Action</order>");
+        mock.message(1).body().isEqualTo("<order id=\"2\" xmlns=\"http:acme.com\">ActiveMQ in Action</order>");
+        mock.message(2).body().isEqualTo("<order id=\"3\" xmlns=\"http:acme.com\">DSL in Action</order>");
+
+        String body = createBody();
+        template.sendBodyAndHeader("file:target/pair2", body, Exchange.FILE_NAME, "orders.xml");
+
+        assertMockEndpointsSatisfied();
+    }
+
     protected String createBody() {
         StringBuilder sb = new StringBuilder("<?xml version=\"1.0\"?>\n");
         sb.append("<orders xmlns=\"http:acme.com\">\n");
@@ -66,6 +80,11 @@ public class TokenXMLPairNamespaceSplitTest extends ContextTestSupport {
                     .split().tokenizeXML("order", "orders")
                         .to("mock:split");
                 // END SNIPPET: e1
+
+                from("file:target/pair2")
+                    // split the order child tags, and inherit namespaces from the orders root tag
+                    .split(body().tokenizeXML("order", "orders"))
+                        .to("mock:split");
             }
         };
     }