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 2012/11/19 12:27:54 UTC

svn commit: r1411129 - in /camel/trunk/components/camel-scala/src: main/scala/org/apache/camel/scala/dsl/languages/Languages.scala test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala

Author: davsclaus
Date: Mon Nov 19 11:27:53 2012
New Revision: 1411129

URL: http://svn.apache.org/viewvc?rev=1411129&view=rev
Log:
CAMEL-5803: Added tokenizeXML to Scala DSL to make it easy to use it as it is in Java DSL.

Added:
    camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala
      - copied, changed from r1411114, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala
Modified:
    camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/languages/Languages.scala

Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/languages/Languages.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/languages/Languages.scala?rev=1411129&r1=1411128&r2=1411129&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/languages/Languages.scala (original)
+++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/languages/Languages.scala Mon Nov 19 11:27:53 2012
@@ -17,6 +17,8 @@
 package org.apache.camel
 package scala.dsl.languages
 
+import language.tokenizer.TokenizeLanguage
+
 /**
  * Trait to support the different expression languages available in Camel 
  */
@@ -48,6 +50,8 @@ trait Languages {
     def xpath(expression: String) =      Languages.this.xpath(expression)(exchange)
     def xquery(expression: String) =     Languages.this.xquery(expression)(exchange)
     def language(language: String, expression: String) = Languages.this.language(language)(expression)(exchange)
+
+    def tokenizeXML(tagName: String, inheritNamespaceTagName : String = null) = Languages.this.tokenizeXML(tagName, inheritNamespaceTagName)(exchange)
   }
   
   // a set of methods to allow direct use of the language as an expression
@@ -76,6 +80,10 @@ trait Languages {
   // general purpose language
   def language(language: String)(expression: String)(exchange : Exchange) = Languages.evaluate(expression)(exchange)(language)
 
+  def tokenizeXML(tagName: String, inheritNamespaceTagName : String = null)(exchange : Exchange) : Any = {
+    TokenizeLanguage.tokenizeXML(tagName, inheritNamespaceTagName).evaluate(exchange, classOf[Object])
+  }
+
 }
 
 /**

Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala (from r1411114, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala&p1=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala&r1=1411114&r2=1411129&rev=1411129&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala Mon Nov 19 11:27:53 2012
@@ -14,49 +14,37 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel
-package scala.dsl
- 
+package org.apache.camel.scala.dsl
+
 import builder.RouteBuilder
-import org.w3c.dom.Document
 import org.junit.Test
 
 /**
  * Test case for Splitter
  */
-class SplitterRouteBuilderTest extends ScalaTestSupport {
+class SplitterTokenizeXMLTest extends ScalaTestSupport {
 
   @Test
-  def testSimpleSplitter = {
-    "mock:a" expect { _.count = 3}
-    "direct:a" ! <persons><person id="1"/><person id="2"/><person id="3"/></persons>
-    "mock:a" assert()
+  def testSplitterTokenizeXML = {
+    val mock = getMockEndpoint("mock:b")
+    mock.expectedBodiesReceived("<person>Claus</person>", "<person>James</person>", "<person>Willem</person>")
+
+    val xml: String = "<persons><person>Claus</person><person>James</person><person>Willem</person></persons>"
+    template.sendBody("direct:b", xml)
+
+    assertMockEndpointsSatisfied()
   }
   
-  @Test
-  def testBlockSplitter = {
-    "mock:b" expect { _.count = 3}
-    "mock:c" expect { _.count = 3}
-    "direct:b" ! <persons><person id="1"/><person id="2"/><person id="3"/></persons>
-    "mock:b" assert()
-    "mock:c" assert()
-  }
-
   val builder =
+    //START SNIPPET: e1
     new RouteBuilder {
-       //START SNIPPET: simple
-       "direct:a" as(classOf[Document]) split(xpath("/persons/person")) to "mock:a"
-       //END SNIPPET: simple
-       
-       //START SNIPPET: block
        "direct:b" ==> {
-         as(classOf[Document])
-         split(xpath("/persons/person")) {
+         split(tokenizeXML("person")) {
+           to("log:b")
            to("mock:b")
-           to("mock:c")
          }
        }
-       //END SNIPPET: block
     }
+    //END SNIPPET: e1
 
 }