Gram is really quite a trivial piece of software (2 simple classes!) but I've already found it to be fun and invaluable on a project.
Gram is a combination of Groovy + JAM and a very tiny bit of glue. Or think of it as GRoovy Annotation Metadata.
Anyways if ever you wanna code generate or process doclet tags from Java 1.4 source code or Java 5 annotation source or annotation bytecode, try taking a look at Gram. Its super simple (there's very little there!) but despite its extreme lightness, its kinda handy.
e.g. in about an hour using Gram I auto-generated a whole slew of custom Tapestry widgets from the hibernate-doclet tag'd POJOs on a project (after spending a day pulling my hair out with xdoclet and xdoclet2). JAM takes care of the annoation/doclet stuff, Groovy takes care of the scripting, code generation and templating - and Gram does the tiny bit in between.
So if ever you need to do some new code generation and existing xdoclet templates don't do what you need, have a play with Gram, you might like it. Of course if you're already using xdoclet and it does what you need, keep on truckin'