This Week in Spring - 18 December, 2012

Engineering | Josh Long | December 19, 2012 | ...

Welcome back to another installment of This Week in Spring!

Can you believe we're already further along through December than not? Time sure flies, and yes, we are staring down the end of the year already - but the holiday season usually brings a SpringFramework release right around this time of year, so we're feeling festive! We've even gots tons of extra SpringSource buttons to celebrate.


  1. First and foremost, Spring 3.2 has gone GA! Just read the post. Waay too much awesome in one release, and - if you've been following this series over the year than you know I've been looking forward to it. Come back and read the rest when you've upgraded your application and played with some of the awesome new stuff! I'll wait...
	    You know what the best part is? Usually, after a new Spring release, the release train of other Spring projects is quick to adopt - so expect lots of releases in the new year!</LI>  
  • Next up, Spring Security lead and ninja Rob Winch just announced Spring Security 3.2.0.M1, packed with new features for Servlet 3 environments, among other things.
  • <LI> We could just stop right there, you know?  BUT, there's more! In this…

    Spring Roo 1.2.3.RELEASE available

    Engineering | Alan Stewart | December 18, 2012 | ...

    The Spring Roo team is pleased to announce the availability 1.2.3.RELEASE.  This is the third maintenance release for 1.2 and includes fixes for a number of issues and includes support for Spring Framework 3.2.0. Please see the change log for a list of the bugs and improvements completed.

    I hope you enjoy this new release!


    Spring Roo Project Lead

    Spring Security 3.2 M1 Highlights, Servlet 3 API Support

    Engineering | Rob Winch | December 17, 2012 | ...

    Last week I announced the release of Spring Security 3.2 M1 that contains improved Servlet 3 support. In this post, I will introduce some of the more exciting features found in the 3.2 M1 release. Specifically, we will take a look at the following new Spring Security features:

    Concurrency Support

    You might ask "What is concurrency support doing in a release that has a Servlet 3 focused theme?" The reason is that the concurrency support provides a foundation for all the other features found in this release. While the concurrency support is used by the Servlet 3 integration, it can also serve as building blocks to support concurrency and Spring Security in any application. Let's take a look at Spring Security's concurrency support now.


    One of the most fundamental building blocks within Spring Security's concurrency support is the DelegatingSecurityContextRunnable. It wraps a delegate Runnable in order to initialize the SecurityContextHolder with a specified SecurityContext for the delegate. It then invokes the delegate Runnable ensuring to clear the SecurityContextHolder afterwards. The DelegatingSecurityContextRunnable looks something like this:

    public void run() {
      try {
      } finally {

    While very simple, it makes it seamless to transfer the SecurityContext from one Thread to another. This is important since, in most cases, the SecurityContextHolder acts on a per Thread basis. For example, you might have used Spring Security's <global-method-security> support to secure one of your services. You can now easily transfer the SecurityContext of the current Thread to the Thread that invokes the secured service. An example of how you might do this can be found below:

    Runnable originalRunnable = new Runnable() {
      public void run() {
        // invoke secured service
    SecurityContext context = SecurityContextHolder.getContext();
    DelegatingSecurityContextRunnable wrappedRunnable =
        new DelegatingSecurityContextRunnable(originalRunnable, context);
    new Thread(wrappedRunnable).start();

    The code above performs the following steps:

    • Creates a Runnable that will be invoking our secured service. Notice that it is not aware of Spring Security
    • Obtains the SecurityContext that we wish to use from the SecurityContextHolder and initializes the DelegatingSecurityContextRunnable
    • Use the DelegatingSecurityContextRunnable to create a Thread
    • Start the Thread we created

    Since it is quite common to create a DelegatingSecurityContextRunnable with the SecurityContext from the SecurityContextHolder there is a shortcut constructor for it. The following code is the same as the code above:

    Runnable originalRunnable = new Runnable() {
      public void run() {
        // invoke secured…

    Spring Framework 3.2 goes GA

    Engineering | Juergen Hoeller | December 13, 2012 | ...

    Dear Spring community,

    Exactly one year after the Spring Framework 3.1 release, I'm pleased to announce that Spring Framework 3.2 is generally available now!

    We recommend an upgrade from all previous Spring releases, in particular from Spring Framework 3.1.x which this is a direct successor for.

    As previously discussed, key features in Spring Framework 3.2 include:

    • Refined Java SE 7 support within the framework as well as through upgrades to CGLIB 3.0, ASM 4.0 (both of which we're inlining now) and AspectJ 1.7
    • Concurrency refinements across the framework, avoiding the use of synchronization wherever possible - in particular for scoped/prototype beans
    • Allowing for @Autowired and @Value to be used as meta-annotations, e.g. to build custom injection annotations in combination with specific qualifiers
    • Support for custom @Bean definition annotations in @Configuration classes, e.g. in combination with specific qualifiers, @Lazy, @Primary, etc
    • Asynchronous MVC processing on Servlet 3.0

    Spring Security 3.2.0.M1 Released

    Releases | Rob Winch | December 13, 2012 | ...

    The first milestone release toward Spring Security 3.2 is now available from the SpringSource repository at See here for a quick tutorial on resolving these artifacts via Maven.

    The highlights of this release include:

    • Concurency Support
    • Servlet 3, Async Support
    • Spring MVC Async Integration
    • Servlet 3 API Integration
    • New Servlet API Sample Application
    Stay tuned to the SpringSource Blog over the coming week for information on what's new in 3.2.0.M1.

    Changelog | Download | Reference Manual | FAQ

    Spring Social Yammer 1.0.0 Released

    Releases | Craig Walls | December 12, 2012 | ...

    Dear Spring Community,

    I'm happy to share the news that Morten Andersen-Gott (aka, @mortenag on Twitter or magott on GitHub) has released Spring Social Yammer 1.0.0. Spring Social Yammer is one of over 25 community-led extension to Spring Social. It brings Spring Social-style connection and API binding support to applications needing to connect with Yammer.

    Spring Social Yammer can be found at the following links:

    Spring Social Yammer is also available in the Maven Central repository for inclusion as a dependency in your Maven or Gradle builds.

    Morten announced the release via Twitter at Please join me in congratulating him on his…

    This Week in Spring - 11 December, 2012

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

    Welcome to another installment of This Week in Spring! We finished SpringOne China over the weekend and are today at the first of two events for SpringOne India in Bangalore and SpringOne in Hyderabad. The shows have been really amazing! In particular, we've enjoyed the food, the sites and the amazing community that have turned up in droves!

    An attendee took a shot of me as I was giving a talk on Spring on Cloud Foundry Dr. Mark Pollack, myself, Gary Russell and Chris Richardson at a restaurant in Beijing
    I gave a talk in Bangalore and people deluged the stage with questions and greetings. I asked the last wave of people to take a photo with me. LtoR: Gary Russel, Josh Long, Jennifer Hickey, Jeremy Grelle, Oliver Gierke, Chris Richardson -- the whole SpringOne India lineup


      <LI> Roy Clarkson has announced <a href = "">Spring for Android 1.0</a>, which     adds support for Jackson 2.x in <code>RestTemplate</code> through the new <code>MappingJackson2HttpMessageConverter</code>. It also addresses several bugs and compatibility issues with <code>RestTemplate</code> and Android Jelly Bean.</LI>
      <LI>The <a href=""> portal</a> has a nice post on Spring Insight Developer to analyze code, <a href="">install it with Tomcat, and…

      Introducing Spring Scala

      Engineering | Arjen Poutsma | December 10, 2012 | ...

      Last October, at SpringOne2GX, I introduced the Spring Scala project to the world. Since then, I've also presented this project at Devoxx. In this blog post, I would like to give further details about this project and how you can use it in your Scala projects.

      Why Spring Scala?

      The goal of the Spring Scala project is simply to make it easier to use the Spring framework in Scala. We believe that there are many Spring users out there who want to try Scala out, but do not want to leave their experience with Spring behind. This project is meant for those people.

      Obviously, you can use the (Java) Spring Framework in Scala today, without Spring Scala. But doing so will be awkward in certain places. Just like any programming language, Scala has its own, different way of doing things, and using a pure Java framework like Spring in Scala will just feel "too Java-esque". Spring Scala tries to fix…

      Spring for Android 1.0.1 Released

      Releases | Roy Clarkson | December 06, 2012 | ...

      Dear Spring Community,

      We are happy to announce the release of Spring for Android 1.0.1!

      Spring for Android is an extension of the Spring Framework that aims to simplify the development of native Android applications.

      This release adds support for Jackson 2.x in RestTemplate through the new MappingJackson2HttpMessageConverter. It also addresses several bugs and compatibility issues with RestTemplate and Android Jelly Bean. See the changelog and reference manual for more information.

      To retrieve the software, download the release distribution, or add the maven artifacts to your project. Sample apps are available at

      If you are building an Android app, we encourage you try out Spring for Android 1.0.1 and collaborate with us on the next iteration of the project.

      Get the Spring newsletter

      Thank you!

      Get ahead

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

      Learn more

      Get support

      Spring Runtime 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