Monday, August 26, 2013

Camel File - Read file and display using Camel-Stream component

An example to read a file using Camel-File and display it on the console using Camel-Stream component.

Maven Dependencies


<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-stream</artifactId>
    <version>${camel.version}</version>
</dependency>

Java DSL


package uk.co.blogspot.camelbyexample.file;

import org.apache.camel.builder.RouteBuilder;

public class ReadFileToConsoleRouter extends RouteBuilder {

 public void configure() {
  from("file:src/data?noop=true").to("stream:out");
 }

}

Camel File - Content based routing using XPath

package uk.co.blogspot.camelbyexample.sample;

import org.apache.camel.builder.RouteBuilder;

public class ContentBasedFileRouter extends RouteBuilder {

    public void configure() {

        // content based routing       
        from("file:src/data?noop=true")
            .choice()
                .when(xpath("/person/city = 'London'"))
                    .log("UK message")
                    .to("file:target/messages/uk")
                .when(xpath("/person/city = 'Mumbai'"))
                    .log("India message")
                    .to("file:target/messages/India")
                .otherwise()
                    .log("Other message")
                    .to("file:target/messages/others");
    }
}