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/

Reply via email to