I am working on a versioning strategy for our SOAP services. After looking at various approaches, I decided to use multiplex endpoints similar to the MediatorInInterceptor in the versioning systest. My only concern was that I saw where this isn't a "normal usecase". I guess I'm not normal, so I went ahead and started hacking away.
I have this working fine for HTTP requests. Unfortunately, this does not work for JMS requests due to the way endpoints are created in the getDestination method of JMSTransportFactory. The HTTPTransportFactory maintains a registry of destinations based on the endpoint address. If I have multiplex enabled endpoints using the same address it does not create a new destination. When using a JMS endpoint, the transport factory always creates a new destination when the getDestination method is called. I was able to work around this by creating a custom transport that mirrors the functionality of the JMSTransportFactory. The only difference is that it maintains a map of destinations similar to the HTTPTransportFactory. Using this approach I am able to get multiplexed JMS endpoints working as well. Does anyone see any issues with this approach? Would this be a useful enhancement to the JMSTransportFactory? Thanks!
