jms-spec
  1. jms-spec
  2. JMS_SPEC-147

Extend the @JMSConnectionFactory annotation to allow a resource reference to be defined

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.0
    • Fix Version/s: None
    • Labels:
      None

      Description

      In JMS 2.0 the @Inject annotation may be used to inject a JMSContext into a Java EE application.

      The @JMSConnectionFactory annotation may be used to specify the "the JNDI lookup name" of the connection factory which should be used. This is the only information about the connection factory that may be specified. The specification is unclear about what this lookup name represents.

      Compare this with the @Resource annotation which may be used to inject a JMS connection factory. This allows the connection factory to be specified using the name, lookup, mappedName, authenticationType, description, shareable and type attributes.

      The @JMSConnectionFactory annotation only allows a single attribute (value) to be specified. Since this is described as the "lookup name" we can assume it corresponds to the lookup attribute of the @Resource annotation, though this isn't stated explicitly.

      The @JMSConnectionFactory annotation doesn't allow any of the other attributes to be specified. This means that some important characteristics of the connection factory cannot be specified when injecting a JMSContext.

      Another consequence of this is that the @JMSConnectionFactory annotation doesn't allow a resource reference name to be defined. This prevents the deployer defining or overriding these values by creating a <resource-ref> element in the deployment descriptor.

      The @JMSConnectionFactory annotation therefore needs to be clarified and extended to allow the same information to be specified as when using a @Resource annotation to inject a JMS connection factory. In addition the specification should state more clearly exactly what the existing value attribute specifies.

        Activity

        Nigel Deakin created issue -
        Nigel Deakin made changes -
        Field Original Value New Value
        Tags jms21-forreview-minor
        Nigel Deakin made changes -
        Description In JMS 2.0 the {{@Inject}} annotation may be used to inject a {{JMSContext}} into a Java EE application.

        The {{@JMSConnectionFactory}} annotation may be used to specify the "the JNDI lookup name" of the connection factory which should be used. This is the only information about the connection factory that may be specified. The specification is unclear about what this lookup name represents.

        Compare this with the {{@Resource}} annotation which may be used to inject a JMS connection factory. This allows the connection factory to be specified using the {{name}}, {{lookup}}, {{mappedName}}, {{<res-auth>}}, {{<description>}}, {{<res-sharing-scope>}} and {{<res-type>}} attributes.

        The {{@JMSConnectionFactory}} annotation only allows a single attribute ({{value}}) to be specified. Since this is described as the "lookup name" then we can assume it corresponds to the {{lookup}} attribute of the {{@Resource}} annotation, though this isn't stated explicitly.

        The {{@JMSConnectionFactory}} annotation doesn't allow any of the other attributes to be specified. This means that some important characteristics of the connection factory cannot be specified when injecting a {{JMSContext}}.

        Another consequence of this is that the {{@JMSConnectionFactory}} annotation doesn't allow a resource reference name to be defined. This prevents the deployer defining or overriding these values by creating a {{<resource-ref>}} element in the deployment descriptor.

        The {{@JMSConnectionFactory}} annotation therefore needs to be clarified and extended to allow the same information to be specified as when using a {{@Resource}} annotation to inject a JMS connection factory. In addition the specification should state more clearly exactly what the existing {{value}} attribute specifies.


        In JMS 2.0 the {{@Inject}} annotation may be used to inject a {{JMSContext}} into a Java EE application.

        The {{@JMSConnectionFactory}} annotation may be used to specify the "the JNDI lookup name" of the connection factory which should be used. This is the only information about the connection factory that may be specified. The specification is unclear about what this lookup name represents.

        Compare this with the {{@Resource}} annotation which may be used to inject a JMS connection factory. This allows the connection factory to be specified using the {{name}}, {{lookup}}, {{mappedName}}, {{authenticationType}}, {{description}}, {{shareable}} and {{type}} attributes.

        The {{@JMSConnectionFactory}} annotation only allows a single attribute ({{value}}) to be specified. Since this is described as the "lookup name" then we can assume it corresponds to the {{lookup}} attribute of the {{@Resource}} annotation, though this isn't stated explicitly.

        The {{@JMSConnectionFactory}} annotation doesn't allow any of the other attributes to be specified. This means that some important characteristics of the connection factory cannot be specified when injecting a {{JMSContext}}.

        Another consequence of this is that the {{@JMSConnectionFactory}} annotation doesn't allow a resource reference name to be defined. This prevents the deployer defining or overriding these values by creating a {{<resource-ref>}} element in the deployment descriptor.

        The {{@JMSConnectionFactory}} annotation therefore needs to be clarified and extended to allow the same information to be specified as when using a {{@Resource}} annotation to inject a JMS connection factory. In addition the specification should state more clearly exactly what the existing {{value}} attribute specifies.


        Nigel Deakin made changes -
        Description In JMS 2.0 the {{@Inject}} annotation may be used to inject a {{JMSContext}} into a Java EE application.

        The {{@JMSConnectionFactory}} annotation may be used to specify the "the JNDI lookup name" of the connection factory which should be used. This is the only information about the connection factory that may be specified. The specification is unclear about what this lookup name represents.

        Compare this with the {{@Resource}} annotation which may be used to inject a JMS connection factory. This allows the connection factory to be specified using the {{name}}, {{lookup}}, {{mappedName}}, {{authenticationType}}, {{description}}, {{shareable}} and {{type}} attributes.

        The {{@JMSConnectionFactory}} annotation only allows a single attribute ({{value}}) to be specified. Since this is described as the "lookup name" then we can assume it corresponds to the {{lookup}} attribute of the {{@Resource}} annotation, though this isn't stated explicitly.

        The {{@JMSConnectionFactory}} annotation doesn't allow any of the other attributes to be specified. This means that some important characteristics of the connection factory cannot be specified when injecting a {{JMSContext}}.

        Another consequence of this is that the {{@JMSConnectionFactory}} annotation doesn't allow a resource reference name to be defined. This prevents the deployer defining or overriding these values by creating a {{<resource-ref>}} element in the deployment descriptor.

        The {{@JMSConnectionFactory}} annotation therefore needs to be clarified and extended to allow the same information to be specified as when using a {{@Resource}} annotation to inject a JMS connection factory. In addition the specification should state more clearly exactly what the existing {{value}} attribute specifies.


        In JMS 2.0 the {{@Inject}} annotation may be used to inject a {{JMSContext}} into a Java EE application.

        The {{@JMSConnectionFactory}} annotation may be used to specify the "the JNDI lookup name" of the connection factory which should be used. This is the only information about the connection factory that may be specified. The specification is unclear about what this lookup name represents.

        Compare this with the {{@Resource}} annotation which may be used to inject a JMS connection factory. This allows the connection factory to be specified using the {{name}}, {{lookup}}, {{mappedName}}, {{authenticationType}}, {{description}}, {{shareable}} and {{type}} attributes.

        The {{@JMSConnectionFactory}} annotation only allows a single attribute ({{value}}) to be specified. Since this is described as the "lookup name" we can assume it corresponds to the {{lookup}} attribute of the {{@Resource}} annotation, though this isn't stated explicitly.

        The {{@JMSConnectionFactory}} annotation doesn't allow any of the other attributes to be specified. This means that some important characteristics of the connection factory cannot be specified when injecting a {{JMSContext}}.

        Another consequence of this is that the {{@JMSConnectionFactory}} annotation doesn't allow a resource reference name to be defined. This prevents the deployer defining or overriding these values by creating a {{<resource-ref>}} element in the deployment descriptor.

        The {{@JMSConnectionFactory}} annotation therefore needs to be clarified and extended to allow the same information to be specified as when using a {{@Resource}} annotation to inject a JMS connection factory. In addition the specification should state more clearly exactly what the existing {{value}} attribute specifies.


          People

          • Assignee:
            Unassigned
            Reporter:
            Nigel Deakin
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated: