Spring Roo

[Update November, 5th] I tried Roo 1.1. See this blog post.

[Update March, 17th] After posting this, the guys from Roo posted the comments below. The command line parser bug is fixed, the dependencies will be fixed in the next version and they are investigating a fix I sent them for the NoClassDefFoundError. Not everything is perfect but at least they work on it 🙂

I just tried the ten minute example of Spring Roo. It took a lot more than ten minutes to get a huge exception. Oh well. Some notes:

Roo expects a vanilla Maven installation. If you’re behind a proxy like Nexus which limits what Maven can download, you loose. The Roo guys have copied everything (like log4j) in their own Maven repository under a weird name (org.apache.log4j:com.springsource.org.apache.log4j:1.2.15). So after working with Roo, you have a tainted repository with a lot of duplicate entries. Well done.

Of course, not everything has been copied. So some stuff comes from central, some from springsource. This meant half an hour setup of our Nexus server, trying to avoid to break it for the rest of the team.

When I try to run the app, I get

Caused by: org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#0':
Invocation of init method failed; nested exception is
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

I see. Well, your 10 minutes is up. Oh, and there is a bug: controller all works while controller all doesn’t. The difference? There is more than one space after the command. This breaks the parser (and the TAB completion). I’d file a bug if I knew how. A prominent link on the web site (that doesn’t lead to the general SpringSource Enterprise Support) would be nice.

10 Responses to Spring Roo

  1. Ben Alex says:

    Hi

    Thanks for trying Roo and sharing your experiences. Sorry you didn’t get up an app running in the 10 minutes. Hopefully the following will offer some reasons why…

    Regarding issue tracking, if you look at the Roo home page (http://www.springsource.org/roo) it contains a link caled “Full Project Resources Index”. If you click that, it contains a link to the “Jira issue tracker” at http://jira.springframework.org/browse/ROO. We are working on a new home page at present and will make this easier in the future. In the meantime we’ve got almost 700 bugs in there, so I guess plenty of people have found it. 🙂

    In relation to the javax/xml/bind/JAXBException, this is actually a bug in Hibernate Validator on Java 5. If you check the “known issues” section of the Roo reference guide we cover this. It’s not Roo’s fault at all. Here’s the link to our docs which explain: http://static.springsource.org/spring-roo/reference/html/upgrade.html#upgrade-known-issues

    Concerning the repository setup, we use the SpringSource Enterprise Bundle Repository as Roo 1.0.x applications aim to provide an OSGi-compatible experience out of the box. The reasons for the different artefact names is detailed in the FAQ question at http://www.springsource.com/repository/app/faq#q13. You may be pleased to know we’re evaluating switching to Maven Central repositories for Roo 1.1.0, as we agree this can cause confusion. The time spent setting up Nexus, though, to be fair, is not due to Roo but due to your company’s firewall/repository policies/preferences.

    You’re always welcome to ask us questions at the Roo forum at http://forum.springsource.org/forumdisplay.php?f=67. We’re very friendly and keen to help.

    Cheers

    Ben Alex
    Project Lead, Spring Roo
    SpringSource – a division of VMware

  2. Hi,

    I am sorry to hear your first experience with Roo was not as good as we would hope for. Since you mentioned several issues, let me address them one by one.

    The first point about using ‘unusual’ maven artifact names pointing to resources in the SpringSource Enterprise Bundle Repository rather than Maven Central was a conscious decision we have taken a while back to support the deployment of Roo generated applications in OSGi compliant app servers such as dmServer. However, you will be happy to hear that based on similar feedback to yours we have, just this week, decided to use Maven Central artifacts exclusively in Roo generated applications. This change should be available with the upcoming Roo 1.1 M1 release.

    The second problem you mentioned here is the NoClassDefFoundError: javax/xml/bind/JAXBException. This is a known issue in an external dependency (Hibernate) rather than Roo. See ROO-224 and HHH-4427. This effectively makes Hibernate (Validator) depend on an JDK API which is only avalailable from JDK 6 onwards. As soon as there is a GA release of Hibernate available this problem should be resolved.

    The third problem seems indeed to be a bug in the Roo shell and we will fix this ASAP. Please open the bug in our Jira.

    The Roo project landing page offers a number of links which point new users to documentation, a getting started video and other resources. One of the helpful links there is the resources post in the Roo forums.

    Also, feel free to ask more questions in our forums. We try to respond to all questions asked there and are happy to hear about improvement suggestions, feature ideas besides your general usage questions.

    Best regards,

    Stefan Schmidt

    Spring Roo software engineer
    SpringSource, a division of VMware

  3. […] of my problems are still there and will be solved by Roo 1.1 (couldn’t find out a release date for […]

  4. Doug says:

    I have a plain vanilla Archiva Maven proxy. Just tried the 10 minute tutorial and the Pizzashop tutorial with the 1.1.0.M3 Roo release. It still throws errors about missing jar packages.
    The main reasons I have Maven is to automate pulling jars from the central repository, instead of manually fixing the errors myself.
    Bottom line, Roo fail.

  5. digulla says:

    I wish they would release 1.1 with the fix and push all other features planned for 1.1 into 1.2.

  6. Thad West says:

    I just tried Roo in 10 minutes as well…90 minutes ago. After wrestling with Archiva (we are using it as our proxy out) and the corporate proxy I am ready to throw in the towel. Boo on Roo (probably on me too for not figuring it out).

  7. […] Roo again A while ago, I tried Spring Roo — without much success. One of the main obstacles was the fact that most of the dependencies […]

  8. me says:

    Spring roo + gwt just doesn’t work
    at this moment it’s just someone’s dream

  9. bala says:

    hi any one give idea how get horizontal menu spring roo
    i have vertical menu

    balak

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s