Apache Camel – Processor

Maven Dependencies

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

Camel Processor

package com.dineshkrish.example51;

import org.apache.camel.Exchange;
import org.apache.camel.Processor;

/**
 * 
 * @author Dinesh Krishnan
 *
 */

public class MyProcessor implements Processor {

	public void process(Exchange exchange) throws Exception {

		// get message from body
		String message = exchange.getIn().getBody(String.class);

		// apply your changes
		message = "Hello " + message;

		// set new message to body
		exchange.getOut().setBody(message);
	}

}

Main Program

package com.dineshkrish.example51;

import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.impl.DefaultCamelContext;

/**
 * 
 * @author Dinesh Krishnan
 *
 */

public class ProcessorExample {

	public static void main(String[] args) throws Exception {

		// create the camel context
		CamelContext context = new DefaultCamelContext();

		// adding route to camel context
		context.addRoutes(new RouteBuilder() {
			@Override
			public void configure() throws Exception {
				from("direct:start")
					.process(new MyProcessor())
					.to("seda:end");
			}
		});

		// start the context
		context.start();
		
		// creating producer template
		ProducerTemplate pTemplate = context.createProducerTemplate();
		pTemplate.sendBody("direct:start", "Dinesh Krishnan");
		
		// creating consumer template
		ConsumerTemplate cTemplate = context.createConsumerTemplate();
		String message = cTemplate.receiveBody("seda:end", String.class);
		
		System.out.println(message);

		// stop the context
		context.stop();

	}

}

Output

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Hello Dinesh Krishnan

Hello, folks, I am a founder of dineshkrish.com. I love Java and Open source technologies, If you find my tutorials are useful, please consider making donations to these charities.