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:
- Significant Spring MVC integration improvements: These improvements mean that a 130 line JSPX file in Roo 1.0.2 is now just 12 lines. Even better, there's now full round-tripping. Roo can automatically detect what you've changed in a managed JSPX file and ensure it preserves your changes. This is a very significant improvement in round-tripping of the web tier, but it doesn't stop there! We've also added the ability to write new tags directly in JSPX, automatic workflow services, richer default scaffolding, and better extension points.
- Google Web Toolkit (GWT) Support: I've always been a huge fan of GWT, and I'm delighted we've now started our journey to full GWT support in Roo. For those unaccustomed to GWT, it's an impressive piece of technology which allows you to write Java code and have it automatically compiled into heavily optimised JavaScript for browser execution (without needing special plugins). It's a great way to write snappy web applications with visually-rich, easily developed and easily maintained UI code. The GWT philosophy of a first-class development experience in Java is also entirely aligned with the Roo philosophy of a first-class development experience in Java, so it was only natural this integration was added. The new "gwt setup" command will give you a working web application with a scaffolded desktop and mobile device entry point, plus round-trip changes as you modify your entities. It even builds on the latest GWT 2.1 features like new binding widgets and remoting support. Check it out and have some fun!
- Google App Engine (GAE) Support: We've been busily adding support for more and more cloud platforms into the Spring platform ecosystem in recent times. In this new version of Roo, I'm pleased to share we now have support for Google App Engine. As such now you can use a "persistence setup –provider DATANUCLEUS –database GOOGLE_APP_ENGINE" Roo command and automatically receive complete GAE-compatible configuration. Deployment is extremely easy as well, just "mvn gae:deploy". Plus STS 2.3.3.M1 has available from the "Extensions" tab complete integration with Google Plugin for Eclipse (GPE) to make your Roo-STS-GAE-GWT experience extremely smooth.
- Apache Solr Search Server: One exciting new feature is the automatic indexing of entities via Solr. This allows you to have a dedicated search server indexing your objects and query for them over a REST API (with JSONP support as well).
- Maven Central Dependencies: We're pleased to have responded to community preferences that Roo-produced projects use Maven Central group IDs, artifact IDs and version numbers.
- Java Persistence API (JPA) 2 Support: Roo 1.1.0 changes our default dependencies to the latest released Hibernate and OpenJPA versions.
- Composite key support: Also new to Roo 1.1.0 is the ability to define composite keys. This is the precursor to our database reverse engineering features.
- Serializable add-on: A cute new add-on is the Serializable add-on. It means Roo will automatically compute a correct serialVersionUID for your entities.
- OSGi foundation: We've changed the Roo infrastructure so it is entirely based on OSGi. So when you start "roo" at the command line (or via SpringSource Tool Suite), an OSGi container starts and loads all of the Roo bundles. This means we will have a significantly simpler way of supporting complex add-ons in the near future.
- Cygwin support: We've ensured Roo operates on Cygwin, both the "roo" standalone client and also the "roo-dev" development scripts for those building from source. Of course Roo still works perfectly well on Windows standlone, plus Mac and (my favourite) Linux.
- Improved console messages: Roo will now output more meaningful console messages as it works on your project. For example, you can see which dependencies are being added to your pom.xml.
- Latest Spring platform projects and common dependencies: Projects now use newer versions of the Spring platform and common dependencies like Log4J, ActiveMQ etc. One particularly noteworthy enhancement is AspectJ 1.6.9, which now compiles even nicer .class files with ITD members.
- Numerous improvements to make add-on development easier: It's now easier to write a Roo add-on. We've added new hooks into popular components (like the MVC add-on) to enable customisation, new abstractions to simplify interaction with common files like web.xml, easier incremental file changes and dozens of other small improvements.
So what else has been happening with Roo over the past three months? Quite a bit:
- We've shifted from Subversion to Git (don't worry, we preserved all the version histories, tags etc)
- A freshened web site
- Adopted a new Spring Roo logo
- Created the @SpringRoo Twitter ID which people can follow for Roo news and find a convenient list of the Roo engineers' twitter IDs
- Gave away lots of free kangaroos
- Held a series of webinars, with over 800 people attending
- Featured Roo at many conferences and JUGs
As a milestone release, Roo 1.1.0.M1 isn't intended for mission-critical use. Over the next few months we'll be adding plenty of other new features to the 1.1.0 release, including:
- Incremental database reverse engineering
- User interface support for the new Solr and composite key features
- More Spring MVC UI polishing, such as deeper JavaScript library integrations
- Moving to an OBR-based model for add-on discovery, resolution, downloading and installation
- Performance tuning of Roo itself
- Documentation
- Ant/Ivy (subject to time availability)
This is already a long post, so I'll defer writing about how you can use some of these new features for a future post (update: my colleagues Christian Dupuis and Jon Travis have blogged about using STS to make a new GWT project and Spring Insight Google improvements). In the meantime I hope you enjoy downloading Roo 1.1.0.M1 and trying it out. We'd love to hear from you – just include @SpringRoo in your tweets or visit the community forums. Have fun!
Similar Posts
- A Big Hop Forward: Spring Roo 1.1.0 Is Released!
- Spring Roo 1.1.0.M3 Released
- Performance Improvements in STS 3.2.0
- Spring Roo 1.1.0.M2 Released
- SpringSource Tool Suite 2.1.0 Now Available





