Russel Winder's Website

Groovy and Grails User Group London Meeting 2007-03-15

I made a presentation on Builders (in Groovy) last evening at the GGUG London meeting (held at Skills Matter). Well it should have been a presentation but it was only half a presentation due to:

The projector not talking sensibly to my computers - plural, neither of them was able to work sensibly with the projector, even though one of them had 3 months ago. Eventually I managed to get one to do something reasonable enough to do something.

Definitely embarrassing. Still I managed to talk a bit about metaobject protocols (MOPs) and how the Groovy MOP not only uses metaclasses, but also looks for the method invokeMethod in the object itself as part of method look-up, and how this allows Builders to be constructed almost trivially.

As a mentioned in the entry for the last session I did, sessions such as these are not really the place for heavyweight presentations, so although the idea was to ensure everyone understood how Builders work in Groovy, it was a fairly light talk and the slides I used have next to nothing on them. However, it seems reasonable to make them available, so you can get a PDF of them here.

Groovy has a good selection of Builders: SAXBuilder, StreamingSAXBuilder, DOMBuilder, StreamingDOMBuilder, SwingBuilder, AntBuilder, to name just a few of the obviously most useful. Since I avoid XML as much as possible, SwingBuilder and AntBuilder are the ones I have most familiarity with. SwingBuilder makes creating Swing user interfaces so much easier than writing Java code, and AntBuilder has a plethora of uses, some of them even associated with managing builds. Of course, I only use Gant now for managing builds using Ant tasks - it saves having to work with XML!

I am scheduled to give a talk on Gant at Grails eXchange, so if you want to hear more about how to manage Ant-based builds without using XML, come along. In case you weren't aware, Gant is used within Grails for managing all the activities.

Copyright © 2017 Russel Winder -