jakartaee / messaging

Jakarta Messaging
https://eclipse.org/ee4j/messaging
Other
39 stars 33 forks source link

Resource adapter: define standard destination and connection factory properties #172

Open glassfishrobot opened 9 years ago

glassfishrobot commented 9 years ago

The resource definition annotation tt>@JMSDestinationDefinition</tt (and the corresponding deployment descriptor element) defines the attributes className, description, properties and resourceAdapter. https://jms-spec.java.net/2.0/apidocs/javax/jms/JMSDestinationDefinition.html

The resource definition annotation tt>@JMSConnectionFactoryDefinition</tt (and the corresponding deployment descriptor element) defines the attributes className, clientId, description, interfaceName, maxPoolSize, minPoolSize, password, properties, resourceAdapter, transactional and user. https://jms-spec.java.net/2.0/apidocs/javax/jms/JMSConnectionFactoryDefinition.html

if the resource being defined is provided by the application server's built-in JMS provider then the application server will know how to set these properties (and which of them are supported).

However if the resource being defined is provided by a resource adapter then the application server has no way of knowing what to do with several of these properties. This is because there are no standards for the properties supported by resource adapter destination and connection factory objects.

To address this, it is proposed to extend chapter 13 "Resource Adapter" of the JMS 2.0 specification. Currently section 13.1 defines a recommended set of activation properties. It is proposed to add two new sections which define a recommended set of connection factory properties and a recommended set of destination properties.

Note that this proposal applies to resource adapters only, and since the provision of a resource adapter is optional, it will be optional for JMS providers to support these properties.

A minimal set of properties is proposed initially, corresponding to those defined in the resource definitions above:

Recommended ManagedConnectionFactory properties

| @JMSConnectionFactory attribute | ManagedConnectionFactory property | Description | | clientId | clientId | Client id to use for connection | | description | description | Description of this JMS connection factory | | user | user | User name to use for connection authentication | | password | password | Password to use for connection authentication |

Recommended Queue and Topic properties

| @JMSDestinationDefinition attribute | Queue and Topic property | Description | | description | description | Description of this JMS connection factory | | destinationName | destinationName | Name of the queue or topic |

To avoid possible name clashes with existing JMS resource adapters, it may be desirable to prefix these properties with (say) "JMS"

How are these properties set?

Since this proposal applies only to resource adapter objects the API for setting these properties is already defined by the JCA specification, which is to use javabean setter methods such as setUser.

(For this reason there is no need to define a standard way for the application server to set the properties defined in the properties attribute).

Affected Versions

[2.0, JMS 2.0 rev A]

glassfishrobot commented 6 years ago
glassfishrobot commented 9 years ago

@glassfishrobot Commented Reported by @nigeldeakin

glassfishrobot commented 7 years ago

@glassfishrobot Commented This issue was imported from java.net JIRA JMS_SPEC-172