Spring Framework 3.2 M2 Released

Releases | Chris Beams | September 12, 2012 | ...

The second milestone release toward Spring Framework 3.2 is now available from the SpringSource repository. If you're not already familiar, see our quick tutorial on resolving these artifacts via Maven. The complete distribution zip is available as usual from the SpringSource community download site.

Be sure to catch up on the changes in 3.2 M1 if you haven't already.

Highlights from 3.2 M2 include:

A major area of focus for 3.2 is ensuring that Spring Framework runs flawlessly on JDK7. M2 artifacts have been built, tested and published against JDK7 and we continue to test JDK6 compatibility in nightly builds as well. We encourage all Spring users on JDK7 to give M2 a spin in your development and test environments and provide as much feedback as possible prior to 3.2 GA. Thanks!

Users of @Configuration classes and Spring's support for subclass proxies (proxy-target-class=true), please take note: it is now no longer necessary to add CGLIB as an explicit dependency to work with these features. As of 3.2 M2, we have upgraded to the new CGLIB 3.0. We repackage all net.sf.cglib classes to org.springframework.cglib and inline them directly within the spring-core JAR. This means that all @Configuration and subclass proxying functionality works out of the box in M2, and means no potential for CGLIB conflicts with other projects. Likewise, we have upgraded to the new ASM 4.0, which we continue to repackage and inline as we have done for quite some time now. Note however that we've eliminated the dedicated spring-asm jar in M2 in favor of including org.springframework.asm classes directly in spring-core. Both of these upgrades are good news for JDK7 users writing Spring components in dynamic JVM languages, as these new versions of CGLIB and ASM properly handle the new invokedynamic bytecode instruction introduced in JDK7.

Enjoy!

Download | Documentation | Javadoc API | Change Log | JIRA | Forum | Stack Overflow

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…

Spring Social Facebook 1.0.2 Released

Releases | Craig Walls | September 10, 2012 | ...

Dear Spring Community,

We are pleased to announce the release of Spring Social Facebook 1.0.2!

This release primarily adjusts Spring Social Facebook's API binding to some recent and upcoming changes in the Facebook Graph API. Specifically:

  • The "picture" field of many objects in the Facebook's Graph API is changing from a simple string containing the URL to an object with additional information about the picture. Spring Social Facebook's API binding has been changed to handle either form and return the URL string.
  • The "likes" field of the Graph API's Comment object has been renamed to "like_count". Spring Social Facebook's API binding has been changed to bind to the new "like_count" field.
  • The picture property of Page, Post, and Video has been deprecated. While it will still return the URL string for a picture in 1.0.2, this property will be replaced in Spring Social Facebook 1.1.0 with one that returns an object with more complete metadata about the picture.
  • The position property of the Photo object has been deprecated, as this property will no longer be populated by the Facebook Graph API. This property will be removed in Spring Social Facebook 1.1.0.

To get the software, download the release distribution or simply add/update the maven artifacts to your project:

<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-facebook</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>

We are continuing to monitor any changes that Facebook may apply in their graph API and if an adjustment in Spring Social Facebook's API binding is required, will release followup maintenance releases with those adjustments. We are also looking ahead to the 1.1.0 release of Spring Social, Spring Social Twitter, and Spring Social Facebook with some exciting new features in the coming months. We invite you to participate in the discussion in the Spring Social forum, in the issue tracker (Core|Facebook|Twitter), or at GitHub (Core|Facebook|Twitter).

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…

Spring Data release train reaches RC station

Releases | Oliver Drotbohm | August 24, 2012 | ...

Dear Spring community, I am pleased to announce the next Spring Data release train stop, including Spring Data JPA, MongoDB, Neo4j, Gemfire as well as its foundation Spring Data Commons. The release is the final one before bringing all the modules into GA state of their next major version. Here are the highlights:

All modules

  • Depend on Spring 3.1.2 by default. The modules are still fully compatible with Spring 3.0.7 but users have to manually declare Spring dependencies in they Maven pom.xml files if they'd like to use the older version. Note that some of the features included in this release (e.g. the usage of @EnableRepositories) require Spring 3.1.0 at least.

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.

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:

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