-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Tomorrow I plan to try to fix this issue but if anyone sees a flaw in
my design please stop beforehand.
Today I finally resolved the problem of how does ServiceMix know to
which component it should send the Message Exchange (ME) back even
though it uses the wrong Service Name. Inside the
AbstractFlow.doRouting() it uses the SourceId from the ME to find the
correct Binding Component (BC). That is why in my test project the
call goes back tot he Bean BC even though it tries to call a service
that is actually based on a Script BC. This makes me hopeful that
applying the same logic to the service name could fix the issue.
That is what I want to do to fix it:
- - service name is removed from the packet and placed inside the ME
(maybe also the endpoint)
- - the ME.setServiceName() is actually set on the MIRROR.serviceName
member (so that I don't have to change the logic of switching the ME
with its MIRROR)
- - the consumer's service name is set on the ME before the ME is sent
onto the flow. This is either done on the Message Exchange Factory or
on the Delivery Channel which is probably the better choice because
then on the way back the service name of the provider can also be set
if not already done). I just have to figure out how to obtain the
service name of the sending SU from within the Delivery Channel.
I think that should do the trick even though I don't know what the
implications on the SYNCHRONOUS ME are and hope that I am not going
to open Pandora's Box.
Thanks - Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iD8DBQFHGADWs4gPTNnP0gkRAsNpAJ9knS8kX0NfIbAMW+uGgBjIN0i3zQCfceDi
rdw1L46NBoZnzqQzLYILOEw=
=VDq2
-----END PGP SIGNATURE-----