blob: 5c17cb9e3d307141e67572b5439f1dd453e4f105 [file] [log] [blame]
Scala DSL - Supported languages
===============================
Support for other languages inside the Scala DSL
routes is delivered through traits. The
`org.apache.camel.scala.dsl.languages` package currently offers traits
to support XPath. To use any given language, you can mix-in the trait
when creating your `RouteBuilder`.
You can use any of the supported Camel Languages in
the Scala DSL; see below for a couple of examples:
[[ScalaDSL-Supportedlanguages-Using]]
Using <<xpath-language,XPath>>
----------------------------
With the XPath trait, you have an additional method available on an
`Exchange` to do XPath queries against the message. Just look at this
Splitter example, where the `xpath` method is used in a
`Exchange ⇒ Any*` function literal
[source,java]
----------------------------------------------------------
"direct:b" ==> {
as(classOf[Document])
split(xpath("/persons/person")) {
to("mock:b")
to("mock:c")
}
}
----------------------------------------------------------
[[ScalaDSL-Supportedlanguages-Using.1]]
Using <<jxpath-language,JXPath>>
------------------------------
With the `org.apache.camel.scala.dsl.languages.JXPath` trait, you can an
additional `jxpath` method on the `Exchange`. In the Recipient List
example below, JXPath is used for getting the next endpoint's name out
of the message body.
[source,java]
----------------------------------------------------------
"direct:c" ==> {
to("mock:c")
recipients(jxpath("./in/body/destination"))
}
----------------------------------------------------------