Using GORM outside of Grails part 2 – Swing
Sunday, September 07th, 2008In an earlier post I wrote about getting GORM to work outside of Grails. It worked, but wasn’t really usable since it could only execute script files, so its usefulness was pretty limited in a real application. Greg Bond replied on the mailing (here
and here
) with some great enhancements that allowed it to work without script files. So I fleshed that out some more and now have a working implementation and even a Swing application to demonstrate.
The key was that Greg used grails compile
to generate his domain class files. I’d just been using the groovyc Ant task, and when I looked at what the Grails compile script the difference turned out to be that Grails uses a Grails-aware subclass of
Groovyc
, org.codehaus.groovy.grails.compiler.GrailsCompiler
. It allows you to specify a resourcePattern
attribute to point at the domain class .groovy files for special treatment.
So now instead of one sample project there’s three. One is the gorm standalone project, which creates a jar (gorm_standalone.jar) containing GormHelper
which bootstraps GORM. The other two are the sample application, split into GORM domain classes and the Swing application. The domain class application contains the domain class .groovy files plus DataSource.groovy, and most importantly an Ant script that builds a usable jar (domainclasses.jar). The Swing application uses gorm_standalone.jar and domainclasses.jar as libraries and displays a simple UI showing the results of database queries.
Here’s a quick screen shot:
You can download the sample apps here:
GORM standalone app
Sample app domain class app
Sample Swing app