-----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-----

Reply via email to