This Week in Spring - 13 November, 2012

Engineering | Josh Long | November 14, 2012 | ...

Welcome back to another installment of This Week in Spring! I started this week back in the lovely Sofia, Bulgaria for the Cloud Foundry Open Tour event, talking to a packed audience about building Spring applications on Cloud Foundry. Now, I'm in Antwerp, Belgium, at the Devoxx conference where I'll present on what's new in Spring 3.2, Cloud Foundry and more. If you're here, I invite you to come visit the SpringSource booth and see some of the talks on Spring that I - and others - will be giving.

  1. 		Roy Clarkson has announced not one, but two releases of Spring  Mobile this week! 

    Spring Android 1.0.1 has been released. This release includes a change to support BlackBerry 10 mobile devices. BlackBerry 10 mobile devices are now resolved as a mobile device when using the LiteDeviceResolver. Then, he released the
    1.1.0.M1 release, which folds in the 1.0.1 support as well as tablet support in site preference handling and site switching, support for Java-based container configuration, and support for servlet based configurations.

  2. Thomas Risberg has announced the GA release of Spring Data JDBC extensions with QueryDSL and Advanced Oracle support.
  3. There's a lot of interesting…

Spring Framework 3.2 RC1: Spring MVC Test Framework

Engineering | Rossen Stoyanchev | November 12, 2012 | ...

[callout title=Update Dec 19, 2012] The final Spring Framework reference documentation contains guidance on migration as well as a complete section on Spring MVC Test. [/callout]

Last week Juergen Hoeller announced the release of Spring Framework 3.2 RC1 and Sam Brannen discussed exciting additions in its spring-test module such as support for WebApplicationContext's and upcoming plans for loading a hierarchy of contexts. Today I will continue this subject and describe another exciting spring-test addition. In 3.2 RC1 we've added first class support for testing Spring MVC applications both…

Spring Framework 3.2 RC1: New Testing Features

Engineering | Sam Brannen | November 07, 2012 | ...

As Juergen Hoeller mentioned in his post announcing the release of Spring Framework 3.2 RC1, the Spring Team has introduced some exciting new features in terms of testing support. Most importantly, we've added first-class support for testing web applications. [1]

      Please note: this is a cross post from my Swiftmind company blog.

In this post we'll first take a look at some of the general new testing features in the Spring Framework, and then we'll go into detail regarding support for testing with a WebApplicationContext as well as request and session scoped beans. We'll close with a look at support for ApplicationContextInitializers and a brief discussion of the road map for testing with application context hierarchies.

Rossen Stoyanchev will later follow up with a detailed post on the new Spring MVC Test framework that provides first-class support for testing Spring MVC applications. So be sure to stay tuned for that as well, since it builds on the basic web testing support discussed later in this post.

General New Features and Updates

Build and Dependencies

The spring-test module now builds against and supports JUnit 4.10 and TestNG 6.5.2, and spring-test now depends on the junit:junit-dep Maven artifact instead of junit:junit which means that you have full control over your dependencies on Hamcrest libraries (e.g., hamcrest-core, hamcrest-all, etc.).

Generic Factory Methods

Generic factory methods are methods that implement the Factory Method Design Pattern using Java Generics. Here are some example signatures of generic factory methods:

public static <T> T mock(Class<T> clazz) { ... }

public static <T> T proxy(T obj) { ... }

The use of generic factory methods in Spring configuration is by no means specific to testing, but generic factory methods such as EasyMock.createMock(MyService.class) or Mockito.mock(MyService.class) are often used to create dynamic mocks for Spring beans in a test application context. For example, prior to Spring Framework 3.2 the following configuration could fail to autowire the OrderRepository into the OrderService. The reason is that, depending on the order in which beans are initialized in the application context, Spring would potentially infer the type of the orderRepository bean to be java.lang.Object instead of com.example.repository.OrderRepository.


  <!-- OrderService is autowired with OrderRepository -->
  <context:component-scan base-package="com.example.service"/>

  <bean id="orderRepository" class="org.easymock.EasyMock…

A Groovy DSL For Spring Integration

Engineering | David Turanski | November 06, 2012 | ...

