This week in Spring: March 1st, 2011

Engineering | Josh Long | March 02, 2011 | ...

This week has seen yet another flurry of exciting new releases and updates and great community content.

Hold on to your hats!

Let's get right to it.

  1. Spring Roo 1.1.2 has been released. This new release contains over 200 enhancements, new features and fixes since the 1.1.1 release last month. Some of the highlights include enhanced tool usability, persistence enhancements, GWT and Spring MVC enhancements, and library upgrades.
  2. Martin Lippet has just announced the 2.5.2.SR1 and 2.6.0.M2 releases of SpringSource Tool Suite.

    The 2.5.2.SR1 "refresh" has updated support for Groovy 1.7.8, Grails 1.3.7, an update to Eclipse Helios SR2 (3.2.6), and the just-released Spring Roo 1.1.2. The 2.6.0.M2 mileston also includes a Roo plugin manager, improved support for @RequestMapping, and tons of improvements to the Groovy and Grails tooling.

  3. Martin Lippet has also put together information on the oft-asked and newly answered question: how do

    I contribute custom Project…

Introducing Spring Social's Service Provider Framework

Engineering | Craig Walls | March 02, 2011 | ...

In my previous post, I introduced you to Spring Social's Java bindings to popular Software-as-a-Service (SaaS) APIs such as Twitter, Facebook, LinkedIn, and TripIt. In addition to providing simple, strongly-typed Java methods for common API operations, these bindings ensure each HTTP request includes the credentials required to authorize your application to invoke the API on behalf of a user.

What my first post did not address was: how do we manage the credentials required to invoke service APIs on behalf of users? I'm pleased to say that we now have answers to that question.

Earlier this week, we announced the release of the second milestone of the Spring Social project. The most significant new feature in Spring Social 1.0.0.M2 is the introduction of a Service Provider "Connect" framework. Today I want to introduce you to this framework and show you how to use it to manage "connections" to SaaS providers.

The examples in this article are from the Spring Social Showcase. To follow along, clone the repository and follow the README to build and deploy the sample app.

Getting Spring Social

With the M2 release, Spring Social has been split into several modules:

  • spring-social-core - The service provider framework, OAuth support, and core classes.
  • spring-social-web - The connect controller and supporting types.
  • spring-social-facebook - A service provider implementation for connecting with Facebook and support for signing into an application via Facebook.
  • spring-social-twitter - A service provider implementation for connecting with Twitter and support for signing into an application via Twitter.
  • spring-social-linkedin - A service provider implementation for connecting with LinkedIn.
  • spring-social-tripit - A service provider implementation for connecting with TripIt.
  • spring-social-github - A service provider implementation for connecting with GitHub.
  • spring-social-gowalla - A service provider implementation for connecting with Gowalla.
  • spring-social-test - Support for testing service provider implementations and API bindings.

Depending on your needs, you won't necessarily need all of these modules. At a minimum, you'll need the core module. You can add this to a Maven-built project with the following entry:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-core</artifactId>
    <version>1.0.0.M2</version>
</dependency>

In the likely case that you'll be using Spring Social in a web application, you'll also need the web module:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-web</artifactId>
    <version>1.0.0.M2</version>
</dependency>

Then, you'll need to add one or more of the provider modules. In our examples, we'll be talking about adding Twitter connectivity to an application, so we'll need the twitter module:


<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-twitter</artifactId>
    <version>1.0.0.M2</version>
</dependency>

Since we're building off of a milestone release of Spring Social, we're going to need to add Spring's milestone repository to the pom.xml file:


<repository>
	<id>org.springframework.maven.milestone</id>
	<name>Spring Maven Milestone Repository</name…

Green Beans: Getting Started with Spring Integration

Engineering | Josh Long | February 24, 2011 | ...

Applications don't exist in a vacuum. They need to communicate with their customers and with other applications. Application Integration is all about enabling this communication. Integration lets applications share services and data with each other, and, just as often, integration helps applications connect with their users.

Spring Integration provides a framework to build integration solutions, to facilitate these kinds of solutions. Spring Integration solutions describe the flow of data through a pipeline. Data enters the processing pipeline as a message. The message is moved forward through…

Custom Project Templates in SpringSource Tool Suite

Engineering | Martin Lippert | February 24, 2011 | ...

The SpringSource Tool Suite (STS) provides the New Spring Template Project wizard. Uses this wizard, the user can see a number of project templates, choose one and let the wizard create a complete project, based on that template description. While this gives you an easy way to create new projects, you might wanna define your own custom project templates for your team or your organization. And we will show you how to do this in the following.

1. Step: Contribute a new resources extension to STS

STS creates the list of available project templates by downloading and reading resource XML files. To let STS know where those resource files are located, you need to contribute them to STS via an extension.

So the first step is to create a new and empty plugin project. You don't need Java code in there, so don't create this as a Java project. Just create a…

This week in Spring: February 22nd, 2011

Engineering | Josh Long | February 23, 2011 | ...

