Community-Driven Spring Integration Extensions

Engineering | Gunnar Hillert | August 23, 2012 | ...

The Spring Integration team proudly announces the availability of the Spring Integration Extensions repository. The main goal for this new GitHub-based repository is to promote a vibrant community of adapter and extension developers, and to encourage a broader segment of the community to contribute to the project. The Spring Integration Extensions project is hosted at:

This new repository will give us the flexibility to incorporate new contributions much more rapidly, without having to go through the core Spring Integration framework’s stricter vetting process. Since each community contributed extension is a separate project in the Spring Integration Extensions repository, it will have its own release life-cycle independent from the one that governs the core Spring Integration framework. As a result, this will allow for more frequent releases.

Over time, we expect that some of the lesser used Spring Integration modules may transition into the Extensions repository. On the other hand, for some extension modules, the Spring Integration Extensions project may also serve as an incubator, whereby they may eventually be incorporated into the core Spring Integration framework.

Thanks to several community contributions, the new repository already provides several adapters such as the XQuery Adapter (incl. support for XPath 2.0) and the SMB Adapter. Several adapters around Amazon Web Services (AWS) will be added in the coming weeks (Amazon S3, Amazon SNS, Amazon SQS). Furthermore, we are providing an early version of a Print Adapter and we are also working on an adapter providing WebSocket support using Atmosphere.

How Can I Become a Contributor?

If you have an idea regarding new extensions and/or adapters, please feel free to file a JIRA ticket. If you have already created an extension module and you want to contribute code, please fork the Spring Integration Extensions repository, add your module and issue a pull request. Before we can merge your code, though, you have to fill out the Contributor License Agreement. Once submitted, we and/or other community members will review your pull request and merge it. For much more detailed information, please take a closer look at the Contributor Guidelines for the Spring Integration Extensions project.

Creating New Spring Integration Extension Modules

One of the more popular extension types are Spring Integration Adapters. In order to simplify the process of writing custom adapters for Spring Integration, we now provide an Adapter Template for SpringSource Tool Suite (STS) 3.0.0. This template will make it very easy for contributors to build out new adapters quickly, while still ensuring consistency with those provided in the core Spring Integration framework (package structure, naming conventions, namespace handlers/parsers, etc).

The Spring Integration Adapter Template, which is part of the Spring Integration Templates project, creates a fully functional Spring Integration Module, and the template will create the following commonly used components:

  • Inbound Channel Adapter
  • Outbound Channel Adapter
  • Outbound Gateway

The template will not only create the core Java classes and some basic unit tests, but it will also provide XML Namespace support, which includes the XML Schema and the associated parser classes. Even if you create other types of components, this template should still give you valuable insights into how to develop those. For more information on using STS Templates for Spring Integration, please see the following blog posting:

The created adapter project will use Gradle as its build tool, and it closely follows the build tasks as defined for Spring Integration:

Build the Adapter project

    $ ./gradlew build
Install the Adapter project to your local Maven repository

    $ ./gradlew install
Generate the JavaDoc

    $ ./gradlew api
Generate metrics using Sonar

    $ ./gradlew sonar
Build the complete distribution

    $ ./gradlew dist

For more information please see How to Create New Components on the Spring Integration Extensions Wiki.

Further Resources

Spring Integration GitHub Repositories

For completeness, here is a list of all Spring Integration relevant GitHub repositories:

Spring AMQP 1.1.2 Released

Releases | Gary Russell | August 23, 2012 | ...

Spring AMQP provides the familiar benefits of the Spring programming model to AMQP and, specifically, Rabbit MQ.

We are pleased to announce the availability of the 1.1.2 maintenance release of spring-amqp for Java, which includes a number of important bug fixes.

For more information, refer to the project home page.

This Week in Spring - August 21, 2012

Engineering | Josh Long | August 21, 2012 | ...

Welcome to another installment of This Week in Spring! This roundup is put together by aggregating lots of great content from all around the web. If you have content suggestions, or if you simply want a direct line to some of the content that we post, check us out on Twitter, and Google+. As usual, we've got a lot to go over, so let's dive into it.

  1. Up first this week, there is a lot of new content available on the SpringSource Dev YouTube channel.
    	The video from  Spring Data Neo4J lead Michael Hunger's excellent webinar <a href = "http://www.springsource.org/node/3632">introducing Spring Data Neo4j</a> is also available. 
    

    The video from VMWare engineer Jerry Kuch's webinar providing an update on the new features in RabbitMQ is also available. Finally, the video from the webinar that Ken Rimple, Srini Penchikala, and I did introducing how to more fully exploit Spring Roo's interactive add-on mechanism is available.

  2. Spring Security OAuth lead Dr. David Syer has announced that Spring Security OAuth 1.0.0.RC2 is now available.
  3. 	<LI> Remember our pal Tobias Trelle? He's got another fantastic article that's been published on InfoQ called <a…

