Spring Data JPA 1.1.0 GA released

Dear Spring Community, I’d like to announce the availability of the GA release of Spring Data 1.1.0. The overall release comes with 72 bugs fixed, improvements and new features. Here are the most important ones:

  • New keywords for query generation: LessThanEqual, GreaterThanEqual, Before, After, StartsWith, EndsWith, Contains
  • PersistenceUnitPostProcessor to scan for JPA entities (to be used with Spring versions before 3.1)
  • CDI integration for repositories (see here for details)
  • Support for native queries in @Query
  • Support for declarative locking
Read more

This Week in Spring, May 15th, 2012

Welcome back to another installment of This week in Spring!. We’ve got a lot to cover this week, as usual. So, onward!

  1. Rossen Stoyanchev has just released part two and three of his blog series introducing Spring MVC 3.2’s new features. In the first installment, Rossen introduces how to make a Spring MVC @Controller asynchronous. In the second post, Rossen introduces how to add long polling to an existing web application. Long polling is useful in any number of scenarios where you want to simulate server-side push with client-side applications.
  2. <LI>  The video for <a href= "">Oleg Zhurakousky</A>'s followup webinar introducing <a href ="">More Practical Tips and Tricks with Spring Integration</A> has just been posted. Check it out! </LI> 
     <LI> <A href ="">Roy Clarkson</A>  just announced that <a href = "">Spring Mobile 1.0.0 has  been released</A>!  </LI>
    <LI>  SpringSource and Cloud Foundry rockstar  <a  href  =""> Jennifer Hickey </A> 

    continued her amazing series on Cloud Foundry workers over on the Cloud Foundry blog last week, this time introducing the support for Spring developers.

    I followed up with some more nuanced examples introducing how to use Spring Integration gateways, and Spring Batch jobs and core Spring’s @Scheduled annotation in conjunction with Cloud Foundry workers.

  3. Cloud Foundry advocate Andy Piper and I have
    penned an article that helps you take your first steps on Cloud Foundry with a simple Spring application in the new JavaTech Journal, the online magazine from the producers of the JAX conference.

     Registration is free, but required, to download the issue. 
    <LI> Blogger Tomasz Nurkiewicz is back at it, this time with a <EM>really</EM> cool 
        blog introducing how to <a href ="">integrate reCAPTCHA with Spring Integration</A>. Nice job, Tomasz!  </LI> 

  4. The Random Thoughts blog has an interesting look at
    how to integrate JSON, XML and RSS endpoints using Spring 3.1.

     <LI> Blogger abhishek has written up a nice post <a href = "">explaining how to setup Spring MVC's annotations</A>, step by step, going from a new Eclipse application all the way to the finished product.  </LI>
Read more

Spring Mobile 1.0.0 Released

Dear Spring Community,

We are pleased to announce the general availability of Spring Mobile 1.0!

Spring Mobile provides extensions to Spring MVC that aid in the development of cross-platform mobile web applications.

This GA release includes minor fixes and changes since the RC2 release. 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

Read more

Spring MVC 3.2 Preview: Adding Long Polling to an Existing Web Application

Last updated on November 5th, 2012 (Spring MVC 3.2 RC1)

In my last post I discussed how to make a Spring MVC controller method asynchronous by returning a Callable which is then invoked in a separate thread by Spring MVC.

But what if async processing depended on receiving some external event in a thread not known to Spring MVC -- e.g. receiving a JMS message, an AMQP message, a Redis pub-sub notification, a Spring Integration event, and so on? I'll explore this scenario by modifying an existing sample from the Spring AMQP project.

Read more

Video: More Practical Tips and Tricks with Spring Integration

