Merge pull request #415 from garyrussell/INT-2538
* INT-2538: INT-2538 Prepare Docs For 2.2
This commit is contained in:
@@ -2,8 +2,324 @@
|
||||
<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 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-resource-support">
|
||||
<title>Support for Spring's Resource abstraction</title>
|
||||
<para>
|
||||
As of version 2.1, we've introduced a new <emphasis>Resource Inbound Channel Adapter</emphasis> that builds upon
|
||||
Spring's Resource abstraction to support greater flexibility across a variety of actual types of
|
||||
underlying resources, such as a file, a URL, or a class path resource. Therefore, it's similar to but
|
||||
more generic than the <emphasis>File Inbound Channel Adapter</emphasis>.
|
||||
</para>
|
||||
<para>
|
||||
For further details please see <xref linkend="resource-inbound-channel-adapter"/>.
|
||||
</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>
|
||||
</section>
|
||||
|
||||
9
src/reference/docbook/changes-2.1-2.2.xml
Normal file
9
src/reference/docbook/changes-2.1-2.2.xml
Normal 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.1-2.2"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Changes between 2.1 and 2.2</title>
|
||||
<para>
|
||||
For an overview of the changes in Spring Integration 2.2 since version 2.1,
|
||||
please see <xref linkend="whats-new"/>.
|
||||
</para>
|
||||
</section>
|
||||
@@ -6,5 +6,6 @@
|
||||
|
||||
<xi:include href="./changes-1.0-2.0.xml"/>
|
||||
<xi:include href="./changes-2.0-2.1.xml"/>
|
||||
<xi:include href="./changes-2.1-2.2.xml"/>
|
||||
|
||||
</appendix>
|
||||
|
||||
@@ -77,15 +77,15 @@
|
||||
<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.1. If you are
|
||||
interested in the changes and features, that were introduced in earlier
|
||||
versions, please take a look at chapter:
|
||||
<para>
|
||||
For those who are already familiar with Spring Integration, this chapter
|
||||
provides a brief overview of the new features of version 2.2. 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>
|
||||
</para>
|
||||
</partintro>
|
||||
<xi:include href="./whats-new.xml"/>
|
||||
</part>
|
||||
|
||||
@@ -329,6 +329,28 @@
|
||||
This default behavior can be overridden by setting the <literal>lookup-host</literal>
|
||||
attribute to "false".
|
||||
</para>
|
||||
<para>
|
||||
<note>
|
||||
<title>TCP Caching Client Connection Factory</title>
|
||||
<para>
|
||||
As noted above, TCP sockets cam be 'single-use' (one request/response)
|
||||
or shared. Shared sockets do not perform well with outbound gateways,
|
||||
in high-volume environments,
|
||||
because the socket can only process one request/response at a time.
|
||||
</para>
|
||||
<para>
|
||||
To improve performance, users could use collaborating channel adapters
|
||||
instead of gateways, but that requires application-level message
|
||||
correlation. See <xref linkend="ip-correlation" />for more information.
|
||||
</para>
|
||||
<para>
|
||||
Spring Integration 2.2 introduced a caching client connection factory,
|
||||
where a pool of shared sockets is used, allowing a gateway to
|
||||
process multiple concurrent requests with a pool of shared
|
||||
connections.
|
||||
</para>
|
||||
</note>
|
||||
</para>
|
||||
</section>
|
||||
<section id="ip-interceptors">
|
||||
<title>TCP Connection Interceptors</title>
|
||||
@@ -640,6 +662,11 @@
|
||||
Therefore, for high-volume messages, consider using a collaborating pair of
|
||||
channel adapters. However, you will need to provide collaboration logic.
|
||||
</para>
|
||||
<para>
|
||||
Another solution, introduced in Spring Integration 2.2, is to use a
|
||||
<classname>CachingClientConnectionFactory</classname>, which allows
|
||||
the use of a pool of shared connections.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Collaborating Outbound and Inbound Channel Adapters</title>
|
||||
|
||||
@@ -2,336 +2,35 @@
|
||||
<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>
|
||||
<title>What's new in Spring Integration 2.2?</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
|
||||
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.1 development process:
|
||||
were resolved as part of the 2.2 development process:
|
||||
</para>
|
||||
|
||||
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&version=11668">Release Notes for Spring Integration 2.1 M1</ulink></para>
|
||||
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&version=12200">Release Notes for Spring Integration 2.1 M2</ulink></para>
|
||||
<para><ulink url="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&version=12640">Release Notes for Spring Integration 2.1 M3</ulink></para>
|
||||
<section id="2.2-general">
|
||||
<title>General</title>
|
||||
<section id="2.2-spring-31">
|
||||
<title>Spring 3.1</title>
|
||||
<para>
|
||||
Spring Integration now uses Spring 3.1.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<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>
|
||||
<section id="2.2-new-components">
|
||||
<title>New Components</title>
|
||||
<section id="2.2-jpa">
|
||||
<title>JPA Endpoints</title>
|
||||
<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"/>.
|
||||
Endpoints are now available for manipulating JPA entity objects.
|
||||
</para>
|
||||
</section>
|
||||
<section id="2.1-new-resource-support">
|
||||
<title>Support for Spring's Resource abstraction</title>
|
||||
<para>
|
||||
As of version 2.1, we've introduced a new <emphasis>Resource Inbound Channel Adapter</emphasis> that builds upon
|
||||
Spring's Resource abstraction to support greater flexibility across a variety of actual types of
|
||||
underlying resources, such as a file, a URL, or a class path resource. Therefore, it's similar to but
|
||||
more generic than the <emphasis>File Inbound Channel Adapter</emphasis>.
|
||||
</para>
|
||||
<para>
|
||||
For further details please see <xref linkend="resource-inbound-channel-adapter"/>.
|
||||
</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">
|
||||
</section>
|
||||
<section id="2.2-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.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>
|
||||
|
||||
Reference in New Issue
Block a user