Hi,

You can use Wiretaps and an aggregator to do what you're suggesting.
At each step that you want an intermediate result to be available,
wiretap it off to an aggregator and set the batch size of the
aggregator accordingly.

from("direct:consumerEndpoint").wireTap("direct:aggregator").to("direct:requestToSomeEndpointTransformer").to(
                    "direct:someEndpoint").to("direct:aggregator");

from("direct:aggregator").aggregate().header("id").batchSize(2).groupExchanges().to("mock:result");

One thing to note is that groupExchanges() will gather up all the
aggregated exchanges and store them in a property in the exchange. You
get at them via

List<Exchange> grouped = e.getProperty(Exchange.GROUPED_EXCHANGE, List.class);

You'll need to write a custom processor (in place of the mock) to
combine/transform them to your liking as before responding. You can
find a bunch of info about aggregators here

http://camel.apache.org/aggregator.html

ste.

On Thu, Jan 14, 2010 at 12:12 AM, lekkie <lekkie.ay...@gmail.com> wrote:
>
> Hi guys,
>
>
> Just a quick one. I have this scenario where I 'd like to manipulate a
> request and some reponse from an endpoint. The flow below describe what I am
> trying to achieve:
>
> <osgi:camelContext xmlns="http://camel.apache.org/schema/spring";
> trace="true">
>    <route>
>      <from uri="nmr:consumerEndpoint"/>
>      <to uri="xslt:requestToSomeEndpoint.xsl"/>
>      <to uri="nmr:someEndpoint"/>
>      <to uri="xslt:requestToAnotherEndpoint.xsl"/>
>      <to uri="nmr:anotherEndpoint"/>
>    </route>
> </camelcontext>
>
> I'd like the transformation (requestToAnotherEndpoint.xsl) to be able to
> access/manipulate the original request message from nmr:consumerEndpoint and
> the response from nmr:someEndpoint in order to product its output.
>
> Is this scenario possible?
>
> --
> View this message in context: 
> http://old.nabble.com/Request-message-accessibility-manipulation-tp27157259p27157259.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>

Reply via email to