Spring Integration implements Enterprise Integration Patterrns using the Spring programming model to enable messaging in Spring-based applications. Spring Integration also provides integration with external systems using declarative adapters supporting jms, http, amqp, tcp, ftp(s), smtp, and so on. Currently, configuring message flows is primarily done via Spring XML and Spring Integration supports several namespaces to make this as succinct as possible. Earlier this year, SpringSource released a Scala DSL for Spring Integration. Now, we are pleased to announce the first milestone release…

This Week in Spring - 6 November, 2012

Engineering | Josh Long | November 06, 2012 | ...

Welcome back to another installment of This Week in Spring! We've got a lot to cover, so let's get to it!

  1. Did you guys miss SpringOne2GX 2012? I'm not going to lie to you - you really missed out! However, don't despair! Two of my absolute favorite talks from the show are now available online - the keynotes! Both were amazing, but if you're looking for an amazing introduction to the trends underlying next generation of web applications, and a great (amazing!) tour of RabbitMQ, check out the day 2 keynote!
    	More sessions will be posted on that page, so check back often.</LI>
     <LI> Spring 3.2 is drawing ever nearer!   The H  has some 
    	<a href  ="">nice coverage of the new features  in the framework</a>.
     <LI> Chris Beams  has announced the latest maintenance release, <A href="">Spring 3.1.3 - the third in the 3.1 line, has been released</a>! 
  2. Guys, I'm so excited to tell you that SpringOne is coming to India! Register now!
  3. Does your PaaS support your workloads? If you're using Cloud Foundry, then chances are good that it does!
  4. Michael Isvy has put together a nice post on Spring MVC and the view layer
  5. The Spring Framework TestContext framework now supports session/request scoped beans for integration testing
  6. The first milestone of Spring Data SOLR has been released!
  7. Jonathan Brisbin has announced the 1.2 release of the Spring REST Shell. The new release features SSL, basic auth, dotrc support, an updated Homebrew install formula, HATEOAS and hypermedia.
  8. Check out Costin Leau's webinar introducing Spring Data Hadoop this Thursday!
  9. RabbitMQ developer advocate Alvaro Videla linked to a great post on visualizing RabbitMQ topologies.
  10. Spring Data Batch and Spring Security OAuth ninja and Cloud Foundry UAA committer Dr. David Syer has written a really fantastic post on using Cloud Foundry's UAA agents OAuth2 endpoint. This has scarce little to do with Spring, except that Dr. Syer's posts are very educational and helped me tremendously in understanding the problems that Spring Security OAuth solves.

Spring Framework 3.2 RC1 released

Engineering | Juergen Hoeller | November 05, 2012 | ...

Dear Spring community,

I'm pleased to announce that the first Spring Framework 3.2 release candidate is now available.

This generation of the core framework is a straightforward next step after last year's Spring Framework 3.1, continuing several well-established themes. Key features in Spring Framework 3.2 include:

  • A new Gradle-based framework build, making it easier than ever to contribute to the Spring Framework project on GitHub
  • Inlined CGLIB 3.0 and ASM 4.0, fully supporting Java 7 byte code and making CGLIB-based functionality available without explicit declaration of a CGLIB dependency
  • 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

This Week in Spring - 30 October, 2012

Engineering | Josh Long | October 31, 2012 | ...

Welcome to another installment of This Week in Spring!

  1. Spring Data GemFire 1.2.1 and GemFire 7.0 have been released! The new Spring Data release includes complete Spring XML namespace support for configuration of all GemFire resources, eliminating the need for GemFire's native cache XML (cache XML is also supported), and Spring Data Repositories for GemFire. Also of note, the GemFire shell (gfsh) was built with Spring Shell. For more on the GemFire 7.0 release, be sure to check out the post which in turn links to release notes and documentation.
  2. 					<LI> Michael Isvy  has put together a nice blog <a href="">on moving from JSP and Tiles to Thymeleaf</a>, a new view layer that works particularly well with Spring MVC (and that we have talked about quite a bit in this very roundup for the last few years!).</LI>
    	Spring Security lead Rob Winch has done a nice interview with InfoQ on <A href= ""> Spring Security  in multi-tenant appications on the cloud</a>  </LI…

