This week in Spring: June 7th, 2011

Welcome back to another exciting roundup! This week’s been a blur. Honestly. So much new stuff happening, all after the rush of excitement that was the S2G Forums in Europe last week. Leave’s a guy breathless, but excited. Read on!

  1. Mark Fisher and Ramnivas Laddad’s webinar Spring From Zero to Cloud in 60 Minutes is available online.
    This webinar is a breakneck-speed tour of some of the Spring, Spring Roo and Grails support on CloudFoundry. Check it out!
    Before you start watching, however, quickly signup at to get access to the public, free-beta cloud service.
    If you want to checkout the code and learn more, check out

  2. Jeremy Grelle, Spring BlazeDS lead and general “Spring web dude,” has announced the first release candidate of the Spring Flex project. The Spring Flex project integrates the Flex BlazeDS middleware with Spring, providing a dead-simple way to expose Spring beans in a way that can be consumed by Flex or Adobe AIR web and desktop clients. The Spring Flex project also provides integration with Spring Security and provides tight-knit support for server-side push based messaging, entirely in-BlazeDS, or through JMS or Spring Integration. Ever wanted to notify users logged into an application that something’s happened on the server side (Twitter message, new AMQP message, new XMPP message, whatever..)? Spring Flex makes it easy.
  3. Martin Lippert, SpringSource Tool Suite team lead, has given an interview about the latest and greatest in SpringSource Tool Suite 2.6. He talks about many of the highlights, including STS 2.6’s reworked Spring Webflow visualization, Java configuration support, the cloud, agent-based reloading, and what’s next. Check it out!
  4. Thomas Risberg has announced the Spring Data Document support for MongoDB, release 1.0.0.M3. The changes and new features in Spring Data Document 1.0.0.M3 includes much improved mapping and conversion support. The MappingMongoConverter is now the default converter used by the MongoTemplate and the SimpleMongoConverter has been deprecated and will be removed. The concept of a default collection name has also been removed and all operations of the MongoTemplate are based on the collection name used for the entity class that is the target of the operation. The collection name used for an entity class defaults to the classname starting with a lower-case letter but it can be customized using the @Document annotation. See the changelog for more details.
  5. Milestone 5 of Virgo 3.0.0 is available for download. This is an important milestone which adds significant functional enhancements, upgrades several dependencies to their latest levels including Spring 3.0.5, Tomcat 7.0.12, and Servlet 3.0, and fixes a number of bugs. Full details are available in the release notes. The Virgo Web Server from EclipseRT is a completely module-based Java application server that is designed to run enterprise Java applications and Spring-powered applications with a high degree of flexibility and reliability. It offers a simple yet comprehensive platform to develop, deploy, and service enterprise Java applications.

  6. Marius Bogoevici - a Spring Integration committer - has written
    a fantastic post on the options for using a JPA EntityManager in JBoss AS with Spring. The main thrust of the post is that the application server automatically creates an EntityManager, by default, so there may be no need to recreate one in Spring - you can simply inject the existing reference. This approach is specifically to get around the presumptuous behavior of a full blown application server. If you’d like to run in Tomcat, then Spring’s the easiest way to configure a JPA EntityManager. Marius also explains how to let Spring run the show entirely by disabling the application server behavior. This has the plural benefits of usually being more performant, and of keeping configuration with the application itself, not the server.

  7. Matt Raible has posted a follow up to his blog posts and screencasts on security in web applications. Previously, he demonstrated how to use Spring Security, Apache Shiro, and Java EE security in a pseudo identical fashion to secure a web application, highlighting the differences as appropriate.
    This follow up article talks about all three technologies and provides a comparison for enabling programmatic login when integrated in a Spring MVC application. The Spring Security support has been around for a long time and works in numerous containers (not Just Java EE 6 compliant containers) with no fuss. Nice!

  8. Have you dabbled in other JVM based languages? Have you taken a look at Scala? Well at the recent Scala Days conference in Palo Alto, CA, the Cloud Foundry team announced new Scala support on!

  9. If you were at the S2G Forums in London last week, you would’ve received a free copy of the Open Source Journal - a printed (and freely downloadable .PDF) magazine. This publication has done a bang up job covering some of the Spring framework technologies. It’s available from the publisher’s web site as a free download. Check out the first and second issues here.
    The second issue, for example, has a great introduction to Spring.NET (including the new code configuration - the .NET analog to Spring Java’s Java configuration), a look at Spring.NET’s RestTemplate (a nice analog to Spring Java’s RestTemplate), and a look at using Spring Integration (and Spring Web Services) to make short work of exposing web services. This format is especially ideal if you have a .PDF-capable e-reader or tablet PC. Check it out!
