INT-2195 - Add 'What's new in 2.1' to docs

For reference see: https://jira.springsource.org/browse/INT-2195
This commit is contained in:
Gunnar Hillert
2011-11-10 01:24:00 -05:00
committed by Mark Fisher
parent e20c0e0efa
commit c348f8c3fb
7 changed files with 604 additions and 251 deletions

View File

@@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="migration-1.0-2.0"
xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Changes between 1.0 and 2.0</title>
<para>
For a detailed migration guide in regards to upgrading an existing application
that uses Spring Integration older than version 2.0, please see:
</para>
<para>
<ulink url="http://www.springsource.org/node/2976"/>
</para>
<section id="migration-spring-30-support">
<title>Spring 3 support</title>
<para>
Spring Integration 2.0 is built on top of Spring 3.0.5 and makes many of its features available to our users.
</para>
<section id="spel-support">
<title>Support for the Spring Expression Language (SpEL)</title>
<para>
You can now use SpEL expressions within the <emphasis>transformer, router, filter,
splitter, aggregator, service-activator, header-enricher</emphasis>, and many more elements of the
Spring Integration core namespace as well as various adapters.
There are many samples provided throughout this manual.
</para>
</section>
<section id="conversion-support">
<title>ConversionService and Converter</title>
<para>
You can now benefit from <emphasis>Conversion Service</emphasis> support provided with Spring while configuring
many Spring Integration components such as <ulink url="http://www.eaipatterns.com/DatatypeChannel.html">Datatype Channel</ulink>.
See <xref linkend="channel-implementations"/> as well <xref linkend="service-activator-introduction"/>.
Also, the SpEL support mentioned in the previous point also relies upon the ConversionService. Therefore, you
can register Converters once, and take advantage of them anywhere you are using SpEL expressions.
</para>
</section>
<section id="task-scheduler-poller-support">
<title>TaskScheduler and Trigger</title>
<para>
Spring 3.0 defines two new strategies related to scheduling: <emphasis>TaskScheduler and Trigger</emphasis>
Spring Integration (which uses a lot of scheduling) now builds upon these. In fact, Spring Integration 1.0
had originally defined some of the components (e.g. CronTrigger) that have now been migrated into Spring 3.0's
core API. Now, you can benefit from reusing the same components within the entire Application Context (not just
Spring Integration configuration). Configuration of Spring Integration Pollers has been greatly simplified
as well by providing attributes for directly configuring rates, delays, cron expressions, and trigger references.
See <xref linkend="channel-adapter"/> for sample configurations.
</para>
</section>
<section id="rest-support">
<title>RestTemplate and HttpMessageConverter</title>
<para>
Our outbound HTTP adapters now delegate to Spring's RestTemplate for executing the HTTP request and handling its response.
This also means that you can reuse any custom HttpMessageConverter implementations.
See <xref linkend="http-outbound"/> for more details.
</para>
</section>
</section>
<section id="new-eip">
<title>Enterprise Integration Pattern Additions</title>
<para>
Also in 2.0 we have added support for even more of the patterns described in Hohpe and Woolf's
<ulink url="http://www.eaipatterns.com/">Enterprise Integration Patterns</ulink> book.
</para>
<section id="new-message-history">
<title>Message History</title>
<para>
We now provide support for the <ulink url="http://www.eaipatterns.com/MessageHistory.html">Message History</ulink> pattern
allowing you to keep track of all traversed components, including the name of each channel and endpoint as well as the timestamp
of that traversal. See <xref linkend="message-history"/> for more details.
</para>
</section>
<section id="new-message-store">
<title>Message Store</title>
<para>
We now provide support for the <ulink url="http://www.eaipatterns.com/MessageStore.html">Message Store</ulink> pattern.
The Message Store provides a strategy for persisting messages on behalf of any process whose scope extends beyond a single
transaction, such as the Aggregator and Resequencer. Many sections of this document provide samples on how to use a Message Store as it
affects several areas of Spring Integration. See <xref linkend="claim-check"/>,
<xref linkend="channel"/>, <xref linkend="aggregator"/>, <xref linkend="jdbc"/>, and <xref linkend="resequencer"/> for more details
</para>
</section>
<section id="new-claim-check">
<title>Claim Check</title>
<para>
We have added an implementation of the <ulink url="http://www.eaipatterns.com/StoreInLibrary.html">Claim Check</ulink> pattern.
The idea behind the Claim Check pattern is that you can exchange a Message payload for a "claim ticket" and vice-versa.
This allows you to reduce bandwidth and/or avoid potential security issues when sending Messages across channels.
See <xref linkend="claim-check"/> for more details.
</para>
</section>
<section id="new-control-bus">
<title>Control Bus</title>
<para>
We have provided implementations of the <ulink url="http://www.eaipatterns.com/ControlBus.html">Control Bus</ulink> pattern which
allows you to use messaging to manage and monitor endpoints and channels. The implementations include both a SpEL-based approach
and one that executes Groovy scripts.
See <xref linkend="control-bus"/> and <xref linkend="groovy-control-bus"/> for more details.
</para>
</section>
</section>
<section id="new-adapters">
<title>New Channel Adapters and Gateways</title>
<para>
We have added several new Channel Adapters and Messaging Gateways in Spring Integration 2.0.
</para>
<section id="new-ip">
<title>TCP/UDP Adapters</title>
<para>
We have added Channel Adapters for receiving and sending messages over the TCP and UDP internet protocols.
See <xref linkend="ip"/> for more details. Also, you can checkout the following blog:
<ulink url="http://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/">TCP/UDP support</ulink>
</para>
</section>
<section id="new-twitter">
<title>Twitter Adapters</title>
<para>
Twitter adapters provides support for sending and receiving Twitter Status
updates as well as Direct Messages. You can also perform Twitter Searches with an inbound Channel Adapter.
See <xref linkend="twitter"/> for more details.
</para>
</section>
<section id="new-xmpp">
<title>XMPP Adapters</title>
<para>
The new XMPP adapters support both Chat Messages and Presence events. See <xref linkend="xmpp"/> for more details.
</para>
</section>
<section id="new-ftp">
<title>FTP/FTPS Adapters</title>
<para>
Inbound and outbound File transfer support over FTP/FTPS is now available. See <xref linkend="ftp"/> for more details.
</para>
</section>
<section id="new-sftp">
<title>SFTP Adapters</title>
<para>
Inbound and outbound File transfer support over SFTP is now available. See <xref linkend="sftp"/> for more details.
</para>
</section>
<section id="new-feed">
<title>Feed Adapters</title>
<para>
We have also added Channel Adapters for receiving news feeds (ATOM/RSS). See <xref linkend="feed"/> for more details.
</para>
</section>
</section>
<section id="new-other">
<title>Other Additions</title>
<section id="new-groovy">
<title>Groovy Support</title>
<para>
With Spring Integration 2.0 we've added Groovy support allowing you to
use Groovy scripting language to provide integration and/or business logic.
See <xref linkend="groovy"/> for more details.
</para>
</section>
<section id="new-map-transformer">
<title>Map Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from a Map. See <xref linkend="transformer"/> for more details.
</para>
</section>
<section id="new-json-transformer">
<title>JSON Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from JSON. See <xref linkend="transformer"/> for more details.
</para>
</section>
<section id="new-serialize-transformer">
<title>Serialization Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from byte arrays.
They also support the Serializer and Deserializer strategy interfaces that have been added as of Spring 3.0.5.
See <xref linkend="transformer"/> for more details.
</para>
</section>
</section>
<section id="new-refactoring">
<title>Framework Refactoring</title>
<para>
The core API went through some significant refactoring to make it simpler and more usable. Although we anticipate
that the impact to the end user should be minimal, please read through this document to find what was
changed. Especially, visit <xref linkend="dynamic-routers"/> , <xref linkend="gateway"/>, <xref linkend="http-outbound"/>,
<xref linkend="message"/>, and <xref linkend="aggregator"/> for more details. If you are depending directly on some of
the core components (Message, MessageHeaders, MessageChannel, MessageBuilder, etc.), you will notice that you need to
update any import statements. We restructured some packaging to provide the flexibility we needed for extending the
domain model while avoiding any cyclical dependencies (it is a policy of the framework to avoid such "tangles").
</para>
</section>
<section id="new-infrastructure">
<title>New Source Control Management and Build Infrastructure</title>
<para>
With Spring Integration 2.0 we have switched our build environment to use Git for source control. To access our repository simply follow this URL:
<ulink url="http://git.springsource.org/spring-integration">http://git.springsource.org/spring-integration</ulink>.
We have also switched our build system to <ulink url="http://gradle.org/">Gradle</ulink>.
</para>
</section>
<section id="new-samples">
<title>New Spring Integration Samples</title>
<para>
With Spring Integration 2.0 we have decoupled the samples from our main release distribution. Please read this blog to get more info
<ulink url="http://blog.springsource.com/2010/09/29/new-spring-integration-samples/">New Spring Integration Samples</ulink>
We have also created many new samples, including samples for every new Adapter.
</para>
</section>
<section id="new-sts">
<title>SpringSource Tool Suite Visual Editor for Spring Integration</title>
<para>
There is an amazing new visual editor for Spring Integration included within the latest version of SpringSource Tool Suite.
If you are not already using STS, please download it here:
</para>
<para>
<ulink url="http://www.springsource.com/landing/best-development-tool-enterprise-java"/>
</para>
</section>
</section>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="migration-2.0-2.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Changes between 2.0 and 2.1</title>
<para>
For an overview of the changes in Spring Integration 2.1 since version 2.0,
please see <xref linkend="whats-new"/>.
</para>
</section>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<appendix xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="history"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Change History</title>
<xi:include href="./changes-1.0-2.0.xml"/>
<xi:include href="./changes-2.0-2.1.xml"/>
</appendix>

