<< Back to previous view

[GLASSFISH-20051] too many dependencies required to make a standalone JMS client Created: 26/Mar/13  Updated: 15/Aug/13  Resolved: 15/Aug/13

Status: Resolved
Project: glassfish
Component/s: jms
Affects Version/s: 3.1.2.2
Fix Version/s: 4.0

Type: Improvement Priority: Major
Reporter: emmanuel_touzery Assignee: David Zhao
Resolution: Fixed Votes: 0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Tags:
Participants: David Zhao and emmanuel_touzery

 Description   

The dependencies required to make a standalone (outside of any container) JMS client for Glassfish are too large.

According to this page:
http://docs.oracle.com/cd/E18930_01/html/821-2418/gkusn.html#gkuqa

We need gf-client and imqjmsra. Now here is another independent problem, that realistically people won't just "reference JAR files"; we need maven dependencies. There is a gf-client maven package, for imqjmsra it's less obvious, and people are arguing which maven dependencies are needed in this case:

http://stackoverflow.com/questions/5675024/with-which-maven-dependencies-can-i-create-a-standalone-jms-client-for-glassfish/14892931
http://stackoverflow.com/questions/10115400/glassfish-application-not-working-with-maven-library-gf-client/10123034
http://javadude.wordpress.com/2009/01/03/tutorial-starting-with-glassfish-and-jms/

In our case we ended up referencing glassfish-embedded, which gives us a 70Mb deployment (all just to write to a JMS queue!). On top of that, because of the huge scale of those dependencies, we had conflicts and strange behaviour at runtime, and gave up integrating weld-se in that client application:
http://stackoverflow.com/questions/15571271/weld-se-and-netbeans-debugging-not-working

We think writing to a JMS queue from a standalone client ought to require minimal dependencies, all tied to JMS and nothing else, and there should be clear instructions on the maven dependencies which are required.



 Comments   
Comment by emmanuel_touzery [ 26/Mar/13 01:49 PM ]

To expand a little bit more.

When I do
jndiContext.lookup(jmsQueueFactoryName);

I get back a com.sun.messaging.jms.ra.ConnectionFactoryAdapter object, not a standard jEE object. And if I search which maven packages provide that class, the only one I can find is glassfish-embedded-all...

Comment by David Zhao [ 15/Aug/13 05:40 AM ]

According to http://docs.oracle.com/cd/E18930_01/html/821-2418/gkusn.html#gkuqa, gf-client.jar and imqjmsra.jar are required for standalone jms client. So it should be same for maven artifacts.

Currently gf-client.jar and imqjmsra.jar are available at http://search.maven.org.

Generated at Thu Apr 24 12:07:44 UTC 2014 using JIRA 4.0.2#472.