Spring MVC: from JSP and Tiles to Thymeleaf

Engineering | Michael Isvy | October 30, 2012 | ...

When it comes to the view layer, Spring @MVC gives you a variety of choices. In this article, we will first discuss the way you have most likely used the view layer in the past few years: JSP. We will see the bad and better ways to work with them (plain JSP, JSP with custom tags, Apache Tiles).

We will then discuss a new project called Thymeleaf, which you can use as an alternate approach to JSP.

As usual, you can find all the code samples discussed in the corresponding application on github.

Plain JSP

Let us get started with the below code sample:

<html …> <body>
 <div style="padding-top: 50px;">
   <jsp:include page="../menu.jspx"/>

This Week in Spring - 23 October, 2012

Engineering | Josh Long | October 23, 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! A lot of this news come from SpringSource itself, from various projects timed to coincide with SpringOne2GX last week. It's like receiving an early birthday gift! And speaking of gifts, if you missed SpringOne2GX, don't worry! We recorded the SpringOne sessions and they will be posted soon. Also, you can check out the show wrap ups for Day 1, Day 2, and Day 3 on to get a flavor for the conference.

  1. Costin Leau announced the release of Spring for Apache Hadoop 1.0.RC1 (the first-ever RC of Spring for Apache Hadoop!) featuring a template, exception translation and declarative runner for Pig and Hive scripts, enhanced map/reduce .jar and tool execution, and refined JVM scripting, M/R, and Cascading runners. Don't miss the upcoming webinar on Nov 8th!
  2. <LI>  Peter Bell did a    <A href = "">great presentation on Spring Data and the NoSQL </a>  space for QCon. Be sure to check it out!  </LI> 
  3. Yusuf has done a nice job introducing Spring's XA support in terms of the open source Bitronix standalone JTA-XA transaction manager. For an alternative guide, might I humbly suggest this blog post?
  4. Oleg Zhurakousky announced the release of Spring Integration 2.1.4 and 2.2.0.RC2 . The new release features pseudo transactions, JPA support, built-in retry support, and a lot more, so be sure to check it out!
  5. Costin Leau announced the release of Spring Data Redis 1.0.2, which features cache expiration and ZSet methods, among other things.
  6. Thomas Risberg announced the availability of the Spring Data JDBC extensions with Oracle database support, version 1.0.0.RC4.
  7. Satish Ab has a nice post on building the web layer with Spring MVC for his sample invoice application.
  8. The Mkyong blog has a nice post on how to autowire dependiecnes into custom JSF validators. Very nice post!
  9. Our friend Krishna Prasad has a nice post on hwo to implement the control bus pattern with Spring Integration and JMS

This Week in Spring - 16 October, 2012

Engineering | Josh Long | October 17, 2012 | ...

Welcome to This Week in Spring, SpringOne2GX 2012 edition! I'm putting this together from day 2 of the SpringOne2GX conference in Washington D.C.!

Last night, we kicked off the event with a great keynote by Juergen Hoeller (pictured above), Dr. Mark Pollack, Graeme Rocher, and Adrian Colyer, some amazing break dancing by international dancer Agame, and a mysterious kangaroo (see below)!

This is the premier event for JVM developers, featuring great speakers from VMWare, SpringSource, TypeSafe, Neo4j, and many others speaking on all manner of topics. The week is just kicking off. While the conference is running, there's also going to be a contest to find the best applications built using SpringSource technologies (Spring, Grails) and deployed to Cloud Foundry. I've seen the prizes (above), and I would enter too if I could!

<P> If you're at the show, be sure to stop by the SpringSource and Cloud Foundry booths in the expo hall and pick up shwag and answers to your lingering questions. I'll be there tomorrow, in the evening.</p><P> Anyway, I won't linger <EM>too</EM> much on what you're missing! Let's move on to this week's roundup because, as usual, there's a lot to cover! </p> 
		<LI>Want to learn about what else has happened at SpringOne2GX? Check <a href= "">out this fantastic wrap up of day 1</a></LI>
		<LI> The Spring Data release train has finally arrived…

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