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/01/05 13:32:16 UTC

svn commit: r1429271 - in /camel/trunk/components/camel-scala/src: main/scala/org/apache/camel/scala/dsl/languages/ test/scala/org/apache/camel/scala/dsl/

Author: davsclaus
Date: Sat Jan  5 12:32:16 2013
New Revision: 1429271

URL: http://svn.apache.org/viewvc?rev=1429271&view=rev
Log:
CAMEL-5889: Added all the tokenize langauges to Scala DSL.

Added:
    camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeHeaderTest.scala
    camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizePairTest.scala
    camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeTest.scala
      - copied, changed from r1429217, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.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=1429271&r1=1429270&r2=1429271&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 Sat Jan  5 12:32:16 2013
@@ -80,6 +80,13 @@ trait Languages {
   // general purpose language
   def language(language: String)(expression: String)(exchange : Exchange) = Languages.evaluate(expression)(exchange)(language)
 
+  // tokenizer languages
+  def tokenize(headerName: String = null, token: String, regex : Boolean = false)(exchange : Exchange) : Any = {
+    TokenizeLanguage.tokenize(headerName, token, regex).evaluate(exchange, classOf[Object])
+  }
+  def tokenizePair(startToken: String, endToken: String, includeTokens : Boolean)(exchange : Exchange) : Any = {
+    TokenizeLanguage.tokenizePair(startToken, endToken, includeTokens).evaluate(exchange, classOf[Object])
+  }
   def tokenizeXML(tagName: String, inheritNamespaceTagName : String = null)(exchange : Exchange) : Any = {
     TokenizeLanguage.tokenizeXML(tagName, inheritNamespaceTagName).evaluate(exchange, classOf[Object])
   }

Added: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeHeaderTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeHeaderTest.scala?rev=1429271&view=auto
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeHeaderTest.scala (added)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeHeaderTest.scala Sat Jan  5 12:32:16 2013
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl
+
+import builder.RouteBuilder
+import org.junit.Test
+
+/**
+ * Test case for Splitter
+ */
+class SplitterTokenizeHeaderTest extends ScalaTestSupport {
+
+  @Test
+  def testSplitterTokenize() = {
+    val mock = getMockEndpoint("mock:b")
+    mock.expectedMessageCount(3)
+
+    val names: String = "Claus,James,Willem"
+    template.sendBodyAndHeader("direct:b", "Hello World", "names", names)
+
+    assertMockEndpointsSatisfied()
+  }
+  
+  val builder =
+    //START SNIPPET: e1
+    new RouteBuilder {
+       "direct:b" ==> {
+         split(tokenize("names", ",")) {
+           to("log:b")
+           to("mock:b")
+         }
+       }
+    }
+    //END SNIPPET: e1
+
+}

Added: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizePairTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizePairTest.scala?rev=1429271&view=auto
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizePairTest.scala (added)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizePairTest.scala Sat Jan  5 12:32:16 2013
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl
+
+import builder.RouteBuilder
+import org.junit.Test
+
+/**
+ * Test case for Splitter
+ */
+class SplitterTokenizePairTest extends ScalaTestSupport {
+
+  @Test
+  def testSplitterTokenize() = {
+    val mock = getMockEndpoint("mock:b")
+    mock.expectedBodiesReceived("Claus", "James", "Willem")
+
+    val data: String = "[[Claus]][[James]][[Willem]]"
+    template.sendBody("direct:b", data)
+
+    assertMockEndpointsSatisfied()
+  }
+  
+  val builder =
+    //START SNIPPET: e1
+    new RouteBuilder {
+       "direct:b" ==> {
+         split(tokenizePair("[[", "]]", includeTokens = false)) {
+           to("log:b")
+           to("mock:b")
+         }
+       }
+    }
+    //END SNIPPET: e1
+
+}

Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeTest.scala (from r1429217, camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeTest.scala&p1=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala&r1=1429217&r2=1429271&rev=1429271&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeXMLTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterTokenizeTest.scala Sat Jan  5 12:32:16 2013
@@ -22,15 +22,15 @@ import org.junit.Test
 /**
  * Test case for Splitter
  */
-class SplitterTokenizeXMLTest extends ScalaTestSupport {
+class SplitterTokenizeTest extends ScalaTestSupport {
 
   @Test
-  def testSplitterTokenizeXML() = {
+  def testSplitterTokenize() = {
     val mock = getMockEndpoint("mock:b")
-    mock.expectedBodiesReceived("<person>Claus</person>", "<person>James</person>", "<person>Willem</person>")
+    mock.expectedBodiesReceived("Claus", "James", "Willem")
 
-    val xml: String = "<persons><person>Claus</person><person>James</person><person>Willem</person></persons>"
-    template.sendBody("direct:b", xml)
+    val data: String = "Claus,James,Willem"
+    template.sendBody("direct:b", data)
 
     assertMockEndpointsSatisfied()
   }
@@ -39,7 +39,7 @@ class SplitterTokenizeXMLTest extends Sc
     //START SNIPPET: e1
     new RouteBuilder {
        "direct:b" ==> {
-         split(tokenizeXML("person")) {
+         split(tokenize(",")) {
            to("log:b")
            to("mock:b")
          }