XDoclet Maven PluginToday I finished implementing the XDoclet Maven plugin. What's intersting about it? Well, the fact that the plugin itself is autogenerated! So I wrote an xdoclet template which generates Maven's plugin.jelly file. The template looks at all tasks and subtasks of xdoclet and also at some special @tags such as @ant.required/etc and generates a plugin.jelly file which supports all tasks and subtasks of xdoclet. So let's say a new subtask is added to ejbdoclet, I should just run the template once again and the Maven plugin is updated and contains the new subtask. Just imagine what a headache it would be if I had to hand code it for all the tasks and subtasks (100+ of them!). James Birchfield also helped me in implementing it, thanks James!
JellyWhile implementing it I had to write some Jelly scripts too. Congrats to James Strachan for such a high quality tool. Looking at some of the tags I felt at home, looks very similiar to xdoclet's own template system, except that it's done right.
Brett wondered if Joe should tell the XDoclet project about his new QDox JavaDoc replacement. And the answer is: no, because XDoclet already has a completely rewritten JavaDoc engine, which has been around for some time now, and also kicks booty (which one kicks the most booty I don't know though). The current XDoclet code is pretty fast.
Well, imho QDox and xjavadoc are created for completely different purposes. QDox AFAIK acts like a SAX parser, xjavadoc is like DOM. So whenever QDox comes across a @test tag for example a listener is triggered. It's good for limited cases imho, xjavadoc is for more sophisticated uses. AFAIK Joe has written it to have a fast and trigger-based system for his Mocklet project.
Ara. [Memory Dump]
Hey Ara. Welcome to the wonderful world of blogging! :-). (Warning, its very addictive).
The Maven XDoclet plugin sounds groovy - am gonna have to take a look. Plus thanks for the kind words on Jelly; the XDoclets template system was definitely one of the inspirations for Jelly (as well as Velocity, JSP, JSTL, Cocoon and XSLT). I really just tried to merge all the good features of all of these technologies together into a simple engine that could support real scripting langauages too.