In the summer of 2009, I learned from Ben Alex about a new technology called Spring Roo. This project, based on a command-line shell, promised to bring the agility of other rapid development frameworks, such as Grails and Ruby on Rails, to the native Java and Spring platform. Using a shell instead of writing code seemed like a loss of control, but after downloading and experimenting with the tool, I started to realize the potential of this project. As you’ll see in the book, the biggest challenge faced by Spring developers—beyond writing business logic—is how to build an application architecture and configure various application features (for example, installing JMS, email, Spring MVC, JPA, NoSQL databases, and other frameworks). Roo appeared to crack that problem and provide an elegant solution.
With Spring Roo, you issue simple commands, such as
web mvc setup,
repository. Configuration tasks that normally take hours or days are performed instantly. I could see that this was going to be a useful tool for the everyday Spring developer. Since my Chariot training colleague and long-time friend Gordon Dickens was also interested in Roo, we decided to approach Manning about writing a book. Unlike so many other times in my life, I was able to position myself at just the right time to make the pitch. Manning accepted, and you are reading the result.
In the beginning of 2011, Srini Penchikala, InfoQ author and editor who had been using Roo on various projects, accepted the coauthor slot. Srini was a huge help, having penned chapters on Spring Integration, cloud computing, email and JMS, and Spring Security. During the spring and summer of 2011 we wrote the majority of these chapters. We then saw a new push for Roo 1.2, around the same time that I was working on the add-on chapters, which was exactly what was being refactored by the Roo team at the time. So this book has undergone at least three major revisions since the time we started writing it.
Our pain is your gain, and that includes all of our hard work with code that was written the night before, identifying bugs for the Roo team to fix, and working with the fantastic community of readers we have in Manning’s MEAP program, aligned as well with completing the manuscript around the time of the Roo 1.2.1 release.
Our hope is that you glean from this book a sense of how Roo development operates, regardless of which version of Roo you’ll be using. We also hope to spur on more developers to start using Roo as a key tool in their arsenal. The Roo community could really use some good add-ons, and though this book goes into some detail, we hope people take up the cause and contribute.
The book has been a long time in development and production, but I think the timing is good. Roo has matured, becoming viable for a wide range of projects, having added native support for many enterprise abstractions such as services and repositories, and boasting at least three active web frameworks built into the product—Spring MVC, GWT, and JSF.