Using SpringSource Tool Suite 2.3.3.M1 with Roo and GWT

By now, most of you probably have heard about the announcements at Google I/O around Spring, Roo, STS and GWT. Ben and Rod covered this in their respective blog posts recently. If you missed the keynote I strongly recommend to watch the recording on YouTube to catch up (the relevant section starts at 1:09:00 into the recording).

Today I’d like to provide some detailed steps and instructions on how you can use Roo and STS to create your first GWT application.


Before we can fire up the Roo shell and start typing commands, we need to download and install all pre-requisites. Although a lot of components are involved in building advanced single-page applications that can run on the cloud, you really only need to download the STS 2.3.3.M1 bundle for your operating system. The STS installation includes Roo 1.1.0.M1, tc Server Developer Edition with Spring Insight (required to get Speed Tracer integration), Maven 2.2 and access to the Google Plugin for Eclipse (GPE).

Read more

What's a plugin-oriented architecture?

Grails is a fantastic framework for developing web applications quickly and easily. You also have access to a plethora of plugins that provide features or make integration with other systems nice and easy. That’s all good, but in this article I want to talk about what happens when your application grows and you start drowning in a sea of controllers, domain classes, and other files.

Separation of concerns

One of the most useful patterns in software architecture is called separation of concerns. The idea is that you group everything related to a particular feature or concern into a single, self-contained unit. The code in that unit should not take on any other responsibility. For example, the business logic of a web service should be in one class while the handling of SOAP messages should be in another: the business logic and SOAP handling are two different concerns.

Read more

SpringSource dm Server 2.0.2 is released today.

The release fixes a few bugs, release notes available from JIRA. This release can be downloaded from the project page on

  • The kernel startup hard timeout limit has been increased to allow dm Server to run on slower machines.
  • Documented a restriction in the OSGi web container, Tomcat <context> elements are not supported.
  • Fix to the ServiceScoper class to close all input streams.
  • Added support to tolerate File.list returning null occasionally, this manifested as the pickup directory wiping itself occasionally for seemingly no reason.
  • Usage of @Configurable with ServerOsgiBundleXmlWebApplicationContext now works.
Read more

Spring Insight 1.0.0.M3 Released

The Spring Insight team is proud to announce the release of Spring Insight 1.0.0.M3.  This release contains a ton of new enhancements to give you more productivity and get your application to production even faster.  Spring Insight is available as part of tc Server Developer Edition and SpringSource Tool Suite but you can snag the new developer release at  Setup time will take you the usual 10 seconds.

Spring Insight 1.0.0.M3 Screencast

Speed Tracer

Speed Tracer Google IO conference

Simpler UI

Read more

More Grails 1.3 features

Last week, I described how Grails now treats plugins like normal dependencies that can be pulled from Maven-compatible repositories. Although this was the big new feature for 1.3, it wasn’t the only one. In this post, I’ll look at some of the others, starting with a feature that I only recently found out about.

Named queries

GORM provides three distinct ways of performing database queries:

  • dynamic finders, e.g. Book.findByTitleAndAuthorLike(…);

  • criteria queries, which use a nice DSL; and

  • HQL, Hibernate’s SQL-like query language.

Read more

Spring Python 1.1 book is published

The Spring Python 1.1 book is published! Spring Python takes the concepts of the Spring Framework and Spring Security, and applies them to the world of Python.

In this book, you will be writing code using dependency injection, aspect oriented programming, data access, transaction management, remoting and security. Later on in the first case study, you will be building a banking web app and see how using all these components in concert quickly meets your needs. In the second case study you will integrate Python and Java together as you build a flight reservation system.

Read more

Springing Ahead Toward The Open PaaS

A few weeks ago I tweeted that—incredibly—SpringSource was executing faster within VMware than as a startup. Today we announce another exciting development bearing this out.

Following our VMforce partnership with SaaS leader, we are today announcing a collaboration between VMware and Google, centering around the Spring programming model and SpringSource IDE and RAD tooling. Today’s announcement makes Spring the preferred programming model for Google App Engine. This is a tremendous endorsement of Spring as the best and most portable programming model for Java and opens up a new deployment opportunity for Spring developers. The demo in today’s keynote at Google I/O showcased the results from months of collaboration between SpringSource and Google engineers—most of which benefits Spring developers, regardless of where they wish to deploy their applications. The highlights: innovative, close integration between Spring and Google Web Toolkit (GWT) offering the ability to build rich applications with amazing speed; the ability to easily target Spring applications to App Engine; a compelling integration between Spring Insight and Google Speed Tracer to provide insight into the performance of Spring applications from browser to database; and tight integration of all this with SpringSource Tool Suite to provide a polished, productive experience.

Read more

Spring Roo 1.1.0.M1 Released

I’m delighted to announce that we’ve just released Spring Roo 1.1.0.M1. Spring Roo is the fastest way for Java developers to build Spring-based applications in the Java programming language. With the Roo 1.1.0.M1 you can build working web applications - complete with a Google Web Toolkit (GWT) front end - in as little as 200 keystrokes! Plus as usual we’ve concurrently released a new version of SpringSource Tool Suite (STS 2.3.3.M1) which is optimised for the latest and greatest Roo goodies!

There are over 200 fixes, enhancements and new features since our 1.0.2 release three months ago. Some of the highlights include:

Read more

Managing plugins with Grails 1.3

For a long time, managing Grails dependencies simply meant putting them in your application’s lib directory. Then came Grails 1.2 and the dependency DSL: you could finally declare your dependencies and have Grails automatically download them and make them available to your app. Great!

Now, Grails 1.3 has brought the dependency DSL to the realm of plugins.

So what?

  1. setting up a suitable Subversion server to act as a Grails plugin repository is not simple; and

  2. you can’t control what dependencies a plugin brings into your application.

Read more

Grails 1.3 Released

I’m pleased to announce the immediate availability of Grails 1.3! Followers of Grails releases will recall that it has not been long since the last major release of Grails (Grails 1.2 was released in December), but given the need to get the latest and greatest version of Groovy in the hands of developers, Grails 1.3 can be seen as the Groovy 1.7 release. The Groovy team did a fantastic job in bringing all sorts of excellent new additions to the Groovy language such as annonymous inner/nested classes, an AST builder and power asserts (my personal favourite), all of which are now available in your Grails application.

Read more