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:
committed by
Mark Fisher
parent
e20c0e0efa
commit
c348f8c3fb
325
docs/src/reference/docbook/whats-new.xml
Normal file
325
docs/src/reference/docbook/whats-new.xml
Normal 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&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.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>
|
||||
Reference in New Issue
Block a user