mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-05-03 04:19:47 +01:00
8567402969
This commit extract spring-related links and recurring external links into asciidoctor attributes to be used by the Antora toolchain. It notably homogenizes links to: - IETF RFCs - Java Community Process JSRs - the Java API Documentation (on the Java 17 version) - Kotlin documentations (on the Kotlinlang.org version) - the Spring Boot reference guide (on the `html` version) This commit also reworks most link attributes to follow a Project-Category-Misc syntax. For example, `spring-boot-docs` rather than `docs-spring-boot`. Finally, it makes an effort to clean up remainders from the previous documentation toolchain, namely the `docs/asciidoc` folder and `modules/ROOT/pages/attributes.adoc` file. Closes gh-26864 Closes gh-31619
88 lines
4.1 KiB
Plaintext
88 lines
4.1 KiB
Plaintext
[[jms-jca-message-endpoint-manager]]
|
|
= Support for JCA Message Endpoints
|
|
|
|
Beginning with version 2.5, Spring also provides support for a JCA-based
|
|
`MessageListener` container. The `JmsMessageEndpointManager` tries to
|
|
automatically determine the `ActivationSpec` class name from the provider's
|
|
`ResourceAdapter` class name. Therefore, it is typically possible to provide
|
|
Spring's generic `JmsActivationSpecConfig`, as the following example shows:
|
|
|
|
[source,xml,indent=0,subs="verbatim,quotes"]
|
|
----
|
|
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
|
|
<property name="resourceAdapter" ref="resourceAdapter"/>
|
|
<property name="activationSpecConfig">
|
|
<bean class="org.springframework.jms.listener.endpoint.JmsActivationSpecConfig">
|
|
<property name="destinationName" value="myQueue"/>
|
|
</bean>
|
|
</property>
|
|
<property name="messageListener" ref="myMessageListener"/>
|
|
</bean>
|
|
----
|
|
|
|
Alternatively, you can set up a `JmsMessageEndpointManager` with a given
|
|
`ActivationSpec` object. The `ActivationSpec` object may also come from a JNDI lookup
|
|
(using `<jee:jndi-lookup>`). The following example shows how to do so:
|
|
|
|
[source,xml,indent=0,subs="verbatim,quotes"]
|
|
----
|
|
<bean class="org.springframework.jms.listener.endpoint.JmsMessageEndpointManager">
|
|
<property name="resourceAdapter" ref="resourceAdapter"/>
|
|
<property name="activationSpec">
|
|
<bean class="org.apache.activemq.ra.ActiveMQActivationSpec">
|
|
<property name="destination" value="myQueue"/>
|
|
<property name="destinationType" value="jakarta.jms.Queue"/>
|
|
</bean>
|
|
</property>
|
|
<property name="messageListener" ref="myMessageListener"/>
|
|
</bean>
|
|
----
|
|
|
|
Using Spring's `ResourceAdapterFactoryBean`, you can configure the target `ResourceAdapter`
|
|
locally, as the following example shows:
|
|
|
|
[source,xml,indent=0,subs="verbatim,quotes"]
|
|
----
|
|
<bean id="resourceAdapter" class="org.springframework.jca.support.ResourceAdapterFactoryBean">
|
|
<property name="resourceAdapter">
|
|
<bean class="org.apache.activemq.ra.ActiveMQResourceAdapter">
|
|
<property name="serverUrl" value="tcp://localhost:61616"/>
|
|
</bean>
|
|
</property>
|
|
<property name="workManager">
|
|
<bean class="org.springframework.jca.work.SimpleTaskWorkManager"/>
|
|
</property>
|
|
</bean>
|
|
----
|
|
|
|
The specified `WorkManager` can also point to an environment-specific thread pool --
|
|
typically through a `SimpleTaskWorkManager` instance's `asyncTaskExecutor` property.
|
|
Consider defining a shared thread pool for all your `ResourceAdapter` instances
|
|
if you happen to use multiple adapters.
|
|
|
|
In some environments, you can instead obtain the entire `ResourceAdapter` object from JNDI
|
|
(by using `<jee:jndi-lookup>`). The Spring-based message listeners can then interact with
|
|
the server-hosted `ResourceAdapter`, which also use the server's built-in `WorkManager`.
|
|
|
|
See the javadoc for {spring-framework-api}/jms/listener/endpoint/JmsMessageEndpointManager.html[`JmsMessageEndpointManager`],
|
|
{spring-framework-api}/jms/listener/endpoint/JmsActivationSpecConfig.html[`JmsActivationSpecConfig`],
|
|
and {spring-framework-api}/jca/support/ResourceAdapterFactoryBean.html[`ResourceAdapterFactoryBean`]
|
|
for more details.
|
|
|
|
Spring also provides a generic JCA message endpoint manager that is not tied to JMS:
|
|
`org.springframework.jca.endpoint.GenericMessageEndpointManager`. This component allows
|
|
for using any message listener type (such as a JMS `MessageListener`) and any
|
|
provider-specific `ActivationSpec` object. See your JCA provider's documentation to
|
|
find out about the actual capabilities of your connector, and see the
|
|
{spring-framework-api}/jca/endpoint/GenericMessageEndpointManager.html[`GenericMessageEndpointManager`]
|
|
javadoc for the Spring-specific configuration details.
|
|
|
|
NOTE: JCA-based message endpoint management is very analogous to EJB 2.1 Message-Driven Beans.
|
|
It uses the same underlying resource provider contract. As with EJB 2.1 MDBs, you can use any
|
|
message listener interface supported by your JCA provider in the Spring context as well.
|
|
Spring nevertheless provides explicit "`convenience`" support for JMS, because JMS is the
|
|
most common endpoint API used with the JCA endpoint management contract.
|
|
|
|
|
|
|