Spring Integration 2.1 is now GA |
|

Spring Integration 2.1 has been released! You can download it here or configure your Maven POM. This version is the result of more than one full year of work, and the team has resolved hundreds of issues since Spring Integration 2.0 was released. Interestingly, it has been 4 years and a few days since the very first public release of Spring Integration (0.5, released on Jan 3rd 2008). In this post, I simply want to provide a quick overview of the main new features of 2.1.
RabbitMQ/AMQP support
In the 'spring-integration-amqp' module, we have Channel Adapters for one-way messaging as well as Gateways for request/reply. The adapters and gateways can be used for inbound and/or outbound integration with a RabbitMQ broker. We also have AMQP-backed Message Channel implementations – both point-to-point and publish/subscribe – that can be used anywhere in the middle of a flow. For more information, see this section of the reference manual.
GemFire support
In the 'spring-integration-gemfire' module, we have inbound Channel Adapters for continuous queries as well as simple cache-listening. We also provide an outbound Channel Adapter for writing to a cache region. If you want to use GemFire for persistence behind an Aggregator, Claim Check, or buffering Message Channel, you can configure a GemFire Message Store. For more information, see this section of the reference manual.
Redis support
In the 'spring-integration-redis' module, we have inbound and outbound Channel Adapters that rely on Redis' pub/sub functionality. Also, you can configure a Redis-backed Message Store for persistence behind an Aggregator, Claim Check, or buffering Message Channel. For more information, see this section of the reference manual.
MongoDB support
In the 'spring-integration-mongodb' module, we have another Message Store implementation that you can use behind an Aggregator, Claim Check, or buffering Message Channel. For more information, see this section of the reference manual.
JSR-223 scripting support
In the 'spring-integration-scripting' module, we provide the functionality necessary to support the use of a variety of scripting languages for any of the core EIP components (filters, splitters, routers, transformers, etc). Supported languages include: Groovy, Ruby/JRuby, Python/Jython, and JavaScript. Like the Groovy support that existed since version 2.0, these scripts can be dynamically refreshed at runtime. For more information, see this section of the reference manual.
Stored Procedure support
In the 'spring-integration-jdbc' module, we have added Stored Procedure adapters along side the existing adapters that support simple select/insert/update operations. For more information, see this section of the reference manual.
Spring Resource abstraction support
In the 'spring-integration-core' module, we have added a new inbound Channel Adapter that operates against an instance of Spring's Resource abstraction. That provides flexibility across a number of underlying resources, such as files, classpath resources, or any resource that can be located via a URL. For more information, see this section of the reference manual.
Payload Enricher
In the 'spring-integration-core' module, we have added an 'enricher' component that allows for a message flow to be "called" from within another flow so that the result of that flow can be used to enrich the payload of a Message. It complements the existing header-enricher component. For more information, see this section of the reference manual.
FTP and SFTP outbound gateways
In the 'spring-integration-ftp' and 'spring-integration-sftp' modules, we have added outbound gateway adapters to support request/reply operations in addition to the existing one-way channel adapters. For more information, see this section for FTP and this section for SFTP.
Migrating from Spring Integration 2.0
If you plan to upgrade an application from Spring Integration version 2.0, then please refer to our migration guide. We will be updating that document as necessary, so please send us feedback if you do encounter any issues that are not yet mentioned within that guide.
Summary
As you can see, we have been quite busy. In addition to the new functionality described above, there are a number of improvements and refactoring. You may want to start with this section of the reference manual where you will find more information about those other improvements in addition to the features mentioned in this post. Also, be sure to checkout the Spring Integration Samples on github.
As always, we welcome your feedback. Please join the discussion in the Spring Integration Forum, and visit the Spring Integration Homepage for additional references and links to the source code, issue tracker, blogs, and more.
Similar Posts
- Spring Integration 2.0 Milestone 3 Released
- Spring Integration 1.0.3 Samples: just add Maven
- Using UDP and TCP Adapters in Spring Integration 2.0 M3
- Spring Integration 2.0 Release Candidate 1
- Spring Integration 2.0 GA Released









Mark says:
Added on January 10th, 2012 at 8:30 pmGreat work! MongoDB support and Javascript scripting support are really nice additions.
Jesica Wills says:
Added on January 11th, 2012 at 7:00 amThanks for this information. Not getting much from this article but some parts are familiar for me. Your way of writing is good.
Scott Baisley says:
Added on January 16th, 2012 at 11:11 pmI was very pleased to find this web-site http://blog.springsource.org/2012/01/09/spring-integration-2-1-is-now-ga/ . About Spring Integration 2.1 is now GA | SpringSource Team Blog I wanted to thank you for your time for this wonderful read!! I definitely am enjoying every little bit of it and I have you bookmarked to check out new stuff on your blog post.What you just written here surely has me interested up to the last word, and I must say to you I rarely read the entire post of blogs as I usually got bored and tired of the gibberish that is presented to me on a daily basis and just end up checking out the pictures and the headlines etc. But your tag-line and the first paragraphs were exceptional and it instantly got me hooked. Commending you for a job well done in here. Thanks !!
Cal Medisappointed says:
Added on January 18th, 2012 at 10:08 pmSpring promised simplification – remember that?
What has Spring delivered really? This kind of exception
x.x.x.x.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [x.y.z.IXXXXManagerFactory] is defined: No beans of type x.y.z.IXXXXManagerFactory; owner=com.hiddenduetoNDA.springframework.context.support.GenericApplicationContext@1a54c73: display name [com.hidden.....core.repackaged.springframework.context.support.GenericApplicationContext@1a54c73];
Thanks to Spring I have yet another layer of . .. . lookup-code!!!! to navigate. And here's a big shout-out to BEA for mangling EJB-annotations by using Spring to "implement" them.
Ever picked apart an EAR 80Mb and expanded it and gone through thousands of entries to find why the class cannot be loaded? I have!!!! and at the end, still no reason!!!!
Forum hosting says:
Added on January 27th, 2012 at 12:37 amI am happy to find this post very useful for me, as it contains lot of information. I always prefer to read the quality content and this thing I found in you post. Thanks for sharing