1. What's new in Spring Integration 2.2?

This chapter provides an overview of the new features and improvements
that have been introduced with Spring Integration 2.2 If you are interested
in even more detail, please take a look at the Issue Tracker tickets that
were resolved as part of the 2.2 development process:

1.1 General

1.1.1 Spring 3.1

Spring Integration now uses Spring 3.1.

1.1.2 Outbound Gateways

The XML Namespace support adds the reply-timeout
attribute to the following Outbound Gateways:

Amqp Outbound Gateway

File Outbound Gateway

Ftp Outbound Gateway

Sftp Outbound Gateway

Ws Outbound Gateway

1.1.3 Spring-AMQP 1.1

Spring Integration now uses Spring AMQP 1.1. This enables several features
to be used within a Spring Integration application, including...

1.1.6 JDBC Adapter - Stored Procedures Components

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 Section 17.5, “Stored Procedures”.

JMX Support

The Stored Procedure components now provide basic JMX support,
exposing some of their properties as MBeans:

Stored Procedure Name

Stored Procedure Name Expression

JdbcCallOperations Cache Statistics

1.1.7 JDBC Adapter - 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.

1.1.8 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:

1.1.9 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.

1.1.10 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:

1.1.11 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.