What a week! Lots of good, foundational content available this week from, and for, the community. Let's get right to it.

     <li> <a href="http://blog.springsource.com/2011/02/21/spring-3-1-m1-mvc-namespace-enhancements-and-configuration/">Rossen Stoyanchev</a> continues the whirlwind introduction to the new features in Spring 3.1, this time with a look at the MVC namespace and @Configuration-based improvements. </li>
    
  1. Chris Beams blogged about the upcoming FeatureSpecification support in Spring 3.1 Feature Specifications provide the same features as the XML namespace infrastructure elements, like <tx:annotation-driven>, in a Java configuration-centric way. This is a very powerful feature, and this blog post is the best way to get started.
  2. SpringSource Tool Suite lead Christian Dupuis - tweets that users can now download STS without submitting to the registration form. Very cool!
  3. <li> Can't get enough Spring? 
    

    Check out Spring on your favorite social network!

  4. Glyn Normington has just announced the Eclipse Virgo 3.0.0.M01 release is now available for download. The new version features tighter integration with the Eclipse stack, including the Eclipse Virgo Jetty…

Spring 3.1 M1: Cache Abstraction

Engineering | Costin Leau | February 23, 2011 | ...

One of the major features added in Spring Framework 3.1 M1 is the generic cache abstraction for transparently applying caching to Spring applications. Just like the transaction support, the caching abstraction allows consistent use of various caching solutions with minimal impact on the code.

Purpose

Caches are in general used to improve application performance by transparently serving frequently accessed data in a faster fashion such as serving data from local memory rather than from the network. Many of you have already used caching, whether knowingly or not: most ORM/JPA frameworks provide…

Spring 3.1 M1: MVC Namespace Enhancements and @Configuration

Engineering | Rossen Stoyanchev | February 21, 2011 | ...

In this 5th post of the series describing Spring 3.1 M1 features, I will focus on web applications. In the first half I'll discuss enhancements to the MVC XML namespace. Then I'll show how to create the equivalent of the MVC namespace with all Java configuration. At the end I mention some of the Servlet 3.0 related configuration changes you can expect in 3.1 M2.

MVC Namespace Improvements

Spring MVC 3.0 provided a custom MVC namespace. The centerpiece of the namespace -- the <mvc:annotation-driven> element, configured everything required to process requests with annotated controller methods. More importantly though it…

Spring 3.1 M1: Introducing FeatureSpecification support

Engineering | Chris Beams | February 17, 2011 | ...

UPDATE: The FeatureSpecification functionality described in this blog post was removed in Spring Framework 3.1 M2 in favor of @Enable* annotations. See the 3.1 M2 announcement for more information.

Introduction

Earlier in this series I touched on how the new @Profile annotation can be used in conjunction with @Configuration classes to take advantage of Spring's bean definition profiles. Today, we'll look at an entirely new addition to the code-based configuration landscape in Spring 3.1: FeatureSpecification classes and their related support.

I've put together a sample project to accompany this post. Find it at https://github.com/cbeams/spring-3.1-featurespec and follow the instructions in the README

This week in Spring: February 15th, 2011

Engineering | Josh Long | February 16, 2011 | ...

This last week has seen a record number of... well, records, if nothing else! First, Juergen Hoeller - Spring project lead and all around nice guy - gave a webinar introducing the new features in Spring 3.1 to record attendance numbers. Then, as if that weren't enough, the next day the first milestone of Spring 3.1 was released to record numbers of downloads. That would've been enough. I don't know about you, but I could've stopped right there. Then, over the course of the last week we've seen what I imagine is a record number of new releases from other Spring projects! Finally, yesterday, no doubt in reaction to all this other record activity, we saw the largest record number of people hit the SpringSource blog yet! In summary, Spring 3.1 milestone mania, numerous new projects, and as always a healthy dose of community-awesomeness (go team!)

 </p> 
      <li>Hot on the heels of Juergen's Spring 3.1 webinar, Chris Beams got the ball rolling on the  first three   of many  posts on the numerous new features in Spring 3.1. 
    	
    	<a href="http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/">
    

    The first post introduces Spring 3.1 M1, generally. The second post introduces Spring 3.1's "profiles," which let you partition your beans along environment-specific lines with Environments. The third post introduces the Unified Property Management capabilities of the Environment abstraction.

    	  </li>
    
    
    <li>
    	Matt Raible has put…

GORM for MongoDB: New Milestone, Richer Experience

Engineering | Graeme Rocher | February 15, 2011 | ...

Last year we introduced support for MongoDB in GORM (along with many other GORM implementations) and it has been extremely well received by the community. We have had a ton of feedback, and today we are pleased to announce a new release (Milestone 2) which addresses some of the feedback we have received.

Embedded Document Support

The number one requested feature was nested document support and in this release we have improved that significantly. Now you can embed other domains using the standard embedded mapping in GORM:

class Person {
  String firstName
  String lastName
  Address address…

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