On 8/17/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote: > I'm not sure how to implement it either :-( > Camel does not really have a notion of InOut.
Well, it kinda does - a message Exchange can be in-only, in-out or out-only from the API perspective. i.e. any Camel message Exchange can have an in message, or an in and out. The main difference is there's not an expicit 'createInOnly() v createInOut()) method. The idea being that the MEP could be configured on the endpoint/component as internal metadata or could be a header on the exchange etc. i.e. rather than making the API really different; each processor/component can be kinda polymorphic. Am sure we might need to extend the routing DSL though to deal with InOnly v InOut components in a cleaner way. Right now Camel tries its best to do the right thing. e.g. if you go in -> A -> B -> C then if A is InOnly and it mutates the IN message, its passed to B; if B generates an OUT, then the OUT is passed as the IN to C etc. The idea was to try simplify the component developers perspective of working on the bus; so the routing DSL could try do the right thing; then leave it to the endpoints to figure out how to map the different MEPs to their technologies. e.g. an endpoint could map an InOut to 2 different InOnly message exchanges etc. > Are you talking about the jbi -> camel side, or the > camel -> jbi side ? I think the main issue is that right now when a camel message exchange is being dispatched into JBI, its currently no clear way of knowing what kind of JBI exchange type to create. We could fix this by having some kinda property on the Camel Exchange to tell the servicemix-camel what kind of JBI MessageExchange is required. (We could then configure this on a per exchange instance basis, or default it from some configuration on the component or endpoint etc). e.g. take a look at the JbiBinding.createJbiMessageExchange() method. I've just patched this method so that a message exchange pattern property can be specified on a Camel Exchange which will be used to create the right JBI MessageExchange type; if its not specified on the Exchange then its defaulted from the JbiBinding object. Thoughts? -- James ------- http://macstrac.blogspot.com/
