Changes between 2.1 and 2.2New ComponentsRedisStore Inbound and Outbound Channel Adapters
Spring Integration now has RedisStore Inbound and Outbound Channel Adapters
allowing you to write and read Message payloads to/from Redis collection(s).
For more information please see
and
.
MongoDB Inbound and Outbound Channel Adapters
Spring Integration now has MongoDB Inbound and Outbound Channel Adapters
allowing you to write and read Message payloads to/from a MongoDB document store.
For more information please see
and
.
JPA Endpoints
Spring Integration now includes components for the Java Persistence
API (JPA) for retrieving and persisting JPA entity objects. The
JPA Adapter includes the following components:
Inbound Channel AdapterOutbound Channel AdapterUpdating Outbound GatewayRetrieving Outbound Gateway
For more information please see General ChangesSpring 3.1 Used by Default
Spring Integration now uses Spring 3.1.
Adding Behavior to Endpoints
The ability to add an <advice-chain/> to a poller has been available for some time.
However, the behavior added by this affects the entire integration flow.
It did not address the ability to add, say, retry, to an individual
endpoint. The 2.2. release introduces the <request-handler-advice-chain/>
to many endpoints.
In addition, 3 standard Advice classes have been provided for this purpose:
MessageHandlerRetryAdviceMessageHandlerCircuitBreakerAdviceExpressionEvaluatingMessageHandlerAdvice
For more information, see .
Transaction Synchronization and Pseudo Transactions
Pollers can now participate in Spring's Transaction Synchronization
feature. This allows for synchronizing such operations as renaming files by an inbound channel
adapter depending on whether the transaction commits, or rolls back.
In addition, these features can be enabled when there is not a 'real' transaction present,
by means of a PseudoTransactionManager.
For more information see .
File Adapter - Improved File Overwrite/Append Handling
When using the File Oubound Channel Adapter
or the File Outbound Gateway, a new
mode property was added. Prior to
Spring Integration 2.2, target files were
replaced when they existed. Now you can specify
the following options:
REPLACE (Default)APPENDFAILIGNORE
For more information please see .
Reply-Timeout added to more Outbound Gateways
The XML Namespace support adds the reply-timeout
attribute to the following Outbound Gateways:
Amqp Outbound GatewayFile Outbound GatewayFtp Outbound GatewaySftp Outbound GatewayWs Outbound GatewaySpring-AMQP 1.1
Spring Integration now uses Spring AMQP 1.1. This enables several features
to be used within a Spring Integration application, including...
A fixed reply queue for the outbound gatewayHA (mirrored) queuesPublisher ConfirmsReturned MessagesSupport for Dead Letter Exchanges/Dead Letter QueuesJDBC Support - Stored Procedures ComponentsSpEL Support
When using the Stored Procedure components of the Spring Integration
JDBC Adapter, you can now provide Stored Procedure Names or
Stored Function Names using Spring Expression Language (SpEL).
This allows you to specify the Stored Procedures to be invoked
at runtime. For example, you can provide Stored Procedure names
that you would like to execute via Message Headers. For more
information please see .
JMX Support
The Stored Procedure components now provide basic JMX support,
exposing some of their properties as MBeans:
Stored Procedure NameStored Procedure Name ExpressionJdbcCallOperations Cache StatisticsJDBC Support - Outbound Gateway
When using the JDBC Outbound Gateway, the update query is no longer
mandatory. You can now provide solely a select query using the request
message as a source of parameters.
JDBC Support - Channel-specific Message Store Implementation
A new Message Channel-specific Message Store
Implementation has been added, providing a more scalable solution
using database-specific SQL queries. For more information please
see: .
Orderly Shutdown
A method stopActiveComponents() has been
added to the IntegrationMBeanExporter. This allows a Spring Integration
application to be shut down in an orderly manner, disallowing new inbound
messages to certain adapters and waiting for some time to allow in-flight
messages to complete.
JMS Oubound Gateway Improvements
The JMS Outbound Gateway can now be configured to use a
MessageListener container to receive
replies. This can improve performance of the gateway.
object-to-json-transformer
The ObjectToJsonTransformer now sets the
content-type header to application/json
by default. For more information see .
HTTP Support
Java serialization over HTTP is no longer enabled by default. Previously, when
setting a expected-response-type to a Serializable
object, the Accept header was not properly set up. The
SerializingHttpMessageConverter has now been updated
to set the Accept header to application/x-java-serialized-object.
However, because this could cause incompatibility with existing applications,
it was decided to no longer automatically add this converter to the HTTP endpoints.
If you wish to use Java serialization, you will need to add the
SerializingHttpMessageConverter to the appropriate
endpoints, using the message-converters attribute, when using
XML configuration, or using the setMessageConverters() method.
Alternatively, you may wish to consider using JSON instead which is enabled
by simply having Jackson on the classpath.