|
Page Edited :
CAMEL :
How do I write a custom Processor which sends multiple messages
How do I write a custom Processor which sends multiple messages has been edited by James Strachan (Jun 23, 2008). Content:How do I write a custom Processor which sends multiple messages?You could use a Splitter or use multiple Message Translator instances in your route. Or you could write a custom processor which is injected with a ProducerTemplate instance that just generates N messages... class MyProcessor implements Processor {
ProducerTemplate<Exchange> producer;public void setProducer(ProducerTemplate<Exchange> producer) { this.producer = producer; } public Exchange process(Exchange inExchange) { // some loop for each message for (String template in templates) { // lets send a new exchange to the producers default destination // being called back so we can customize the message producer.send(new Processor() { public Exchange process(Exchange outExchange) { outExchange.getIn().setBody("This is the body"); // set some headers too? } }); } } Then the ProducerTemplate can be injected - configured in spring.xml with its default URI <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> <template id="myTemplate" defaultEndpoint="activemq:someQueue"/> </camelContext> <bean id="foo" class="MyProducer"> <property name="producer" ref="myTemplate"/> </bean> Note that the default output URI is inherited from the <template/> configuration. If you prefer you could specify that in the producer.send() method call |
Powered by
Atlassian Confluence
(Version: 2.2.9 Build:#527 Sep 07, 2006)
-
Bug/feature request
Unsubscribe or edit your notifications preferences
Unsubscribe or edit your notifications preferences
