jms-spec
  1. jms-spec
  2. JMS_SPEC-62

Define standard way to create JMS Destination objects from within a Java EE application

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Invalid
    • Affects Version/s: 1.1
    • Fix Version/s: None
    • Labels:
      None

      Description

      The JMS 1.1 spec states in section 2.3 that JMS Destinations (Queue and Topic) are administered objects for the following reason:

      It is also expected there will be major differences in how a provider's system is installed and administered. If JMS clients are to be portable, they must be isolated from these proprietary aspects of a provider.

      In practice however, there is often only very little information needed to create a basic Destination that is suitable for a lot of use-cases and there aren't really any major differences there. Especially if such Destinations are completely used internally in the application, they don't necessarily need to be administered objects. Many Java EE servers do make it possible to define Destinations from within the application, but every implementation has a different way to do this. This hurts portability.

      For instance;

      JBoss AS 6.x

      *-hornetq-jms.xml
      <configuration xmlns="urn:hornetq"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd"
      >    
          <queue name="myQueue">
              <entry name="/queue/myQueue" />
          </queue>
      </configuration>
      

      Glassfish 3.1.x

      META-INF/glassfish-resources.xml
      <!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" 
          "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
      <resources>
          <admin-object-resource res-adapter="jmsra" res-type="javax.jms.Queue" jndi-name="java:app/myQueue" >        
              <property name="Name" value="myQueue"/>
          </admin-object-resource>
      </resources>
      

      As can be seen in these two examples, all that the user needs to declare is a name and whether a queue or topic is required.

      I would like to propose to define a standard way to define Destinations from within a Java EE application, analogous to how JDBC datasources can be defined via a DataSourceDefinition annotation and a corresponding <data-source> element in application.xml.

        Activity

        arjan tijms created issue -
        Nigel Deakin made changes -
        Field Original Value New Value
        Tags destination javaee destination javaee pd20-planned
        Nigel Deakin made changes -
        Tags destination javaee pd20-planned destination javaee
        Nigel Deakin made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Invalid [ 6 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            arjan tijms
          • Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: