glassfish
  1. glassfish
  2. GLASSFISH-20051

too many dependencies required to make a standalone JMS client

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.2.2
    • Fix Version/s: 4.0
    • Component/s: jms
    • Labels:
      None

      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.

        Activity

        emmanuel_touzery created issue -
        Hide
        emmanuel_touzery added a comment -

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

        Show
        emmanuel_touzery added a comment - 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...
        Hide
        David Zhao added a comment -

        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.

        Show
        David Zhao added a comment - 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 .
        David Zhao made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 4.0 [ 10970 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            David Zhao
            Reporter:
            emmanuel_touzery
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: