Looks like the big guys finally got their act together and wrote both a specification for JMS IRI format and a SOAP JMS binding (via Dan Diephouse). Now, I’m certainly not the right person to judge the quality of the SOAP binding, but I do like the fact that there might actually be one soonish.
On the IRI format, its currently only based on using JNDI for identifying the connection factory and destination. However, with JNDI falling out a fashon the last couple of years and JMS commonly running outside the container, I find this a bit lacking. However, the spec leaves some leeway with the following quote:
JMS relies heavily on JNDI for interoperable functionality (vendor extensions may provide alternate means of acquiring a javax.jms.Destination, but only JNDI is interoperably specified).
That only covers the destination, not the connection factory. I would prefer that the spec more clearly allowed for both JNDI based and a more “freeform” syntax that’s up to providers to define. How about:
and (for MQ in this example):
ActiveMQ and WebSphere MQ already has defined similar URL formats that could be adapted. JMS is inherently not interoperable between different providers anyway, so having these provider specific URLs wouldn’t hurt. And it would allow using them without having a JNDI implementation around.