View File

@@ -70,15 +70,20 @@
<xi:include href="./preface.xml"/>
<part id="whats-new-in-2-part">
<title>What's new in Spring Integration 2.0</title>
<part id="whats-new-part">
<title>What's new?</title>
<partintro id="spring-integration-intro">
<para>
For those who are already familiar with Spring Integration, this chapter provides a brief overview of
the new features of version 2.0.
<para>
For those who are already familiar with Spring Integration, this chapter
provides a brief overview of the new features of version 2.1. If you are
interested in the changes and features, that were introduced in earlier
versions, please take a look at chapter:
<xref linkend="history"/>
</para>
</partintro>
<xi:include href="./whats-new-in-2.xml"/>
<xi:include href="./whats-new.xml"/>
</part>
<part id="spring-integration-introduction">
@@ -154,5 +159,6 @@
<xi:include href="./samples.xml"/>
<xi:include href="./configuration.xml"/>
<xi:include href="./resources.xml"/>
<xi:include href="./history.xml"/>
</part>
</book>

View File

@@ -1,245 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="whats-new-in-2"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink">
<title>What's new in Spring Integration 2.0?</title>
<section id="spring-30-support">
<title>Spring 3 support</title>
<para>
Spring Integration 2.0 is built on top of Spring 3.0.5 and makes many of its features available to our users.
</para>
<section id="spel-support">
<title>Support for the Spring Expression Language (SpEL)</title>
<para>
You can now use SpEL expressions within the <emphasis>transformer, router, filter,
splitter, aggregator, service-activator, header-enricher</emphasis>, and many more elements of the
Spring Integration core namespace as well as various adapters.
There are many samples provided throughout this manual.
</para>
</section>
<section id="conversion-support">
<title>ConversionService and Converter</title>
<para>
You can now benefit from <emphasis>Conversion Service</emphasis> support provided with Spring while configuring
many Spring Integration components such as <ulink url="http://www.eaipatterns.com/DatatypeChannel.html">Datatype Channel</ulink>.
See <xref linkend="channel-implementations"/> as well <xref linkend="service-activator-introduction"/>.
Also, the SpEL support mentioned in the previous point also relies upon the ConversionService. Therefore, you
can register Converters once, and take advantage of them anywhere you are using SpEL expressions.
</para>
</section>
<section id="task-scheduler-poller-support">
<title>TaskScheduler and Trigger</title>
<para>
Spring 3.0 defines two new strategies related to scheduling: <emphasis>TaskScheduler and Trigger</emphasis>
Spring Integration (which uses a lot of scheduling) now builds upon these. In fact, Spring Integration 1.0
had originally defined some of the components (e.g. CronTrigger) that have now been migrated into Spring 3.0's
core API. Now, you can benefit from reusing the same components within the entire Application Context (not just
Spring Integration configuration). Configuration of Spring Integration Pollers has been greatly simplified
as well by providing attributes for directly configuring rates, delays, cron expressions, and trigger references.
See <xref linkend="channel-adapter"/> for sample configurations.
</para>
</section>
<section id="rest-support">
<title>RestTemplate and HttpMessageConverter</title>
<para>
Our outbound HTTP adapters now delegate to Spring's RestTemplate for executing the HTTP request and handling its response.
This also means that you can reuse any custom HttpMessageConverter implementations.
See <xref linkend="http-outbound"/> for more details.
</para>
</section>
</section>
<section id="new-eip">
<title>Enterprise Integration Pattern Additions</title>
<para>
Also in 2.0 we have added support for even more of the patterns described in Hohpe and Woolf's
<ulink url="http://www.eaipatterns.com/">Enterprise Integration Patterns</ulink> book.
</para>
<section id="new-message-history">
<title>Message History</title>
<para>
We now provide support for the <ulink url="http://www.eaipatterns.com/MessageHistory.html">Message History</ulink> pattern
allowing you to keep track of all traversed components, including the name of each channel and endpoint as well as the timestamp
of that traversal. See <xref linkend="message-history"/> for more details.
</para>
</section>
<section id="new-message-store">
<title>Message Store</title>
<para>
We now provide support for the <ulink url="http://www.eaipatterns.com/MessageStore.html">Message Store</ulink> pattern.
The Message Store provides a strategy for persisting messages on behalf of any process whose scope extends beyond a single
transaction, such as the Aggregator and Resequencer. Many sections of this document provide samples on how to use a Message Store as it
affects several areas of Spring Integration. See <xref linkend="claim-check"/>,
<xref linkend="channel"/>, <xref linkend="aggregator"/>, <xref linkend="jdbc"/>, and <xref linkend="resequencer"/> for more details
</para>
</section>
<section id="new-claim-check">
<title>Claim Check</title>
<para>
We have added an implementation of the <ulink url="http://www.eaipatterns.com/StoreInLibrary.html">Claim Check</ulink> pattern.
The idea behind the Claim Check pattern is that you can exchange a Message payload for a "claim ticket" and vice-versa.
This allows you to reduce bandwidth and/or avoid potential security issues when sending Messages across channels.
See <xref linkend="claim-check"/> for more details.
</para>
</section>
<section id="new-control-bus">
<title>Control Bus</title>
<para>
We have provided implementations of the <ulink url="http://www.eaipatterns.com/ControlBus.html">Control Bus</ulink> pattern which
allows you to use messaging to manage and monitor endpoints and channels. The implementations include both a SpEL-based approach
and one that executes Groovy scripts.
See <xref linkend="control-bus"/> and <xref linkend="groovy-control-bus"/> for more details.
</para>
</section>
</section>
<section id="new-adapters">
<title>New Channel Adapters and Gateways</title>
<para>
We have added several new Channel Adapters and Messaging Gateways in Spring Integration 2.0.
</para>
<section id="new-ip">
<title>TCP/UDP Adapters</title>
<para>
We have added Channel Adapters for receiving and sending messages over the TCP and UDP internet protocols.
See <xref linkend="ip"/> for more details. Also, you can checkout the following blog:
<ulink url="http://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/">TCP/UDP support</ulink>
</para>
</section>
<section id="new-twitter">
<title>Twitter Adapters</title>
<para>
Twitter adapters provides support for sending and receiving Twitter Status
updates as well as Direct Messages. You can also perform Twitter Searches with an inbound Channel Adapter.
See <xref linkend="twitter"/> for more details.
</para>
</section>
<section id="new-xmpp">
<title>XMPP Adapters</title>
<para>
The new XMPP adapters support both Chat Messages and Presence events. See <xref linkend="xmpp"/> for more details.
</para>
</section>
<section id="new-ftp">
<title>FTP/FTPS Adapters</title>
<para>
Inbound and outbound File transfer support over FTP/FTPS is now available. See <xref linkend="ftp"/> for more details.
</para>
</section>
<section id="new-sftp">
<title>SFTP Adapters</title>
<para>
Inbound and outbound File transfer support over SFTP is now available. See <xref linkend="sftp"/> for more details.
</para>
</section>
<section id="new-feed">
<title>Feed Adapters</title>
<para>
We have also added Channel Adapters for receiving news feeds (ATOM/RSS). See <xref linkend="feed"/> for more details.
</para>
</section>
</section>
<section id="new-other">
<title>Other Additions</title>
<section id="new-groovy">
<title>Groovy Support</title>
<para>
With Spring Integration 2.0 we've added Groovy support allowing you to
use Groovy scripting language to provide integration and/or business logic.
See <xref linkend="groovy"/> for more details.
</para>
</section>
<section id="new-map-transformer">
<title>Map Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from a Map. See <xref linkend="transformer"/> for more details.
</para>
</section>
<section id="new-json-transformer">
<title>JSON Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from JSON. See <xref linkend="transformer"/> for more details.
</para>
</section>
<section id="new-serialize-transformer">
<title>Serialization Transformers</title>
<para>
These symmetrical transformers convert payload objects to and from byte arrays.
They also support the Serializer and Deserializer strategy interfaces that have been added as of Spring 3.0.5.
See <xref linkend="transformer"/> for more details.
</para>
</section>
</section>
<section id="new-refactoring">
<title>Framework Refactoring</title>
<para>
The core API went through some significant refactoring to make it simpler and more usable. Although we anticipate
that the impact to the end user should be minimal, please read through this document to find what was
changed. Especially, visit <xref linkend="dynamic-routers"/> , <xref linkend="gateway"/>, <xref linkend="http-outbound"/>,
<xref linkend="message"/>, and <xref linkend="aggregator"/> for more details. If you are depending directly on some of
the core components (Message, MessageHeaders, MessageChannel, MessageBuilder, etc.), you will notice that you need to
update any import statements. We restructured some packaging to provide the flexibility we needed for extending the
domain model while avoiding any cyclical dependencies (it is a policy of the framework to avoid such "tangles").
</para>
</section>
<section id="new-infrastructure">
<title>New Source Control Management and Build Infrastructure</title>
<para>
With Spring Integration 2.0 we have switched our build environment to use Git for source control. To access our repository simply follow this URL:
<ulink url="http://git.springsource.org/spring-integration">http://git.springsource.org/spring-integration</ulink>.
We have also switched our build system to <ulink url="http://gradle.org/">Gradle</ulink>.
</para>
</section>
<section id="new-samples">
<title>New Spring Integration Samples</title>
<para>
With Spring Integration 2.0 we have decoupled the samples from our main release distribution. Please read this blog to get more info
<ulink url="http://blog.springsource.com/2010/09/29/new-spring-integration-samples/">New Spring Integration Samples</ulink>
We have also created many new samples, including samples for every new Adapter.
</para>
</section>
<section id="new-sts">
<title>SpringSource Tool Suite Visual Editor for Spring Integration</title>
<para>
There is an amazing new visual editor for Spring Integration included within the latest version of SpringSource Tool Suite.
If you are not already using STS 2.5.1, please download it here:
<ulink url="http://www.springsource.com/landing/best-development-tool-enterprise-java">STS</ulink>
</para>
</section>
<section id="new-si-roo">
<title>Upcoming Spring Integration ROO support</title>
<para>
We have started working on Spring Integration ROO support, and plan to have a first milestone release soon.
You can follow its development here: <ulink url="https://jira.springframework.org/browse/INTROO">Spring Integration Roo Add-on</ulink>.
</para>
</section>
</chapter>

