java.lang.Object | ||
↳ | org.springframework.jms.listener.endpoint.StandardJmsActivationSpecFactory | |
↳ | org.springframework.jms.listener.endpoint.DefaultJmsActivationSpecFactory |
Default implementation of the JmsActivationSpecFactory
interface.
Supports the standard JMS properties as defined by the JMS 1.5 specification,
as well as Spring's extended "maxConcurrency" and "prefetchSize" settings
through autodetection of well-known vendor-specific provider properties.
An ActivationSpec factory is effectively dependent on the concrete JMS provider, e.g. on ActiveMQ. This default implementation simply guesses the ActivationSpec class name from the provider's class name ("ActiveMQResourceAdapter" -> "ActiveMQActivationSpec" in the same package, or "ActivationSpecImpl" in the same package as the ResourceAdapter class), and populates the ActivationSpec properties as suggested by the JCA 1.5 specification (Appendix B). Specify the 'activationSpecClass' property explicitly if these default naming rules do not apply.
Note: ActiveMQ, JORAM and WebSphere are supported in terms of extended settings (through the detection of their bean property naming conventions). The default ActivationSpec class detection rules may apply to other JMS providers as well.
Thanks to Agim Emruli and Laurie Chan for pointing out WebSphere MQ settings and contributing corresponding tests!
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
logger | Logger available to subclasses |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Protected Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
This implementation maps
SESSION_TRANSACTED onto an
ActivationSpec property named "useRAManagedTransaction", if available
(following ActiveMQ's naming conventions). | |||||||||||
This implementation guesses the ActivationSpec class name from the
provider's class name: e.g.
| |||||||||||
This implementation supports Spring's extended "maxConcurrency"
and "prefetchSize" settings through detecting corresponding
ActivationSpec properties: "maxSessions"/"maxNumberOfWorks" and
"maxMessagesPerSessions"/"maxMessages", respectively
(following ActiveMQ's and JORAM's naming conventions).
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.springframework.jms.listener.endpoint.StandardJmsActivationSpecFactory
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.springframework.jms.listener.endpoint.JmsActivationSpecFactory
|
Logger available to subclasses
This implementation maps SESSION_TRANSACTED
onto an
ActivationSpec property named "useRAManagedTransaction", if available
(following ActiveMQ's naming conventions).
bw | the BeanWrapper wrapping the ActivationSpec object |
---|---|
ackMode | the configured acknowledge mode (according to the constants in javax.jms.Session |
This implementation guesses the ActivationSpec class name from the provider's class name: e.g. "ActiveMQResourceAdapter" -> "ActiveMQActivationSpec" in the same package, or a class named "ActivationSpecImpl" in the same package as the ResourceAdapter class.
adapter | the ResourceAdapter to check |
---|
null
if not determinableThis implementation supports Spring's extended "maxConcurrency" and "prefetchSize" settings through detecting corresponding ActivationSpec properties: "maxSessions"/"maxNumberOfWorks" and "maxMessagesPerSessions"/"maxMessages", respectively (following ActiveMQ's and JORAM's naming conventions).
bw | the BeanWrapper wrapping the ActivationSpec object |
---|---|
config | the configured object holding common JMS settings |