Creating an XDoclet Module
Problem
You have created a custom XDoclet code generator and now you need to create an XDoclet module.
Solution
Add an Ant jar
task to your buildfile that
packages up the code generator’s class files,
template files, and xdoclet.xml
file.
Discussion
XDoclet 1.2 code generators are packaged into JAR files known as modules. Modules are nothing more than a JAR file with a well-defined structure. It is the same process as packaging up a WAR or EAR file, only an XDoclet module is much simpler.
Example 9-17 shows an Ant target,
jar.perf.module
, that creates an XDoclet module.
There are two special considerations for creating a module. First,
the name of the JAR file should end with
“module”. This is only a
convention, but it should be followed. Second, the
xdoclet.xml
must be placed in the
meta-inf
directory of the JAR file. This step is
required for XDoclet to map template namespaces and parent task and
subtask relationships. It is easy to do, using
jar
’s
metainf
subtask.
Example 9-17. Creating an XDoclet module
<target name="jar.perf.module" depends="compile.perf,generate.xdoclet.xml">
<jar jarfile="${dir.build}/oreilly-junitperf-module.jar">
<fileset dir="${dir.build}">
<include name="**/perf/"/>
<exclude name="**/xdoclet.xml"/>
</fileset>
<metainf dir="${dir.build}" includes="xdoclet.xml"/>
</jar>
</target>
See Also
Recipe 9.10 shows how to create a custom Ant Doclet subtask to generate JUnitPerf tests. Recipe 9.11 shows how to create the JUnitPerfDoclet tag handler ...
Get Java Extreme Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.