Rodolfo Hansen says:
Added on May 19th, 2010 at 2:47 pmBy any chance are you using the maven gae plugin hosted at
http://code.google.com/p/maven-gae-plugin/
for Google App Engine integration?
Tom says:
Added on May 19th, 2010 at 2:58 pmNext right-click your project and select Run As > Web Application.
There is no entry "Web Application".
Ben Alex (blog author) says:
Added on May 19th, 2010 at 3:22 pmYou need to use STS 2.3.3.M1 and click "Extensions", then install the "Google Plugin for Eclipse" and "Data Nucleus" plugins listed.
Tom says:
Added on May 20th, 2010 at 12:35 amWhy doesn't roo enable Google > Web Toolkit > Use Google Web Toolkit as Setting for Eclipse?
Why doesn't roo remove dependencies to old persistence configurations (switched from HIBERNATE to DATANUCLEUS)?
Run As > Web Application results in the error "Could not find any host pages in project com.example.roo.".
Does this work for anyone and how did you resolve the issues?
Ben Alex (blog author) says:
Added on May 20th, 2010 at 1:00 amHi Tom, would you mind moving this conversation to the Roo community forum at http://forum.springsource.org/forumdisplay.php?f=67. That way we can offer you fuller support. Please include your STS version and a copy of the log.roo file you produced.
As mentioned in my blog I will be writing a new blog in a few days which explains how to use these new features. I'll cover the setup of STS, Roo, GWT and GAE in more detail in that posting.
Julien says:
Added on May 20th, 2010 at 2:30 amHi Ben,
it's a very very good news! GWT and GAE are two features that I wanted to add in my projects and I'm so happy because I will have it with Roo !
Julien
Mladen says:
Added on May 20th, 2010 at 11:20 amWhat are the update sites for STS 2.3.3.M1 ? If I try to follow the "Installation instructions" link on the STS 2.3.3.M1 download page I get "Access denied"!
Rick says:
Added on May 20th, 2010 at 12:14 pmWill the gwt stuff be configured in the maven pom.xml also?
Reyo says:
Added on May 20th, 2010 at 3:35 pmAmazing job guys, finally composite key support and new features!!.
Congratulations!
Ben Alex (blog author) says:
Added on May 21st, 2010 at 9:32 pm@Mladen, the best way to obtain STS 2.3.3.M1 is to download it via http://www.springsource.com/products/springsource-google-download.
@Rick, Roo automatically sets you up a Maven pom.xml that includes a Google GWT team-patched version of the Maven GWT plugin. This in turn allows you to properly execute commands like "mvn gwt:run" (this even works correctly if you're using any JPA provider and any database, including Data Nucleus and App Engine).
Vijay Zala says:
Added on May 23rd, 2010 at 3:17 amHi Ben,
Thanks for wonderful work. Easy way to integrate Spring with GWT is much awaited. Roo 1.1 with STS 2.3.3 has resolved this issue. Unfortunately it does not work for for me. When I try to create the the Roo project from STS and it gives me error. I was not able to read the error message as the dialog box goes away very quickly. I am running in Windows 7 environment and tried installing exe and zip version both. Both have similar error. 2.3.2 works just fine with me. Great if you suggest me some way.
I tried running it from Roo prompt. following are the list of commands that I had given to generate the project.
——————- Project creation steps ———————–
project –topLevelPackage com.helloroo
persistence setup –provider DATANUCLEUS –database HYPERSONIC_IN_MEMORY
entity –class ~.server.domain.Employee –testAutomatically
field string –fieldName userName –sizeMin 3 –sizeMax 30
gwt setup
———————————————
The project was created successfully. I run it from prompt (mvn gwt:run) it went well. I can see the UI in my browser. But when I click on create Employee and after submitting the form and clicking on Save button I get the following exception.
—————— Exception while running from Command Prompt ———————-
javax.servlet.ServletException: Circular view path [resourceNotFound]: would dispatch back to the current handler URL [/app/resourceNotFound] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.) at org.springframework.web.servlet.view.InternalResourceView.prepareForRendering(InternalResourceView.java:275) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:214) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) …
…
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
—————————————————————————-
Once again Thanks for wonderful work
Vijay Zala
Vijay Zala says:
Added on May 23rd, 2010 at 4:24 amWhen I tried creating and running Rsvp application as described in
http://blog.springsource.com/2009/05/27/roo-part-2/
Following commands were given in place of what was specified in Tutorial
——————- Roo Commands ——————————
Instead of: persistence setup –provider HIBERNATE –database HYPERSONIC_PERSISTENT
Command Given: persistence setup –provider DATANUCLEUS –database HYPERSONIC_PERSISTENT
Instead of: controller scaffold ~.web.RsvpController
Command Given: gwt setup
Some how when I try "database properties list" it does not work with Data Nucleus. But looks like it is looking for database.properties file but it is not generated here.
————————————————-
No error found while creating the project. But when I click on "create Rsvp" link in browser, no response for long time. In Eclipse window I see following exception. Looks like some thing is wrong with data type conversion.
—————- Exception —————————————————————————
14:37:16.058 [ERROR] [applicationScaffold] Uncaught exception escaped
com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:90)
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:55)
at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:208)
at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:52)
…
…
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:541)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:362)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.google.gwt.event.shared.UmbrellaException: One or more exceptions caught, see full set in UmbrellaException#getCauses
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:90)
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:55)
…
…
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:541)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:362)
at java.lang.Thread.run(Thread.java:619)
Caused by: com.google.gwt.dev.shell.HostedModeException: Something other than an int was returned from JSNI method '@com.google.gwt.valuestore.shared.impl.RecordJsoImpl::getInt(Ljava/lang/String;)': JS value of type undefined, expected int
at com.google.gwt.dev.shell.JsValueGlue.getIntRange(JsValueGlue.java:266)
at com.google.gwt.dev.shell.JsValueGlue.get(JsValueGlue.java:144)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeInt(ModuleSpace.java:242)
…
…
at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:291)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:541)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:362)
at java.lang.Thread.run(Thread.java:619)
——————————————————————————————
Ben Alex (blog author) says:
Added on May 23rd, 2010 at 5:59 pm@Vijay, would you mind please posting about this in the community forum at http://forum.springsource.org/forumdisplay.php?f=67 and we'll be happy to help you there. You might like to check out https://jira.springsource.org/browse/ROO-865 as well.
mangrar says:
Added on May 26th, 2010 at 10:26 amHi Ben. I've been playing with this new version. Looking deep into generated sources, I've read this pom section in project's main pom:
maven-gae-plugin-repo
http://maven-gae-plugin.googlecode.com/svn/repository
maven-gae-plugin repository
As a commiter of maven-gae-plugin I feel very proud that you're using our plugin.
Thanks!!!
Marc says:
Added on May 26th, 2010 at 2:01 pmThis sounds really good. I tried Spring Roo 1.0 and found the generated CRUD UI limited. (e.g. oneToMany as dropdown in stead as encapsulated datatable [pagination, search, filter etc]) I am curious what kind of automagically created UI improvements we can expect given the use of GWT. Any chance for some expansion on this subject.
Yonas Jongkind says:
Added on May 28th, 2010 at 2:00 pmBen: As mentioned in my blog I will be writing a new blog in a few days which explains how to use these new features. I'll cover the setup of STS, Roo, GWT and GAE in more detail in that posting.
I can't find that entry. Though it has only been a few days and I don't want to be too impatient.
checkly says:
Added on May 28th, 2010 at 2:33 pmgood Release, I hope this release long time, for google GWT Support is realy nice
Ben Alex (blog author) says:
Added on June 2nd, 2010 at 8:25 pm@Marc, it's still early days for the Roo 1.1.0, GWT 2.1 and STS 2.3.3 release cycles. All are Milestone 1 releases. We have added dozens of tickets to Jira to enhance the integration since 1.1 was released. Many of these improvements are actually being made in GWT itself, with others in Roo. We're certainly not done yet and you'll see a new STS, Roo and GWT concurrent release in the not too distant future.
@Yonas, Christian Dupuis has just written a blog entry which details how to use the new Roo GWT STS integration: http://blog.springsource.com/2010/06/02/using-springsource-tool-suite-2-3-3-m1-with-roo-and-gwt/.
Kuldeep Poonia says:
Added on June 17th, 2010 at 6:36 amHi Ben,
Thanks for wonderful work. Easy way to integrate Spring with GWT ,Roo 1.1 with STS 2.3.3. But Still I face someProblem With Roo and GWT
1. Problem in One to Many mapping . like SetRecord Not Generated.
2. Doesnot support expect textbox and Datebox.
when are you releasing new version for removing such type of problem ?. I also takes help from spring community but i didnot found any solution
Ben Alex (blog author) says:
Added on June 18th, 2010 at 6:24 am@Kuldeep, we will be publishing a new Roo 1.1.0.M2 release in a couple of weeks. You can see the anticipated dates and version labels via http://tinyurl.com/rooroadmap.
Marc says:
Added on June 18th, 2010 at 6:30 amHoping ROO-8 will get some more love soon. Or is this addressed by the current focus on GWT?
cblatter says:
Added on July 14th, 2010 at 7:37 amHi!
I have the following situation.
1) I can create a project with spring roo
2) I can execute the command 'perform eclipse'
3) I can import the project to eclipse's workspace
4) I have opened the roo's console
5) I can change any attribute in a class from eclipse
and then, how I can do to sincronize the change with roo ?
Helenarosette says:
Added on July 24th, 2010 at 12:52 amThe post about release of Spring Roo 1.1.0.M1 was very amazing. New features to the 1.1.0 release is also superb.
I enjoyed this blog post so much. Keep blogging like this.
blogs
Rick says:
Added on September 14th, 2010 at 5:05 pmI just installed roo 1.1.0.M3 which uses jpa2. Unfortunately, I am stuck using weblogic 10.3 which only supports jpa1. Is there any way to set roo to use jpa1?