I'm having a number of issues running OpenMQ in embedded mode, i.e.
using a com.sun.messaging.jmq.jmsclient.runtime.BrokerInstance:
- The org.glassfish.mq:imq:4.5.2 Maven artifact does contain the
ClientRuntime class required for bootstrapping a BrokerInstance, but it
is missing the BrokerEventListener required by BrokerInstance.init().
- The MQ Maven artifacts appear to be incomplete in general. The
org.glassfish.mq group at least only has a small subset of the libraries
contained in glassfish3/mq/lib in a full GlassFish 3.1.2 distribution.
- Building a classpath manually (i.e. without Maven), using the
imqbroker.jar from the GlassFish distribution, I was able to launch a
BrokerInstance, but this only works when the -imqhome argument is
pointing to the glassfish3/mq directory. It seems that OpenMQ requires
a number of property files and does not have any defaults for them when
running on an empty home directory.
All in all, this makes OpenMQ pretty unusable for embedded applications.
I'm now using ActiveMQ which has a Maven artifact with a consistent set
of transitive dependencies and does not require an installation area.
Is there anything missing in my OpenMQ setup? If not, is there any
chance that Embedded OpenMQ will work as smoothly as ActiveMQ for Maven
users in a coming release?
Best regards,
Harald