Claus,
That's useful, it would simplify my interface, but it wouldn't let me
leave it alone.
My actual problem is that I need to be able to correlate the exchange
that called my POJO with exchanges generated by calls from my POJO.
To do this I need to access the correlation ID (if it's been set) or the
exchange ID (if it hasn't) and then set them as headers.
The class that actually calls the other routes uses ProducerTemplate and
I'm quite happy for that class to have Camel-specific code in it, but
the business logic class shouldn't need to know anything about the
correlation.
I've been looking at writing a custom InflightRepository, but that would
have to map from thread ID, which won't work with the asynchronous
processing (nor will any other thread-local approach).
If I try to set the correlation ID as a property on my busines logic
POJO I'll run into threading issues (it may be called concurrently).
Thanks
Jim
On 26/07/2011 07:06, Claus Ibsen wrote:
On Tue, Jul 26, 2011 at 7:39 AM, Jim Talbut<jtal...@spudsoft.co.uk> wrote:
Hi,
I have a POJO that benefits from having a non-Camel interface (it means I
can know that the interface matches that of a given web service).
Internally this POJO needs to extract a couple of properties from the
Exchange.
Is there any way to get the "currently executing Exchange" without adding it
as a parameter to the POJO?
Most useful for me would be either a static method or a method on the
CamelContext, because they would allow me to move the Camel-specific
processing into a separate bean.
On trunk I have improved the bean component, so you can bind the
parameters in the method name option.
.to"(bean:myBean?method=myMethod(${body}, ${header.foo},
${header.bar}, 'This is a String'")
More details at:
http://camel.apache.org/bean-binding.html
Thanks
Jim