Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.
ProcessorThe Processor interface is used to implement consumers of message exchanges or to implement a Message Translator Using a processor in a routeOnce you have written a class which implements processor like this... public class MyProcessor implements Processor { public void process(Exchange exchange) throws Exception { // do something... } } You can then easily use this inside a route by declaring the bean in Spring, say via the XML (or registering it in JNDI if that is your Registry) <bean id="myProcessor" class="com.acme.MyProcessor"/> Then in Camel you can do from("activemq:myQueue").to("myProcessor"); Using the process DSLIn your route you can also use the Processor myProcessor = new MyProcessor(); ... from("activemq:myQueue").process(myProcessor); If you need to lookup the processor in the Registry then you should use the processRef DSL: from("activemq:myQueue").processRef("myProcessor"); Why use process when you can use to instead?The process can be used in routes as an anonymous inner class such: from("activemq:myQueue").process(new Processor() { public void process(Exchange exchange) throws Exception { String payload = exchange.getIn().getBody(String.class); // do something with the payload and/or exchange here exchange.getIn().setBody("Changed body"); } }).to("activemq:myOtherQueue"); This is usable for quickly whirling up some code. If the code in the inner class gets a bit more complicated it is of course advised to refactor it into a separate class. Turning your processor into a full ComponentThere is a base class called ProcessorEndpoint which supports the full Endpoint semantics given a Processor instance. So you just need to create a Component class by deriving from DefaultComponent which returns instances of ProcessorEndpoint. For more details see Writing Components See Also |