This video provides a follow-up session to Oleg Zhurakousky's successful Spring Integration Tips and Tricks webinar exploring deeper and more complex patterns for integration. The questions for this session came out of the actual customer engagements as well as the questions that are most frequently asked on the Spring Integration forums. In this edition of "Practical Tips-and-Tricks" Oleg covers the advanced topics of enterprise integration such as advanced aggregation and resequencing, asynchronous message flows, message ID customizations, content enrichment and advanced message routing and more. This video is based on a refined version of Oleg's very successful talk delivered at SpringOne 2GX 2011.

Read more

Spring MVC 3.2 Preview: Making a Controller Method Asynchronous

Last updated on November 5th, 2012 (Spring MVC 3.2 RC1)

In previous posts I introduced the Servlet 3 based async capability in Spring MVC 3.2 and discussed techniques for real-time updates. In this post I'll go into more technical details and discuss how asynchronous processing fits into the Spring MVC request lifecycle.

As a quick reminder, you can make any existing controller method asynchronous by changing it to return a Callable. For example a controller method that returns a view name, can return Callable<String> instead. An @ResponseBody that returns an object called Person can return Callable<Person> instead. And the same is true for any other controller return value type.

Read more

Using Cloud Foundry Workers with Spring

You’ve no doubt read Jennifer Hickey’s amazing blog posts introducing Cloud Foundry workers, their application in setting up Ruby Resque background jobs, and today’s post introducing the Spring support.

Key Takeaways for Spring Developers

  1. You need to update your version of vmc with gem update vmc.
  2. Cloud Foundry workers let you run public static void main jobs. That is, a Cloud Foundry worker is basically a process, lower level than a web application, which maps naturally to many so-called back-office jobs.
  3. You need to provide the command that Cloud Foundry will run. You could provide the java incantation you’d like it to use, but it’s far simpler to ship a shell script, and have Cloud Foundry run that shell script for you, instead. The command you provide should employ $JAVA_OPTS, which Cloud Foundry has already provided to ensure consistent memory usage and JVM settings.
  4. There are various ways to automate the creation of a Cloud Foundry deployable application. If you’re using Maven, then the org.codehaus.mojo:appassembler-maven-plugin plugin will help you create a startup script and package your .jars for easy deployment, as well as specifying an entry point class.
  5. Everything else is basically the same. When you do vmc push on a Java .jar project, Cloud Foundry will ask you whether the application is a standalone application. Confirm, and it’ll walk you through the setup from there.
Read more

Spring MVC 3.2 Preview: Techniques for Real-time Updates

Last updated on November 5th, 2012 (Spring MVC 3.2 RC1)

In my last post I introduced the new Servlet 3 based, async support in Spring MVC 3.2 and talked about long-running requests. A second very important motivation for async processing is the need for browsers to receive real-time updates. Examples include chatting in a browser, stock quotes, status updates, live sports results, and others. To be sure not all examples are equally delay-sensitive but all of them share a similar need.

In standard HTTP request-response semantics a browser initiates a request and the server sends a response, which means the server can't send new information until it has a request from the browser. Several approaches have evolved including traditional polling, long polling, and HTTP streaming and most recently we have the WebSocket protocol.

Read more

Spring Data Neo4j 2.1.0 Release Candidate 1 Released

Dear Spring-NOSQL Community,

The new Release Candidate 1 of Spring Data - Neo4j comes with a number of long requested improvements and additions.

First of all, SDN has been updated to Neo4j 1.7.GA which includes operational improvements and new grammar to the Cypher graph query language. To complement the added language features, this release of SDN integrates a new version of the cypher-dsl with an improved API.

By popular request, support for not only unique node entities but also for relationships is now available. This works using either the remote REST-Server or an embedded Neo4j database.

Read more

Spring Data MongoDB 1.1.0 M1 released

I’d like to announce the availability of Spring Data MongoDB 1.1.0 M1. This is the first milestone of the 1.1.0 branch and comes with a hand full of new features:

Downloads | JavaDocs | Reference Documentation | Changelog

The release is available from our Maven repository. To learn more about the project, visit the Spring Data MongoDB Page. Looking forward to your feedback on the forum or in the issue tracker.

Read more