diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index d58a44bf849..948cf9c78d0 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -63,6 +63,11 @@ import org.springframework.util.ObjectUtils; * lead to queue/topic mode, respectively; generic {@code createConnection} * calls will lead to a JMS 1.1 connection which is able to serve both modes. * + *
As of Spring Framework 5, this class supports JMS 2.0 {@code JMSContext} + * calls and therefore requires the JMS 2.0 API to be present at runtime. + * It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API) + * as long as no actual JMS 2.0 calls are triggered by the application's setup. + * *
NOTE: This ConnectionFactory requires explicit closing of all Sessions * obtained from its shared Connection. This is the usual recommendation for * native JMS access code anyway. However, with this ConnectionFactory, its use diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java index eb3c2c94816..6479e675fde 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/DelegatingConnectionFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,6 +36,11 @@ import org.springframework.util.Assert; * if necessary (e.g. when running JMS 1.0.2 API based code against a generic * JMS 1.1 ConnectionFactory, such as ActiveMQ's PooledConnectionFactory). * + *
As of Spring Framework 5, this class supports JMS 2.0 {@code JMSContext} + * calls and therefore requires the JMS 2.0 API to be present at runtime. + * It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API) + * as long as no actual JMS 2.0 calls are triggered by the application's setup. + * *
This class allows for being subclassed, with subclasses overriding only * those methods (such as {@link #createConnection()}) that should not simply * delegate to the target ConnectionFactory. diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java index bb4fa8cd5f8..7e8f7fb1e42 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java @@ -61,6 +61,11 @@ import org.springframework.util.ClassUtils; * lead to queue/topic mode, respectively; generic {@code createConnection} * calls will lead to a JMS 1.1 connection which is able to serve both modes. * + *
As of Spring Framework 5, this class supports JMS 2.0 {@code JMSContext} + * calls and therefore requires the JMS 2.0 API to be present at runtime. + * It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API) + * as long as no actual JMS 2.0 calls are triggered by the application's setup. + * *
Useful for testing and standalone environments in order to keep using the * same Connection for multiple {@link org.springframework.jms.core.JmsTemplate} * calls, without having a pooling ConnectionFactory underneath. This may span diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java b/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java index 6b096569c8d..f4eb2fdb42f 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java @@ -72,6 +72,11 @@ import org.springframework.util.ClassUtils; * (e.g. to perform manual transaction control). For typical application purposes, * simply use the standard JMS Session interface. * + *
As of Spring Framework 5, this class delegates JMS 2.0 {@code JMSContext} + * calls and therefore requires the JMS 2.0 API to be present at runtime. + * It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API) + * as long as no actual JMS 2.0 calls are triggered by the application's setup. + * * @author Juergen Hoeller * @since 2.0 * @see UserCredentialsConnectionFactoryAdapter diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java index 6b2ab0d12db..688d1158bfc 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java @@ -63,6 +63,11 @@ import org.springframework.util.StringUtils; * definition just for the option of implicitly passing in user credentials * if the particular target ConnectionFactory requires it. * + *
As of Spring Framework 5, this class delegates JMS 2.0 {@code JMSContext}
+ * calls and therefore requires the JMS 2.0 API to be present at runtime.
+ * It may nevertheless run against a JMS 1.1 driver (bound to the JMS 2.0 API)
+ * as long as no actual JMS 2.0 calls are triggered by the application's setup.
+ *
* @author Juergen Hoeller
* @since 1.2
* @see #createConnection
diff --git a/src/docs/asciidoc/integration.adoc b/src/docs/asciidoc/integration.adoc
index c7168f8d83a..6ce8b51cc3e 100644
--- a/src/docs/asciidoc/integration.adoc
+++ b/src/docs/asciidoc/integration.adoc
@@ -24,17 +24,16 @@ usual (Spring) POJOs. Currently, Spring supports the following remoting technolo
* *Remote Method Invocation (RMI)*: Through the use of `RmiProxyFactoryBean` and
`RmiServiceExporter`, Spring supports both traditional RMI (with `java.rmi.Remote`
- interfaces and `java.rmi.RemoteException`) and transparent remoting through RMI invokers
- (with any Java interface).
+ interfaces and `java.rmi.RemoteException`) and transparent remoting through RMI
+ invokers (with any Java interface).
* *Spring's HTTP invoker*: Spring provides a special remoting strategy that allows
for Java serialization though HTTP, supporting any Java interface (as the RMI
- invoker does). The corresponding support classes are `HttpInvokerProxyFactoryBean` and
- `HttpInvokerServiceExporter`.
+ invoker does). The corresponding support classes are `HttpInvokerProxyFactoryBean`
+ and `HttpInvokerServiceExporter`.
* *Hessian*: By using Spring's `HessianProxyFactoryBean` and the
`HessianServiceExporter`, you can transparently expose your services through the
lightweight binary HTTP-based protocol provided by Caucho.
-* *JAX-WS*: Spring provides remoting support for web services through JAX-WS (the
- successor of JAX-RPC, as introduced in Java EE 5 and Java 6).
+* *JAX-WS*: Spring provides remoting support for web services through JAX-WS.
* *JMS*: Remoting by using JMS as the underlying protocol is supported through the
`JmsInvokerServiceExporter` and `JmsInvokerProxyFactoryBean` classes.
* *AMQP*: Remoting by using AMQP as the underlying protocol is supported by the Spring
@@ -627,7 +626,6 @@ and Spring's `@Autowired` configuration annotation is still honored):
public List