Video: Introduction to Spring Data Neo4j

News | Chloe Jackson | August 16, 2012 | ...

View this webinar for a practical guide to get started with Spring Data Neo4j the integration library for the Neo4j graph database. This webinar is the perfect complement to the Good Relationships book and is aimed toward those interested in quickly learning how to get started using Spring Data Neo4j.

During this webinar we will cover:

  • Spring Data Neo4j's features and benefits
  • Spring Data Neo4j use case: A twitter-graph app using Spring Data Neo4j with Spring Social
  • Step by step demo to get started working on Spring Data Neo4j

Spring Data Neo4j is part of the Spring Data project which aims to provide convenient support for NoSQL databases.

Please also see the follow-up blog post which answers all questions from the Q&A section and links to sourcecode and slides.

Be sure to thumbs up the presentation if you find it useful and subscribe to the SpringSourceDev channel to see other recordings and screencasts.

Video: Spring Roo—Not Just another RAD Tool!

News | Chloe Jackson | August 16, 2012 | ...

Most of you probably know Spring Roo as the Java-based rapid application development tool that uses AspectJ and a command-line shell to build Spring applications. But underneath those slick commands that set up your application components lurks an even more powerful and extensible platform, one that you can use to build anything you want.

In this presentation, SpringSource's Josh Long and Spring Roo in Action authors Ken Rimple and Srini Penchikala introduce Spring Roo 1.2, and then go further, exposing Roo's powerful addon-based underbelly. They introduce Roo's OSGi bundle support, and introduce how add-ons can be used to generate code, install templates, respond to addition / removal of annotations, and expose both open-source and internal-company libraries for use by your developers. Finally, they wrap up by discussing the recently developed Tailor add-on, and will show how it can be used to completely customize your developers' shell environment.

Presenters: Ken Rimple, Srini Penchikala, and Josh Long

Be sure to thumbs up the presentation if you find it useful and subscribe to the SpringSourceDev channel to see other recordings and screencasts.

This Week in Spring, August 14th, 2012

Engineering | Josh Long | August 15, 2012 | ...

Welcome to another installment of This Week in Spring! As usual, we've got a lot to cover, so let's get to it.

  1. The SpringSource Tool Suite has been open sourced! And, two different versions of it are now available, supporting two different developers: the Spring developer, served by the Spring Tool Suite, and the Groovy and Grails developer, served by the Groovy/Grails Tool Suite. For more on this fantastic news, check out Tool Suites-lead Martin Lippert's blog.
  2. Spring Security lead Rob Winch announced the latest version of Spring Security, version 3.1.2, has been released.
    	 </a>
    <LI> The ZeroTurnaround blog has a <EM> really</EM> cool little blog on rapid development with Spring and Hibernate. 
    	 Of course, Zero Turnaround has a handy little software agent that lets you reload Java classes on the fly. So that's a <EM>huge</EM> gain in productivity right there. That, coupled with XML-free Spring 3.1 and Hibernate 4.1, and you have yourself a <Em>really</EM> awesome combination. To learn more, check out the blog!  The example he illustrates are also well <a href = "http://github.com/cloudfoundry-samples/springmvc-hibernate-template">represented in this sample…

Video: What's New in RabbitMQ - June 2012 Edition

News | Chloe Jackson | August 15, 2012 | ...

In the last year and a half, RabbitMQ has seen six major new releases. In this talk, we briefly review messaging, RabbitMQ and the AMQP protocol before covering some of the new features including easier plugin management, new plugins and extensions, publisher confirms, dead lettering, and a new high availability feature based on mirroring queues across nodes in a cluster. Presenter: Jerry Kuch, Staff Engineer, VMware

Be sure to thumbs up the presentation if you find it useful and subscribe to the SpringSourceDev channel to see other recordings and screencasts.

SpringSource Tool Suites 3.0.0 released - reorganized, open-sourced, and at GitHub