View File

@@ -0,0 +1,325 @@
<?xml version="1.0" encoding="UTF-8"?>
<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="whats-new"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink">
<title>What's new in Spring Integration 2.1?</title>
<para>
This chapter provides an overview of the new features and improvements
that have been introduced with Spring Integration 2.1 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.1 development process:
</para>
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&amp;version=11668">Release Notes for Spring Integration 2.1 M1</ulink></para>
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&amp;version=12200">Release Notes for Spring Integration 2.1 M2</ulink></para>
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&amp;version=12640">Release Notes for Spring Integration 2.1 M3</ulink></para>
<section id="2.1-new-components">
<title>New Components</title>
<section id="2.1-new-scripting-support">
<title>JSR-223 Scripting Support</title>
<para>
In Spring Integration 2.0, support for
<ulink url="http://groovy.codehaus.org/">Groovy</ulink> was added. With
Spring Integration 2.1 we expanded support for additional languages
substantially by implementing support for
<ulink url="http://www.jcp.org/en/jsr/detail?id=223">JSR-223</ulink>
(Scripting for the Java™ Platform). Now you have the
ability to use any scripting language that supports JSR-223 including:
</para>
<itemizedlist>
<listitem>Javascript</listitem>
<listitem>Ruby/JRuby</listitem>
<listitem>Python/Jython</listitem>
<listitem>Groovy</listitem>
</itemizedlist>
<para>
For further details please see <xref linkend="scripting"/>.
</para>
</section>
<section id="2.1-new-gemfire-support">
<title>GemFire Support</title>
<para>
Spring Integration provides support for
<ulink url="http://www.vmware.com/products/vfabric-gemfire/overview.html">GemFire</ulink> by providing
inbound adapters for entry and continuous query events, an outbound
adapter to write entries to the cache, and
<ulink url="http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageStore.html">
<interfacename>MessageStore</interfacename></ulink> and
<ulink url="http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html">
<interfacename>MessageGroupStore</interfacename></ulink>
implementations. Spring integration leverages
the <ulink url="http://www.springsource.org/spring-gemfire"><emphasis>Spring Gemfire</emphasis></ulink> project, providing a thin wrapper over its
components.
</para>
<para>
For further details please see <xref linkend="gemfire"/>.
</para>
</section>
<section id="2.1-new-amqp-support">
<title>AMQP Support</title>
<para>
Spring Integration 2.1 adds several Channel Adapters for receiving and
sending messages using the
<ulink url="http://www.amqp.org/"><emphasis>Advanced Message Queuing Protocol</emphasis></ulink> (AMQP).
Furthermore, Spring Integration also provides a point-to-point
Message Channel, as well as a publish/subscribe Message Channel
that are backed by AMQP Exchanges and Queues.
</para>
<para>
For further details please see <xref linkend="amqp"/>.
</para>
</section>
<section id="2.1-new-mongodb-support">
<title>MongoDB Support</title>
<para>
As of version 2.1 Spring Integration provides support for
<ulink url="http://www.mongodb.org/">MongoDB</ulink>
by providing a MongoDB-based MessageStore.
</para>
<para>
For further details please see <xref linkend="mongodb"/>.
</para>
</section>
<section id="2.1-new-redis-support">
<title>Redis Support</title>
<para>
As of version 2.1 Spring Integration supports
<ulink url="http://redis.io/">Redis</ulink>, an advanced key-value
store, by providing a Redis-based MessageStore as well as
Publish-Subscribe Messaging adapters.
</para>
<para>
For further details please see <xref linkend="redis"/>.
</para>
</section>
<section id="2.1-new-stored-proc-support">
<title>Stored Procedure Components</title>
<para>
With Spring Integration 2.1, the <code>JDBC</code> Module also provides
Stored Procedure support by adding several new components, including
inbound/outbound channel adapters and an Outbound Gateway. The Stored
Procedure support leverages Spring's
<ulink url="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/jdbc/core/simple/SimpleJdbcCall.html"><classname>SimpleJdbcCall</classname></ulink>
class and consequently supports stored procedures for:
</para>
<itemizedlist>
<listitem>Apache Derby</listitem>
<listitem>DB2</listitem>
<listitem>MySQL</listitem>
<listitem>Microsoft SQL Server</listitem>
<listitem>Oracle</listitem>
<listitem>PostgreSQL</listitem>
<listitem>Sybase</listitem>
</itemizedlist>
<para>
The Stored Procedure components also support Sql Functions for
the following databases:
</para>
<itemizedlist>
<listitem>MySQL</listitem>
<listitem>Microsoft SQL Server</listitem>
<listitem>Oracle</listitem>
<listitem>PostgreSQL</listitem>
</itemizedlist>
<para>
For further details please see <xref linkend="stored-procedures"/>.
</para>
</section>
<section id="2.1-new-xpath-filter-support">
<title>XPath and XML Validating Filter</title>
<para>
Spring Integration 2.1 provides a new XPath-based Message Filter,
that is part of the <code>XML</code> module. The XPath Filter
allows you to filter messages using provided XPath Expressions.
Furthermore, documentation was added for the XML Validating Filter.
</para>
<para>
For more details please see <xref linkend="xml-xpath-filter"/>
and <xref linkend="xml-validating-filter"/>.
</para>
</section>
<section id="2.1-new-payload-enricher-support">
<title>Payload Enricher</title>
<para>
Since Spring Integration 2.1, the Payload Enricher is provided. A
Payload Enricher defines an endpoint that typically passes a
<ulink url="http://static.springsource.org/spring-integration/api/org/springframework/integration/Message.html"><interfacename>Message</interfacename></ulink>
to the exposed request channel and then expects a reply message.
The reply message then becomes the root object for evaluation of
expressions to enrich the target payload.
</para>
<para>
For further details please see <xref linkend="payload-enricher"/>.
</para>
</section>
<section id="2.1-new-ftp-outbound-gateway">
<title>FTP and SFTP Outbound Gateways</title>
<para>
Spring Integration 2.1 provides two new Outbound Gateways in order
to interact with remote File Transfer Protocol (FTP) or
Secure File Transfer Protocol (SFT) servers. These two gateways allow
you to directly execute a limited set of remote commands.
</para>
<para>
For instance, you can use these Outbound Gateways to list, retrieve and
delete remote files and have the Spring Integration message flow
continue with the remote server's response.
</para>
<para>
For further details please see <xref linkend="ftp-outbound-gateway"/>
and <xref linkend="sftp-outbound-gateway"/>.
</para>
</section>
<section id="2.1-new-ftp-session-caching">
<title>FTP Session Caching</title>
<para>
As of version 2.1, we have exposed more flexibility with regards to
session management for remote file adapters (e.g., FTP, SFTP etc).
</para>
<para>
Specifically, the <code>cache-sessions</code> attribute, which is
available via the XML namespace support, is now
<emphasis>deprecated</emphasis>. Alternatively, we added the
<code>sessionCacheSize</code> and <code>sessionWaitTimeout</code>
attributes on the <classname>CachingSessionFactory</classname>.
</para>
<para>
For further details please see <xref linkend="ftp-session-caching"/>
and <xref linkend="sftp-session-caching"/>.
</para>
</section>
</section>
<section id="2.1-framework-refactorings">
<title>Framework Refactoring</title>
<section id="2.1-router-standardization">
<title>Standardizing Router Configuration</title>
<para>
Router parameters have been standardized across all router
implementations with Spring Integration 2.1 providing a more
consistent user experience.
</para>
<para>
With Spring Integration 2.1 the <code>ignore-channel-name-resolution-failures</code>
attribute has been removed in favor of consolidating its behavior
with the <code>resolution-required</code> attribute. Also,
the <code>resolution-required</code> attribute now defaults to <code>true</code>.
</para>
<para>
Starting with Spring Integration 2.1, routers will no longer silently
drop any messages, if no default output channel was defined. This means,
that by default routers now require at least one resolved channel (if no
<code>default-output-channel</code> was set) and
by default will throw a <classname>MessageDeliveryException</classname>
if no channel was determined (or an attempt to send was not successful).
</para>
<para>
If, however, you do desire to drop messages silently, simply set
<code>default-output-channel="nullChannel"</code>.</para>
<important>
With the standardization of Router parameters and the consolidation
of the parameters described above, there is the possibility of
breaking older Spring Integration based applications.
</important>
<para>
For further details please see <xref linkend="router"/>
</para>
</section>
<section id="2.1-schema-updated">
<title>XML Schemas updated to 2.1</title>
<para>
Spring Integration 2.1 ships with an updated XML Schema (version 2.1),
providing many improvements, e.g. the Router standardizations
discussed above.
</para>
<para>
From now on, users <emphasis>must</emphasis> always declare the
latest XML schema (currently version 2.1). Alternatively, they can
use the version-less schema. Generally, the best option is to
use version-less namespaces, as these will automatically use the
latest available version of Spring Integration.
</para>
<para>
Declaring a version-less Spring Integration namespace:
</para>
<programlisting language="xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>]]></programlisting>
<para>
Declaring a Spring Integration namespace using an explicit version:
</para>
<programlisting language="xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration-2.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>]]></programlisting>
<para>
The old 1.0 and 2.0 schemas are still there, but if an Application
Context still references one of those deprecated schemas, the validator
will fail on initialization.
</para>
</section>
</section>
<section id="2.1-source-control-infrastructure">
<title>Source Control Management and Build Infrastructure</title>
<section id="2.1-move-to-github">
<title>Source Code now hosted on Github</title>
<para>
Since version 2.0, the Spring Integration project uses <ulink url="http://git-scm.com/">Git</ulink> for
version control. In order to increase community visibility even
further, the project was moved from SpringSource hosted Git
repositories to <ulink url="http://www.github.com/">Github</ulink>.
The Spring Integration Git repository is located at:
<ulink url="https://github.com/SpringSource/spring-integration/"/>
</para>
<para>
For the project we also improved the process of providing code
contributions and we ensure that every commit is peer-reviewed.
In fact, core committers now follow the same process as contributors.
For more details please see:
</para>
<para><ulink url="https://github.com/SpringSource/spring-integration/wiki/Contributor-Guidelines"/></para>
</section>
<section id="2.1-sonar">
<title>Improved Source Code Visibility with Sonar</title>
<para>
In an effort to provide better source code visibility and consequently
to monitor the quality of Spring Integration's source code, an instance
of <ulink url="http://www.sonarsource.org/">Sonar</ulink> was setup
and metrics are gathered nightly and made avaiblable at:
</para>
<para><ulink url="https://sonar.springsource.org/"/></para>
</section>
</section>
<section id="2.1-new-samples">
<title>New Samples</title>
<para>
For the 2.1 release of Spring Integration we also expanded the Spring
Integration Samples project and added many new samples, e.g. sampples
covering AMQP support, the new payload enricher, a sample illustrating
techniques for testing Spring Integration flow fragments, as well as
an example for executing Stored Procedures against Oracle. For details
please visit:
</para>
<para><ulink url="https://github.com/SpringSource/spring-integration-samples"/></para>
</section>
</chapter>

View File

@@ -446,6 +446,7 @@
</l:l10n>
</l:i18n>
<xsl:param name="ulink.footnotes">true</xsl:param>
<!--###################################################
colored and hyphenated links
################################################### -->