Many members of the community have been eagerly awaiting Spring Roo 1.1.0.M3, and I'm pleased to announce it is now available (download here). This release incorporates more than 150 new features, enhancements and other improvements since Milestone 2, bringing the cumulative total in the 1.1.0 milestone series to some 500 issues. Many of the improvements in Spring Roo 1.1.0.M3 reflect our continued close collaboration with the Spring Framework, Google Web Toolkit, AspectJ and SpringSource Tool Suite teams, and you can see the results in some of the major new features:
- Incremental database reverse engineering (or DBRE as it's affectionately known around the office): This has been the most highly-voted for Jira ticket in the history of the Spring Roo project, representing around 130 separate votes. This new feature makes it possible to introspect an existing relational database and emit a series of JPA entities. However, unlike traditional database reverse engineering tools, DBRE can be re-run repeatedly on the same project without undesired side-effects (thus the term "incremental" in the feature name). All of the members that result from the introspection are stored in AspectJ ITDs, which is consistent with the rest of Roo. This keeps your .java files clutter-free and intention-revealing (just like they should be). While introspection is now working well (even for complex situations like composite primary keys and all cardinality types) and allows you to programmatically use the resulting entities in normal Java style, in Roo 1.1.0.M4 we'll be adding web tier support for introspected databases.
- Latest Google Web Toolkit 2.1.0.M3 features: Our collaboration with GWT enables Roo to produce applications that use the newest features in GWT 2.1.0.M3 (which was also released today). One of the most highly-anticipated new features is relationship support under the RequestFactory infrastructure. You can try this out by using the "script expenses.roo" command, then "mvn gwt:run" and creating related employee objects via the GWT UI. You can read more about the new GWT 2.1.0.M3 features in the GWT blog entry.
Automatic JSON support, including in Spring MVC applications: All domain objects produced by Spring Roo will now include automatic JSON-related methods. These allow you to bidirectionally convert between a JSON representation and an object. We introduce these new JSON-related methods via ITDs in the normal Roo style. Roo-managed Spring MVC controllers now also automatically use these methods as well. To see this in action, use "script clinic.roo", then "mvn tomcat:run", create a new Owner via the web user interface, and then try a curl command such as
curl -v -H 'Accept: application/json' -X GET http://localhost:8080/petclinic/owners/.
- 16 social media embedding features: It's now possible to add content from 16 social media web sites to your Spring MVC-based front end with a single Roo command! This includes YouTube, Google Video, Vimeo, Viddler, Screenr, UStream, LiveStream, Flikr, Picasa, Google Presentations, Scribd, SlideShare, Google Maps, Google Wave, Twitter and Wikinvest. It's all available from the new "web mvc embed" command.
- Library upgrades: We've updated the libraries which Roo automatically uses in projects. Some of the notable updates include shifting to Spring Framework 3.0.4 (with enhanced resource serving by the elimination of the URL rewrite filter) and Spring Web Flow 2.1.1.
- Automatic Roo annotation JAR upgrades: Now when you upgrade to a new version of Roo, there's no need to edit your project's pom.xml to change the Roo annotation library version. Roo will take care of this automatically for you.
- Usability enhancements: We've now added a number of new features to improve usability. One item you may notice is the new "flash message" area at the top of the screen. This displays the progress of long-running operations (you can try the "flash test" command for a quick demo). We do recommend you use Linux, Windows or iTerm (for OSX users) for the best flash message experience. Some other less visible improvements include better logging, suppport for "#" comments, tab assist for the "hint" command, a comment at the top of AspectJ ITDs to remind you not to edit them, and many others.
As always, the Spring Roo Reference Guide includes upgrade instructions for those already using Roo, as well as background reading and introductory tutorials for those interested in learning more. The reference guide can be viewed online, plus it's also included in the download ZIP. You can also learn more about Spring Roo by attending SpringOne, JavaOne, Devoxx, Google Developer Days or YOW!2010 over the next few months.
The next release of Spring Roo will be 1.1.0.M4. This will be the final milestone in the series and we expect to reach 1.1.0.RELEASE in mid-0ctober 2010. We maintain our full roadmap dates in Jira for your convenience.
As always, we welcome your comments on this new release. You can follow @SpringRoo and the engineering team on Twitter, discuss Roo via the community forum or come and visit us at one of the above conferences. We hope that you enjoy this new Spring Roo release.