Engineering | Martin Lippert | August 13, 2012 | ...

Introduction

We are proud to announce that the newest major release of our Eclipse-based developer tooling is now available. This is a major release not only in terms new features but because of other serious changes like componentization, open-sourcing and the fact that for the first time we are making multiple distributions available, each tailored for a different kind of developer. Let's look at the details:

The Spring Tool Suite and the Groovy/Grails Tool Suite

In the past the SpringSource Tool Suite came as a full distribution download that was ready-to-use by most Spring developers. In contrast to that Groovy/Grails developers had to install several extensions manually into their development environment to get started. This has changed. We are now shipping two full distributions:

  • Spring Tool Suite: The Spring Tool Suite is a full distribution of our Eclipse-based tooling that comes with all the necessary parts pre-installed that you need to work with your Spring projects. It includes support for the Spring Core framework itself, Spring Integration, Spring Batch, Spring Webflow, Spring Data, and many more. It comes with the latest versions of tc Server Developer Edition and Spring Roo, the latest Eclipse Integration for Maven and is build on top of the latest Eclipse Juno 4.2 release. This is very similar to what was previously called the SpringSource Tool Suite.
  • Groovy/Grails Tool Suite: The Groovy/Grails Tool Suite is a full distribution of our Eclipse-based tooling that is customized for Groovy and Grails development. It has Groovy-Eclipse pre-installed as well as our Grails tooling, support for direct deployment to tc Server, and comes with a ready-to-use Grails installation as part of the distribution. It is also build on top of the latest Eclipse Juno 4.2 release and provides a ready-to-use experience for our Groovy-Grails users.

Open-Source and at GitHub

We are strongly committed to open-source and are active committers on many of the open source projects that our tooling includes, for example AspectJ, AJDT, and Groovy-Eclipse. Spring IDE, one of the major parts of the SpringSource Tool Suite in the past, was also always open-source. Now we are open-sourcing all parts of the tool suites under the Eclipse Public License at GitHub under the SpringSource organization at GitHub. The formerly commercial add-ons to the Spring tooling, like the integration for Spring Roo, or the add-ons to provide better content-assist, better code-completion, and advanced refactoring support, as well as project templates for Spring, have been contributed to the Spring IDE project. Other parts are extracted into brand new open-source projects, like the Eclipse integration for tc Server.

Componentized Projects

To allow individual installation and better modularization among the different parts of the tool suites, we have componentized the different parts into their own projects. They all live at GitHub, provide their own nightly update sites, and can be installed into a plain Eclipse JEE installation individually.
  • Spring IDE: This brings you all the tooling for working with the Spring framework, along with integrations for various additional Spring-related technologies like AJDT, Spring Integration, Spring Webflow, Spring Data, Spring Security, and Spring Roo. The support for Maven and Spring Roo, that was formerly part of STS only, has been integrated into this project. (https://github.com/SpringSource/spring-ide)
  • Grails IDE: Brings you the full Grails developer tooling that was previously installable from the dashboard into a SpringSource Tool Suite instance. It is built on top of the Groovy-Eclipse project. (https://github.com/SpringSource/grails-ide)
  • Eclipse Integration for tc Server: This component provides the ability to create new instances of tc Server, use existing ones, deploy and update apps directly from your workspace, configure your tc Server instance, and activate Spring Insight. (https://github.com/SpringSource/eclipse-integration-tcserver)
  • Eclipse Integration for Gradle: This provides Gradle support in Eclipse. It allows the user to import their gradle configured projects directly and will automatically manage the dependencies according to the gradle configuration. It also allows execution of gradle tasks directly from Eclipse.(https://github.com/SpringSource/eclipse-integration-gradle)
  • Eclipse Integration Commons: This project contains the shared infrastructure that is common across the above components. Additionally it contains UAA and the SpringSource Dashboard. (https://github.com/SpringSource/eclipse-integration-commons)

As an effect of this reorganization and the open-sourcing, there are fewer dependencies between these projects. Therefore you can consume them individually from the projects update sites, if you want to, and only a minimal set of dependencies will be pulled in. For example the Eclipse integration for VMware vFabric tc Server can be installed into a plain Eclipse JEE without the need to also install Spring IDE, Grails IDE, or other components. You can always use the Dashboard (that comes with every project, like UAA) to easily add other projects to your existing installation as you might be…

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all