Java DSL
Apache Camel offers a Java based DSL.
The Java DSL is available by extending the RouteBuilder class,
and implement the configure method.
Java DSL example
This is best illustrate by an example. In the code below we create a new
class called MyRouteBuilder that extends the
org.apache.camel.builder.RouteBuilder from Camel.
In the configure method the Java DSL is at our disposal.
import org.apache.camel.builder.RouteBuilder;
/**
* A Camel Java DSL Router
*/
public class MyRouteBuilder extends RouteBuilder {
/**
* Let's configure the Camel routing rules using Java code...
*/
public void configure() {
// here is a sample which processes the input files
// (leaving them in place - see the 'noop' flag)
// then performs content based routing on the message using XPath
from("file:src/data?noop=true")
.choice()
.when(xpath("/person/city = 'London'"))
.to("file:target/messages/uk")
.otherwise()
.to("file:target/messages/others");
}
}
In the configure method we can define Camel Routes.
In the example above we have a single route, which pickup files (the from).
from("file:src/data?noop=true")
Then we use the Content Based Router EIP
(the choice) to route the message whether the person is from London or not.
.choice()
.when(xpath("/person/city = 'London'"))
.to("file:target/messages/uk")
.otherwise()
.to("file:target/messages/others");