This Year in Spring - 25 December, 2012

News | Josh Long | December 25, 2012 | ...

Welcome back to another, very special holiday, and end-of-year installment of This Week in Spring! If you've been a follower of this roundup, then you know that 2012's been a very exciting year for Spring! Let's look at some of the highlights, first, before we get to our weekly roundup:

  1. Springing Forward Of course, this year saw the release of Spring 3.2, released a year exactly from the release of Spring 3.1, packed with new features and helping Spring retain its position as the premiere platform for building web applications. This year also saw many major improvements and iterations in the other Spring projects like Spring Integration 2.2.0 GA, Spring Data
  2. The Cloud Spring works very well on all cloud platforms, owing to the natural decoupling from the underlying platform that dependency injection provides, but it has always - and continues - to enjoy a special place in the sun on Cloud Foundry, the open source PaaS. And, what a year it's been for Cloud Foundry! We've seen ecosystem partners like App Fog take the Cloud Foundry bits and run with them. We've seen the support for Spring applications on Cloud Foundry improve considerably with new features like standalone processes, and much more.
  3. The RESTful Web If you ask me, the most exciting part of this year was watching Spring's web support improve. If you're looking to build a web application (including in a Servlet 3 environment) or expose RESTful API endpoints, Spring MVC is the natural choice. If you want secure those RESTful endpoints, Spring Security OAuth is an easy to use binding that supports OAuth on top of REST. Need to connect to social service providers like Twitter, Facebook, LinkedIn and GitHub via OAuth? Use Spring Social. Want to support the principles of HATEOAS in your RESTful endpoints? Check out Spring HATEOAS. Do you want to transparently and easily expose Spring Data repositories for use as RESTful endpoints? You need look no further than Spring Data REST. There are no richer, more comprehensive or more integrated set of solutions for building rich, RESTful web applications than those that Spring provides today.
  4. Git'ing Involved This year, in particular, saw community interaction in the Spring open source projects skyrocket, now that all of the projects are all fully on GitHub.com/SpringSource. Spring and the other projects have always been open source, but the collaboration model that Git enables has made it very easy for projects like Spring Social, Spring Integration, and Spring Data to thrive on community input and contributions.
  5. Extending the reach of SpringSource's content We've been working hard to bring great content on all things SpringSource to all the developers, and have expanded a lot this year. For instance, besides publishing content here on SpringSource.org, did you know that you can find SpringSource on @SpringSource on Twitter, +SpringFramework on Google+, on the YouTube SpringSourceDev channel and (this is particularly useful for the many fans in China) on SpringFramework on SINA Weibo? Additionally, if you like this roundup, be sure to bookmark the This Week in Spring aggregate page.

Now then, on to this week's roundup! There's a lot to cover, and hopefully you wont want for things to read this week if you're taking time off for the holidays and have some spare time on your hands!

 <Ol>   
	 <LI> If you've been following this roundup, then you know that we wrapped up our SpringOnes India and China events. For more details,  <a href="http://www.springsource.org/node/3777">checkout our wrapup post</a>!</LI>
	<LI> The <EM>baeldung</EM> blog has another great post up on using Spring MVC and Spring Security to <a href="http://www.baeldung.com/2012/12/20/authentication-against-a-restful-service/">secure a RESTful web service</a>. There are many ways to secure an HTTP REST web service, including HTTP Basic and the bespoke solution presented in this article. Many people are…

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.

Buttons!

  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!

    Alan

    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.

    DelegatingSecurityContextRunnable

    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 {
        SecurityContextHolder.setContext(securityContext);
        delegate.run();
      } finally {
        SecurityContextHolder.clearContext();
      }
    }
    

    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 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 http://repo.springsource.org. 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 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 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 http://twitter.com/mortenag/status/278794566755299328. 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 = "http://www.springsource.org/spring-android/news/1.0.1-released">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="http://www.tomcatexpert.com">TomcatExpert.com portal</a> has a nice post on Spring Insight Developer to analyze code, <a href="http://www.springsource.org/node/3761">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…

      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