In December 2004 I did done some work on XDoclet 1.2.2 support for Geronimo but did not get around to contributing it. Currently it supports the generation of the openejb-jar.xml file for session and message-driven beans.
See the following mail thread for discussion on this contribution.
Note that there are a number of issues discussed below that need to be resolved before this is ready to be included with Geronimo releases. In other words, it isn't complete .
How to build
1. Download the appropriate (zip/tar) xdoclet-src-1.2.2 file from http://sourceforge.net/project/showfiles.php?group_id=31602:
2. Extract the xdoclet-src-1.2.2-* file you downloaded
3. Copy the geronimo directory (in the attached zip file) to the xdoclet-1.2.2\modules directory
4. Build the XDoclet code by running ant ( ant 1.5 works, later versions get an error) in the xdoclet-1.2.2 directory. After the build has completed the xdoclet-1.2.2\target\lib directory should contain xdoclet-geronimo-module-1.2.2.jar .
5. Generate the html documentation (it will be placed in the xdoclet-1.2.2\target\docs directory) by issuing the command "maven site:generate" in the xdoclet-1.2.2 directory. After the documentation has been generated you should be able to see the documentation for the geronimo XDoclet tags in the file xdoclet-1.2.2/target/docs/tags/geronimo-tags.html . Note that a link to the geronimo tags is not added to the main XDoclet page ( xdoclet-1.2.2/target/docs/index.html ) so it seems the link has to be added manually.
Issues to discuss
- how to integrate into Geronimo build. Currently to build the Geronimo XDoclet module, it requires the XDoclet source code to be available. It may be possible to write some ant/maven build files that can build the geronimo XDoclet module without requiring the Xdoclet source code download (although I haven't seen any other projects build an XDoclet module this way yet).
- create test application utilising the geronimo XDoclet tags
- currently the configId attribute must be specified in the ant file when invoking the geronimo subtask. The configId value is placed in the generated plan. The parentId attribute can also be optionally specified. Is this the best way? See documentation in the file xdoclet-1.2.2/target/docs/ant/xdoclet/modules/geronimo/ejb/GeronimoSubTask.html .
- the tag parameter names match the xml element names in the deployment plan, but for the parameters used to specify portions of jsr-77 object names (e.g. domain, server, application, module, ..), I have prefixed the parameter with objname- to make it clearer that they are part of a group.
*Should the parameter names (e.g. the ref-name parameter of the @geronimo.resource-ref tag) should be more consistent with the parameters of the @ejb tags (e.g. the res-refname parameter of the @ejb.resource-ref tag).
- Should we be trying to have unique parameter names so that it is easier to search for the particular parameter. For example, currently the ref-name parameter is used on the @geronimo.ejb-local-ref , @geronimo.ejb-ref and @geronimo.resource-ref tags. If we do change the parameter names to be unique it will mean the parameter names will no longer match the generated XML element names (this may make troubleshooting generated XML harder).
Further work to be done
the following contributions/help by others are welcome :
- Improvements to the tag documentation ( xdoclet-1.2.2/target/docs/tags/geronimo-tags.html )
- web support
- web services support
- entity beans support
- GBeans support
- Corba support
- Testing with Eclipse WTP and other IDEs