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
}