From 6cc2215898c741a936fff9ce590d0c78d15aa899 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 27 Apr 2012 12:52:31 -0400 Subject: [PATCH] INT-2538 Prepare Docs For 2.2 * Move What's new in 2.1 to history. * Add What's new in 2.2 section. * Add note about caching connections in TCP INT-2538 Polishing PR Review comment. --- src/reference/docbook/changes-2.0-2.1.xml | 324 ++++++++++++++++++++- src/reference/docbook/changes-2.1-2.2.xml | 9 + src/reference/docbook/history.xml | 1 + src/reference/docbook/index.xml | 12 +- src/reference/docbook/ip.xml | 27 ++ src/reference/docbook/whats-new.xml | 339 ++-------------------- 6 files changed, 382 insertions(+), 330 deletions(-) create mode 100644 src/reference/docbook/changes-2.1-2.2.xml diff --git a/src/reference/docbook/changes-2.0-2.1.xml b/src/reference/docbook/changes-2.0-2.1.xml index 0d369f8dbd..722fc4f981 100644 --- a/src/reference/docbook/changes-2.0-2.1.xml +++ b/src/reference/docbook/changes-2.0-2.1.xml @@ -2,8 +2,324 @@
Changes between 2.0 and 2.1 - - For an overview of the changes in Spring Integration 2.1 since version 2.0, - please see . - +
+ New Components +
+ JSR-223 Scripting Support + + In Spring Integration 2.0, support for + Groovy was added. With + Spring Integration 2.1 we expanded support for additional languages + substantially by implementing support for + JSR-223 + (Scripting for the Java™ Platform). Now you have the + ability to use any scripting language that supports JSR-223 including: + + + Javascript + Ruby/JRuby + Python/Jython + Groovy + + + For further details please see . + +
+
+ GemFire Support + + Spring Integration provides support for + GemFire by providing + inbound adapters for entry and continuous query events, an outbound + adapter to write entries to the cache, and + + MessageStore and + + MessageGroupStore + implementations. Spring integration leverages + the Spring Gemfire project, providing a thin wrapper over its + components. + + + For further details please see . + +
+
+ AMQP Support + + Spring Integration 2.1 adds several Channel Adapters for receiving and + sending messages using the + Advanced Message Queuing Protocol (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. + + + For further details please see . + +
+
+ MongoDB Support + + As of version 2.1 Spring Integration provides support for + MongoDB + by providing a MongoDB-based MessageStore. + + + For further details please see . + +
+
+ Redis Support + + As of version 2.1 Spring Integration supports + Redis, an advanced key-value + store, by providing a Redis-based MessageStore as well as + Publish-Subscribe Messaging adapters. + + + For further details please see . + +
+
+ Support for Spring's Resource abstraction + + As of version 2.1, we've introduced a new Resource Inbound Channel Adapter 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 File Inbound Channel Adapter. + + + For further details please see . + +
+
+ Stored Procedure Components + + With Spring Integration 2.1, the JDBC 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 + SimpleJdbcCall + class and consequently supports stored procedures for: + + + Apache Derby + DB2 + MySQL + Microsoft SQL Server + Oracle + PostgreSQL + Sybase + + + The Stored Procedure components also support Sql Functions for + the following databases: + + + MySQL + Microsoft SQL Server + Oracle + PostgreSQL + + + For further details please see . + +
+
+ XPath and XML Validating Filter + + Spring Integration 2.1 provides a new XPath-based Message Filter, + that is part of the XML module. The XPath Filter + allows you to filter messages using provided XPath Expressions. + + Furthermore, documentation was added for the XML Validating Filter. + + + For more details please see + and . + +
+
+ Payload Enricher + + Since Spring Integration 2.1, the Payload Enricher is provided. A + Payload Enricher defines an endpoint that typically passes a + Message + 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. + + + For further details please see . + +
+
+ FTP and SFTP Outbound Gateways + + 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. + + + 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. + + + For further details please see + and . + +
+
+ FTP Session Caching + + As of version 2.1, we have exposed more flexibility with regards to + session management for remote file adapters (e.g., FTP, SFTP etc). + + + Specifically, the cache-sessions attribute, which is + available via the XML namespace support, is now + deprecated. Alternatively, we added the + sessionCacheSize and sessionWaitTimeout + attributes on the CachingSessionFactory. + + + For further details please see + and . + +
+ +
+
+ Framework Refactoring +
+ Standardizing Router Configuration + + Router parameters have been standardized across all router + implementations with Spring Integration 2.1 providing a more + consistent user experience. + + + With Spring Integration 2.1 the ignore-channel-name-resolution-failures + attribute has been removed in favor of consolidating its behavior + with the resolution-required attribute. Also, + the resolution-required attribute now defaults to true. + + + 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 + default-output-channel was set) and + by default will throw a MessageDeliveryException + if no channel was determined (or an attempt to send was not successful). + + + If, however, you do desire to drop messages silently, simply set + default-output-channel="nullChannel". + + 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. + + + For further details please see + +
+
+ XML Schemas updated to 2.1 + + Spring Integration 2.1 ships with an updated XML Schema (version 2.1), + providing many improvements, e.g. the Router standardizations + discussed above. + + + From now on, users must 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. + + + Declaring a version-less Spring Integration namespace: + + + +... +]]> + + + Declaring a Spring Integration namespace using an explicit version: + + + + +... +]]> + + + + 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. + +
+
+
+ Source Control Management and Build Infrastructure +
+ Source Code now hosted on Github + + Since version 2.0, the Spring Integration project uses Git for + version control. In order to increase community visibility even + further, the project was moved from SpringSource hosted Git + repositories to Github. + The Spring Integration Git repository is located at: + + + + 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: + + +
+
+ Improved Source Code Visibility with Sonar + + In an effort to provide better source code visibility and consequently + to monitor the quality of Spring Integration's source code, an instance + of Sonar was setup + and metrics are gathered nightly and made avaiblable at: + + +
+
+ +
+ New Samples + + 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: + + +
diff --git a/src/reference/docbook/changes-2.1-2.2.xml b/src/reference/docbook/changes-2.1-2.2.xml new file mode 100644 index 0000000000..c0dcac2858 --- /dev/null +++ b/src/reference/docbook/changes-2.1-2.2.xml @@ -0,0 +1,9 @@ + +
+ Changes between 2.1 and 2.2 + + For an overview of the changes in Spring Integration 2.2 since version 2.1, + please see . + +
diff --git a/src/reference/docbook/history.xml b/src/reference/docbook/history.xml index 87b1e2d3cc..05f8822bda 100644 --- a/src/reference/docbook/history.xml +++ b/src/reference/docbook/history.xml @@ -6,5 +6,6 @@ + diff --git a/src/reference/docbook/index.xml b/src/reference/docbook/index.xml index 28dd34be6e..302a338392 100644 --- a/src/reference/docbook/index.xml +++ b/src/reference/docbook/index.xml @@ -77,15 +77,15 @@ What's new? - - 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: + + 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: - + diff --git a/src/reference/docbook/ip.xml b/src/reference/docbook/ip.xml index cb466dbc1a..33ade1e89a 100644 --- a/src/reference/docbook/ip.xml +++ b/src/reference/docbook/ip.xml @@ -329,6 +329,28 @@ This default behavior can be overridden by setting the lookup-host attribute to "false". + + + TCP Caching Client Connection Factory + + 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. + + + To improve performance, users could use collaborating channel adapters + instead of gateways, but that requires application-level message + correlation. See for more information. + + + 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. + + +
TCP Connection Interceptors @@ -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. + + Another solution, introduced in Spring Integration 2.2, is to use a + CachingClientConnectionFactory, which allows + the use of a pool of shared connections. +
Collaborating Outbound and Inbound Channel Adapters diff --git a/src/reference/docbook/whats-new.xml b/src/reference/docbook/whats-new.xml index 2b8ae4e176..53ffdb35c3 100644 --- a/src/reference/docbook/whats-new.xml +++ b/src/reference/docbook/whats-new.xml @@ -2,336 +2,35 @@ - What's new in Spring Integration 2.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.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: - Release Notes for Spring Integration 2.1 M1 - Release Notes for Spring Integration 2.1 M2 - Release Notes for Spring Integration 2.1 M3 +
+ General +
+ Spring 3.1 + + Spring Integration now uses Spring 3.1. + +
+
-
- New Components -
- JSR-223 Scripting Support - - In Spring Integration 2.0, support for - Groovy was added. With - Spring Integration 2.1 we expanded support for additional languages - substantially by implementing support for - JSR-223 - (Scripting for the Java™ Platform). Now you have the - ability to use any scripting language that supports JSR-223 including: - - - Javascript - Ruby/JRuby - Python/Jython - Groovy - - - For further details please see . - -
-
- GemFire Support - - Spring Integration provides support for - GemFire by providing - inbound adapters for entry and continuous query events, an outbound - adapter to write entries to the cache, and - - MessageStore and - - MessageGroupStore - implementations. Spring integration leverages - the Spring Gemfire project, providing a thin wrapper over its - components. - +
+ New Components +
+ JPA Endpoints - For further details please see . - -
-
- AMQP Support - - Spring Integration 2.1 adds several Channel Adapters for receiving and - sending messages using the - Advanced Message Queuing Protocol (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. - - - For further details please see . - -
-
- MongoDB Support - - As of version 2.1 Spring Integration provides support for - MongoDB - by providing a MongoDB-based MessageStore. - - - For further details please see . - -
-
- Redis Support - - As of version 2.1 Spring Integration supports - Redis, an advanced key-value - store, by providing a Redis-based MessageStore as well as - Publish-Subscribe Messaging adapters. - - - For further details please see . + Endpoints are now available for manipulating JPA entity objects.
-
- Support for Spring's Resource abstraction - - As of version 2.1, we've introduced a new Resource Inbound Channel Adapter 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 File Inbound Channel Adapter. - - - For further details please see . - -
-
- Stored Procedure Components - - With Spring Integration 2.1, the JDBC 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 - SimpleJdbcCall - class and consequently supports stored procedures for: - - - Apache Derby - DB2 - MySQL - Microsoft SQL Server - Oracle - PostgreSQL - Sybase - - - The Stored Procedure components also support Sql Functions for - the following databases: - - - MySQL - Microsoft SQL Server - Oracle - PostgreSQL - - - For further details please see . - -
-
- XPath and XML Validating Filter - - Spring Integration 2.1 provides a new XPath-based Message Filter, - that is part of the XML module. The XPath Filter - allows you to filter messages using provided XPath Expressions. - - Furthermore, documentation was added for the XML Validating Filter. - - - For more details please see - and . - -
-
- Payload Enricher - - Since Spring Integration 2.1, the Payload Enricher is provided. A - Payload Enricher defines an endpoint that typically passes a - Message - 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. - - - For further details please see . - -
-
- FTP and SFTP Outbound Gateways - - 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. - - - 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. - - - For further details please see - and . - -
-
- FTP Session Caching - - As of version 2.1, we have exposed more flexibility with regards to - session management for remote file adapters (e.g., FTP, SFTP etc). - - - Specifically, the cache-sessions attribute, which is - available via the XML namespace support, is now - deprecated. Alternatively, we added the - sessionCacheSize and sessionWaitTimeout - attributes on the CachingSessionFactory. - - - For further details please see - and . - -
- -
-
+
+
Framework Refactoring -
- Standardizing Router Configuration - - Router parameters have been standardized across all router - implementations with Spring Integration 2.1 providing a more - consistent user experience. - - - With Spring Integration 2.1 the ignore-channel-name-resolution-failures - attribute has been removed in favor of consolidating its behavior - with the resolution-required attribute. Also, - the resolution-required attribute now defaults to true. - - - 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 - default-output-channel was set) and - by default will throw a MessageDeliveryException - if no channel was determined (or an attempt to send was not successful). - - - If, however, you do desire to drop messages silently, simply set - default-output-channel="nullChannel". - - 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. - - - For further details please see - -
-
- XML Schemas updated to 2.1 - - Spring Integration 2.1 ships with an updated XML Schema (version 2.1), - providing many improvements, e.g. the Router standardizations - discussed above. - - - From now on, users must 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. - - - Declaring a version-less Spring Integration namespace: - - - -... -]]> - - Declaring a Spring Integration namespace using an explicit version: - - - - -... -]]> - - - - 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. - -
-
-
- Source Control Management and Build Infrastructure -
- Source Code now hosted on Github - - Since version 2.0, the Spring Integration project uses Git for - version control. In order to increase community visibility even - further, the project was moved from SpringSource hosted Git - repositories to Github. - The Spring Integration Git repository is located at: - - - - 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: - - -
-
- Improved Source Code Visibility with Sonar - - In an effort to provide better source code visibility and consequently - to monitor the quality of Spring Integration's source code, an instance - of Sonar was setup - and metrics are gathered nightly and made avaiblable at: - - -
-
- -
- New Samples - - 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: - -