Grails Groovy

A few 2GX notes

Late last night I returned home from the Groovy/Grails Experience (2GX) in Reston, VA.  I met many wonderful people and learned tons of new things, which I’m sure will spawn blog posts over the next few weeks.

Just to get started, though, I thought I’d mention a few random observations from the conference.

  1. Buy Scott Davis’s Groovy Recipes book!
  2. All of the major players I met from the Groovy and Grails projects (Dierk Koenig, Graeme Rocher, Jeff Brown, Jason Rudoph, and many others) were uniformly friendly and encouraging.  Everyone is so easy to talk to and so welcoming of others.  I’m more convinced than ever that Groovy and Grails are going to be huge in the marketplace.
  3. Glen Smith, on the other hand, is certifiably insane.  And I mean that in the nicest possible way. 🙂  My biggest disappointment at the conference (other than bizarrely forgetting to bring my copy of DGG to get autographed) was that Glenn’s “UI Extreme Makeover” talk was so full I was unable to find a seat.  I had to settle for yet another talk by Scott Davis instead (the horror, the horror).
  4. Apparently I’m not the only person having a long-term love affair with GinA.
  5. Oh, and buy Groovy Recipes!  It’s now available!
  6. Dierk Koenig gave a talk entitled “7 Groovy Usage Patterns for Java Projects.”  In retrospect, that may have been the most important talk I attended.  He showed all sorts of ways to apply Groovy to your projects, and gave each category a clever name.  My favorite was “house elf” scripts, defined as programs that “delegate the housework,” i.e., do the everyday background work for you.  I’m going to start collecting my own Groovy programs into his categories.  I really hope he finds a place to publish that presentation, or some article based on it.
  7. Jason Rudolph’s Refactotum presentation (basically a how-to on ways to participate in open source projects) got off to a slow start, but finished very strong.  I’ve never actually contributed to an open source project, but now that I know how, I’m sure I’ll be doing so in the future.  I can write test cases at least, even when I’m otherwise busy.  I’m equally sure I’ll mention something about that here. 🙂
  8. Don’t forget to buy Groovy Recipes!  Don’t let the fact that Scott included a quote from me in it dissuade you.

I see that I’ve left out almost everything.  I wish I could have attended twice as many talks.  I guess I’ll just have to go back next year, too.


Additional comment about GRAILS_HOME

Yesterday I commented on how I needed to change my GRAILS_HOME variable to point to the grails subdirectory of the grails-1.0 distribution. I did a bit more checking and discovered something interesting.

I’ve been using the Windows installer for Grails. I like how it also installs links for all the JavaDoc documentation, how it includes optional components, etc. It turns out, though, that it’s the Windows installer that’s changed the directory structure.

I just download the zipped binary distribution and expanded it, and it has the original directory structure. With that, I can just set the GRAILS_HOME variable to c:\grails-1.0.1 as usual and everything should be fine.

I’ll be watching to see if the Windows installer changes to go back to the original structure or not. If so, I’ll be sure to mention it here. I probably should say something on the mailing list, too, which I might if I get a chance.


Grails Home moved in 1.0

Like approximately 15,000 others, I downloaded and installed Grails 1.0 final in the couple of days after it was released. To my great surprise, however, I couldn’t get it to run properly any more, especially in either Eclipse or IntelliJ IDEA. I couldn’t get either IDE to understand Grails 1.0. I kept trying to set the Grails configuration in IDEA to c:\grails-1.0, and it kept saying that that was an invalid Grails directory. My Eclipse installation messed up the entire build path.

For about a week now, I’ve been assuming my IDE problems were related to plugins that hadn’t yet been updated. I kept checking to see if they were going to update any time soon.

That, as they say, turned out not to be the issue.

This evening I finally realized what happened. Between the last release candidate and the final release of 1.0, the directory structure of the installer changed. Now, the real location of GRAILS_HOME is the grails directory underneath the grails installer. In other words, my GRAILS_HOME variable is


whereas before it would have been the grails-1.0 directory itself. Now that I’ve updated that, I’ve been able to get both IDEA and Eclipse to work.

What surprises me is that I can’t find this change documented anywhere. I don’t see it on the Grails wiki, or anywhere in the mailing list archives. Either this is obvious to everyone, or it just hasn’t been recorded anywhere yet.

Thus, this post. Hopefully it’ll help somebody else who might be having the same problem.

(Incidentally, to be strictly correct, I actually set my location to c:\grails-1.0.1\grails. Tonight I updated to the incremental version 1.0.1. :))


“How Groovy Helps” presentation now available

Last night I gave a presentation at my local CT Java User’s Group on Groovy.  Rather than present a laundry list of Groovy features, I took a somewhat different approach.  Instead, I selected three relatively small, self-contained problems that I’d worked on over the past few months and showed how using Groovy simplified my work.

I gave the PowerPoint slides to the group moderator so he could add them to the group’s web site, but I decided to share them as well.  Below is a link to my uploaded presentation at (don’t go to, that’s something completely different).

View kousen's profile on slideshare

I’d embed the presentation here, but I don’t know how to do that, so I’ll have to settle for that button or this direct link.

I tried to upload my source code here, but it’s in zip form and that’s not an acceptable format.  Maybe later I’ll add them to my own web site, but for now know at least that all the code examples are contained in the slides themselves.

I’m sure experienced Groovy developers will find ways to make the included code groovier.  If so, please let me know — that’s how I learn.  A lot of the code has already been posted here at one time or another and I’ve learned a lot from the comments.  Hopefully I haven’t said anything in the slides that’s outright incorrect, though. 🙂