This Week in Spring - September 11, 2012

Engineering | Josh Long | September 11, 2012 | ...


Welcome to another installation of This Week in Spring! I'm off to Oslo, Norway for the JavaZone conference to talk to people about using Spring Integration and Spring Batch on top of Cloud Foundry. Again, this is a natural use case: Cloud Foundry makes it easy to scale to handle the largest workloads, and Spring Integration and Spring Batch, presumably sitting on top of RabbitMQ, take care of the plumbing and do the heavy lifting of workload distribution across the cluster.

 <P>Wrapping up from last week's Cloud Foundry   Open Tour - India, touring <a href="http://opentour.cloudfoundry…

Integrating Spring MVC with jQuery for validation rules

Engineering | Michael Isvy | August 29, 2012 | ...

I was thrilled to see in a recent survey from zeroturnaround that Spring MVC was voted the most popular web framework for Java.

This framework is very flexible and there are dozens of ways to use it. As with all flexible frameworks that have many options, it is important to discuss common practices.

The project I have created for this blog entry uses features common in many Spring MVC applications. You will find something like this:

In controllers you will find typical Spring MVC features for mapping requests, extracting request data through annotations, data binding, file upload…

On the…

This Week in Spring - August 28th, 2012

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

Welcome back to another installment of This Week in Spring, VMWorld edition! We're at the VMWorld event, talking to developers about Spring and Cloud Foundry. There's been a lot of exciting news coming out of this event, including some interesting updates around vFabric and updates regarding the timelines for Cloud Foundry itself: CloudFoundry.com, the hosted PaaS from VMware, will be GA by end-of-year, and next year will see the availability of a private on-premise Cloud Foundry. Both vFabric and Cloud Foundry are ideal environments for your Spring applications, and it's nice to see these platforms evolve.

  1. Oliver Gierke has announced that the Spring Data Release Train has reached the station! This release is an umbrella release of several projects that provides uniformity across the various modules.
    	This release includes Spring Data Commons 1.4.0.RC1, Spring Data JPA 1.2.0.RC1, 
    	Spring Data MongoDB 1.1.0.RC1, Spring Data Neo4j 2.1.0.RC3 and Spring Data Gemfire 1.2.0.RC1.
    	
    	
    	  </LI>
    <LI> Gunnar Hillert has a nice blog introducing how to <a href = "http://blog.springsource.org/2012/08/23/spring-integration-extensions/">bootstrap custom Spring Integration adapter development.</a>
    	 
    	 </LI>
    
    <LI>  Gary Russel has announced that the latest iteration of  <a href  = "http://www.springsource.org/node/3639">Spring Integration, 2.2.0M4, is now available</a>.  Gary, a very busy man indeed…

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:

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…

This Week in Spring, August 14th, 2012

Engineering | Josh Long | August 14, 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…

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…

This Week in Spring - August 7th, 2012

Engineering | Josh Long | August 07, 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. I did a brief review of Manning's new book, Spring Roo in Action. Check it, and the book, out!
    </li>
      <LI> The <a href = "http://bit.ly/QWSrml">Cloud Foundry Integration for Eclipse Now Supports Tunneling to Services</a>. This increases the parity betwen the Eclipse support (and the SpringSource Tool Suite support)  and the <CODE>vmc</CODE> command-line client.  </LI>
    	
    
    	<LI> The VMware has a very cool blog taking a look the roles Spring and RabbitMQ play in 
    		 <a href = "http://blogs.vmware.com/vfabric/2012/07/spring-and-rabbitmq-behind-indias-12-billion-person-biometric-database-1.html">in the new project behind India's 1.2 Billion Person Biometric Database</a>. <EM>Very</EM> cool…

The Most Amazing Java Type Declaration Ever

Engineering | David Turanski | August 03, 2012 | ...

I'd like to think I'm pretty comfortable with Java and generics but I recently came across this bit of Java code and it stopped me in my tracks :

public abstract class AnnotationBasedPersistentProperty<P extends PersistentProperty<P>> extends AbstractPersistentProperty<P> {..}

This class is internal to the Spring Data framework's Repository Support which removes the need to write boilerplate code when implementing a data access layer and also provides a common programming model for mapping domain objects and managing data access to any type of persistent store.  Spring Data's  current repository implementations include relational databases (JPA), Gemfire,MongoDBNeo4.

Fortunately, if you use Spring Data in your Java…

This Week in Spring - July 31, 2012

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

Welcome to another installation of This Week in Spring!

This week I'm in Bangalore, India with other members of the SpringSource and Cloud Foundry teams talking to major system integrators about Spring and Cloud Foundry. The uptake's amazing, and the feedback is even better.

In related news, the Cloud Foundry Open Tour is coming to India next month! If you want to hear thought leaders and experts and learn about cloud computing, platform-as-a-service, architecture and Spring, then be sure to register now for either the Bangalore or Pune events. I look forward to seeing you there!

  1. Jonathan Brisbin has announced the latest release of Spring Data Rest, version 1.0.0.RC2, which features JSONPE support, and better integration with Spring MVC applications, as well as even more configuration hooks so you can exert even more control over the behavior of the framework.
  2. Dr. David Syer has announced the 1.0.0.RC1 release of Spring Security OAuth. Spring Security OAuth is a module that works with Spring Security and lets you expose OAuth-secured RESTful resources.

    The new release features lots of new extension points in the Authorization Server features, a Whitelabel UI for better out-of-box experience, and improved support for expressions in security filters. Check it out!

  3. <LI> WADL is a description format for RESTful web-services,  in much the same way that  WSDL describes SOAP-based web services' contracts. This excellent…

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