Monday, November 11, 2013

Camel Mail - Removing extra headers from email body

The camel-mail component may send extra headers in when sending email. The below route shows how to use the removeHeaders() function to remove the extra header information from the camel route.
Java DSL
from("vm:mailService")
.to("velocity:customMailTemplate.vm")
.process(new Processor() {
 @Override
 public void process(Exchange exchange) {
   Message message = exchange.getIn();
          message.setHeader(Exchange.CONTENT_TYPE, "text/plain");
 }
})
// Remove all headers, except the one reqd. by camel-mail component
.removeHeaders("*", "To", "Subject", "From")
.to("smtp://127.0.0.1");

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");
    }
}