Read more

Countdown to Grails 2.0: Unit testing

The first milestone of Grails 1.4 (now 2.0) has now been released and we are on the last stages of the journey towards 1.4 2.0 final. As we approach that point, I will be writing a series of blog posts that cover the various new features and changes that the 1.4 2.0 version brings. I’ll be starting with the new testing support.

Since the beginning, Grails has provided three levels of testing support for developers: unit, integration, and functional. Unit tests had and still have the benefit of running independently of Grails, but they typically required a fair bit of extra work in the form of mocking. The unit test framework introduced with Grails 1.1 helped with that mocking, but it still didn’t cover all use cases and so developers needed to resort to integration tests, which run inside a bootstrapped Grails instance, earlier than was desirable.

Read more

Spring Data Document with MongoDB Support 1.0.0.M3 Released

Dear Spring Community,

I am pleased to announce that the Milestone 3 release of the Spring Data Document 1.0 project with MongoDB support is now available!
The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The MongoDB module provides integration with the MongoDB document database.

Downloads | JavaDocs | Reference Documentation | Changelog

Read more

Spring BlazeDS Integration 1.5.0.RC1 Released

Dear Spring Community,

I'm pleased to announce that the 1.5.0.RC1 release candidate of Spring BlazeDS Integration, the open source solution for building Spring-powered RIAs with Adobe Flex, is now available.

Download | Reference Documentation | JavaDocs | Changelog

This release is largely focused on stabilization of the new features introduced in the previous milestones. Significant attention has been paid to maturing the refactored Spring Security 3 support and the Hibernate AMF serialization support. New annotations such as @AmfIgnore and @AmfCreator allow deeper customization of the AMF conversion process, and this enhanced AMF support has now been made generally available for application to any object type, not just those persisted with Hibernate.

Read more

A Simple Groovy DSL for building RabbitMQ AMQP Applications

Asynchronous applications can sometimes be a challenge while you’re developing them since you usually need two separate components to see the full message publication and consumption lifecycle. It often happens that you write a consumer that can dump messages to System.out or your log file, just so you can make sure your publisher is doing the right thing. It would be really handy if you could mock the message publication and consumption interaction in a single component so you could actually see what’s going on.

Read more

This week in Spring: May 31st, 2011

The excitement continues today at the SpringSource S2G forums here in London! The energy leading up to the event has been staggering, and the talks - on a wide variety of deep, technical topics - are very impressive! I've had several of my questions answered, and learned a lot about some of the new, interesting, upcoming technologies from SpringSource. If you didn't get a chance to attend this year, we will be posting the session slides next week. Also don't forget, there is still SpringOne 2GX later this year (October) in Chicago!

Read more

This week in Spring: May 24th, 2011

What a week! Excitement is in the air as we near the S2G Forums here in Amsterdam on the 26th and then next week in London on the 31st of May. If you’re in Europe, be sure not to miss these exciting, jam-packed days with talks on all manner of topics including Spring, Grails, the cloud, big data and of course tooling.

  1. Mark Fisher and Ramnivas Laddad presented their hit webinar - “From Zero to Cloud in 60 Minutes” - on Cloud Foundry last week.
    Thank you all for attending and making it a success! If you missed it, you can still get the slides and watch the replay here. Note that there are, as usual, lots of other resources there once you’re done with the CloudFoundry webinar. Check out the other developer webinars (scroll down, click on the “Developers” tab), and check out the SpringSource Dev YouTube page.

  2. Juergen Hoeller, the Spring project lead, presented on the next generation of Spring – Spring 3.1 and beyond, at QCon London earlier this year. His talk and slides are available on

  3. The video for the Getting Started with Spring Data Graph webinar is available, as well. This webinar introduces the Spring Data Graph project - a joint effort between the Spring and Neo4j engineering teams to bring first-class support for Neo4J to your Spring applications. If you want a more natural way to integrate the NOSQL data technologies in your existing architecture, simply want more speed, or want to see what you’re missing, then you should definitely check this webinar out.

  4. In a fantastic example of eating ones own dogfood, Mark Thomas - Tomcat committer and Apache Bug tracking infrastructure maintainer - explains how the Apache JIRA interface was being whelmed - not overwhelmed, but still running inefficiently - by search engines that hit specific JIRAs, but didn’t maintain a session cookie, triggering the creation of numerous sessions. Mark describes the creation of a custom Valve for Tomcat 7 (and SpringSource’s tcServer) that associates a single Tomcat session with each web crawler, greatly reducing their footprint.

  5. Spring Web Services 2.0.2 has been released. For more information, see the change log. Spring Web Services has also been released. For the changes in this release, please see the changelog. Both releases include some worthy updates in of themselves, but, importantly, both also resolve a potential security issue. It is recommended that users upgrade as soon as possible.
  6. <LI> Google I/O, Google's developer conference, is an exciting time for enterprise Java developers, and of course, this also means Spring developers. One notable announcement was the <a href="">1.0 release of the Spring Roo plugin for Vaadin,</a> which is a widget-centric approach to web application development.  Vaadin's a very innovative way to build web applications today, and - of course - <a href="">it works well with Spring.</a> (NB: those instructions are old, but they should still work, and you can just use the Roo plugin, either way!)

  7. Leveraging the Spring HandlerMethodArgumentResolver interface
    is a fantastic blog for those looking towards the imminent Spring MVC 3.1, which will include a general refactoring of the internals of the MVC resolution mechanism. Your existing code will continue to work with no problems, of course, and you don’t need to understand the machinery to leverage Spring MVC. But, if you do want to extend the resolution mechanism, then it’s simpler now. This blog illustrates the point rather nicely by extending the processing pipeline in Spring 3.1.
Read more

SpringSource Tool Suite 2.7.0.M1 Released

Dear Spring Community,

I’m pleased to announce that we just released the first milestone build for the next release of the SpringSource Tool Suite (STS).

Appearing shortly after the 2.6.1 maintenance release, this milestone brings mostly new features for Groovy&Grails developers, including:

  • Groovy 1.8 support

  • Conditional breakpoints for Groovy

  • Search inside GSPs

  • Early access Gradle support

More details can be found in the New and Noteworthy for 2.7.0.M1 document. Detailed installation instructions are also available, please look at the installation from the milestone update sites.

Read more

This Week in Spring: May 10th, 2011

May’s well underway and all the preparations for the S2G Forums in Amsterdam and London are complete. These S2G Forums are the premiere place for people in Europe to get access to the best information related to the Spring community (at a minimum cost!). I hope we’ll see you in Amsterdam (May 26, 2011 - € 114 ) and / or London (May 31, 2011 - &#163 99)!

In the interim, those of you that want an even better picture of how the Spring framework plays on the nascent CloudFoundry open-source cloud PaaS project should be sure to attend a webinar - Spring from Zero to Cloud in 60 minutes for both North America and Europe in just 10 short days!

Read more

Spring Android 1.0.0.M3 Released

Dear Spring Community,

We are pleased to announce that the third milestone release of the Spring Android project is now available!

Spring Android supports usage of the Spring Framework in a Android environment. The 1.0.0.M3 release focuses on extending the use of Spring Social in native Android applications. This includes:

  • Support for Spring Social 1.0.0.M3 through the new Spring Android Auth module, which includes a SQLite datastore for persisting API connections. Spring Social is currently supported in Android version 2.3.1 (API Level 9) and higher.
  • Updated RestTemplate (client) support, now at the level of Spring Framework 3.1.0.M1.
Read more