You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by sp...@apache.org on 2005/09/26 15:42:25 UTC

svn commit: r291620 - in /geronimo/devtools/trunk/sandbox: ./ xdoclet/ xdoclet/resources/ xdoclet/resources/xdoclet/ xdoclet/resources/xdoclet/modules/ xdoclet/resources/xdoclet/modules/geronimo/ xdoclet/resources/xdoclet/modules/geronimo/ejb/ xdoclet/...

Author: sppatel
Date: Mon Sep 26 06:42:19 2005
New Revision: 291620

URL: http://svn.apache.org/viewcvs?rev=291620&view=rev
Log:
GERONIMO-778

Added:
    geronimo/devtools/trunk/sandbox/
    geronimo/devtools/trunk/sandbox/xdoclet/
    geronimo/devtools/trunk/sandbox/xdoclet/LICENSE.txt
    geronimo/devtools/trunk/sandbox/xdoclet/NOTICE.txt
    geronimo/devtools/trunk/sandbox/xdoclet/README.txt
    geronimo/devtools/trunk/sandbox/xdoclet/build.xml
    geronimo/devtools/trunk/sandbox/xdoclet/module.xml
    geronimo/devtools/trunk/sandbox/xdoclet/resources/
    geronimo/devtools/trunk/sandbox/xdoclet/resources/xdoclet/
    geronimo/devtools/trunk/sandbox/xdoclet/resources/xdoclet/modules/
    geronimo/devtools/trunk/sandbox/xdoclet/resources/xdoclet/modules/geronimo/
    geronimo/devtools/trunk/sandbox/xdoclet/resources/xdoclet/modules/geronimo/ejb/
    geronimo/devtools/trunk/sandbox/xdoclet/src/
    geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/
    geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/xtags.xml
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoSubTask.java
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoTagsHandler.java
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/
    geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/openejb-jar_xml.xdt

Added: geronimo/devtools/trunk/sandbox/xdoclet/LICENSE.txt
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/LICENSE.txt?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/LICENSE.txt (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/LICENSE.txt Mon Sep 26 06:42:19 2005
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+

Added: geronimo/devtools/trunk/sandbox/xdoclet/NOTICE.txt
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/NOTICE.txt?rev=291620&view=auto
==============================================================================
    (empty)

Added: geronimo/devtools/trunk/sandbox/xdoclet/README.txt
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/README.txt?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/README.txt (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/README.txt Mon Sep 26 06:42:19 2005
@@ -0,0 +1,43 @@
+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.
+
+http://marc.theaimsgroup.com/?t=112002458700001&r=1&w=2
+
+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
+
+
+Latest version, has support for activation-config-property tag. 
\ No newline at end of file

Added: geronimo/devtools/trunk/sandbox/xdoclet/build.xml
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/build.xml?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/build.xml (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/build.xml Mon Sep 26 06:42:19 2005
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+
+<!--
+
+    Copyright 2005 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!-- $Rev:        $ $Date:                                              $ -->
+
+
+<!DOCTYPE project [
+    <!ENTITY modules-common SYSTEM "../modules-common.ent">
+]>
+
+<!-- the name attribute specifies the name used in the generated module's jar file
+     where the generated file has the format xdoclet-name-x.x.x.jar
+-->
+<project name="geronimo" default="all">
+   &modules-common;
+</project>

Added: geronimo/devtools/trunk/sandbox/xdoclet/module.xml
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/module.xml?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/module.xml (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/module.xml Mon Sep 26 06:42:19 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+
+<!--
+
+    Copyright 2005 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!-- $Rev:        $ $Date:                                              $ -->
+
+<!DOCTYPE module PUBLIC "-//XDoclet Team//DTD XDoclet Module 1.0//EN" "http://xdoclet.sourceforge.net/dtds/xdoclet-module_1_0.dtd">
+
+<!-- This is an XDoclet module descriptor file -->
+
+<module>
+    <!-- the geronimo module depends upon the standard XDoclet ejb module, 
+         therefore the ejb module will be built first. 
+    -->
+    <module-dependency module-name="ejb"/>
+</module>

Added: geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/xtags.xml
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/xtags.xml?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/xtags.xml (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/src/META-INF/xtags.xml Mon Sep 26 06:42:19 2005
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+    Copyright 2005 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!DOCTYPE xdoclet PUBLIC "-//XDoclet Team//DTD XDoclet Tags 1.1//EN" "http://xdoclet.sourceforge.net/dtds/xtags_1_1.dtd">
+<xdoclet>
+    <!-- geronimo specific tags -->
+    <namespace>
+        <name>geronimo</name>
+        <usage-description>Tags for creation of Geronimo specific resources</usage-description>
+        <condition-description>all EJB types on class and method level</condition-description>
+        <condition type="and">
+            <condition type="or">
+                <condition type="method"/>
+                <condition type="class"/>
+            </condition>
+            <condition type="or">
+                <condition type="type">
+                    <condition-parameter>javax.ejb.SessionBean</condition-parameter>
+                </condition>
+                <condition type="type">
+                    <condition-parameter>javax.ejb.EntityBean</condition-parameter>
+                </condition>
+                <condition type="type">
+                    <condition-parameter>javax.ejb.MessageDrivenBean</condition-parameter>
+                </condition>
+            </condition>
+        </condition>
+        <tags>
+            <!-- ########################################################### -->
+            <tag>
+                <level>class</level>
+                <name>geronimo.ejb-ref</name>
+                <usage-description>Used to specify a reference to an EJB external to the current application. Ensure that there is also an @ejb.ejb-ref tag specified which points to the referenced bean.</usage-description>
+                <unique>true</unique>
+                <condition-description>Applicable to all EJBs and Web components</condition-description>
+                <parameter type="text">
+                    <name>ref-name</name>
+                    <usage-description>EJB reference name.  This must match the value you specified in the ref-name parameter of the @ejb.ejb-ref tag.</usage-description>
+                    <mandatory>true</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-domain</name>
+                    <usage-description>The J2EE domain name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-server</name>
+                    <usage-description>The J2EE server name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-application</name>
+                    <usage-description>The J2EE application name portion of an ObjectName (JSR-77 syntax) identifying the application that contains the EJB to map to. Specify "null" if deployed as a non-application module. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-module</name>
+                    <usage-description>The module name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. It should specify the configId of the module that the target resource is in. The objname-* parameters are mutually exclusive with all other parameters, except ref-name. </usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-type</name>
+                    <usage-description>The type portion of an ObjectName (JSR-77 syntax) identifying the type of EJB to map to. Specify one of StatefulSessionBean, StatelessSessionBean, EntityBean, or MessageDrivenBean depending upon the type of EJB being mapped. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-name</name>
+                    <usage-description>Specifies an entire ObjectName (JSR-77 syntax) for an EJB to map to as an alternative to specifying the individual components of the object name using the objname-* paramters. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>ejb-link</name>
+                    <usage-description>Specifies an EJB in the same EAR to map to.  This must match the value you specified in the name parameter of the @ejb.bean tag.  This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>target-name</name>
+                    <usage-description>Specifies an entire ObjectName (JSR-77 syntax) for a resource to map to. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+            </tag>
+            <!-- ########################################################### -->
+            <tag>
+                <level>class</level>
+                <name>geronimo.ejb-local-ref</name>
+                <usage-description>Used to specify a reference to an EJB via its local home and local interfaces. Ensure that there is also an @ejb.ejb-ref tag specified which points to the referenced bean.</usage-description>
+                <unique>true</unique>
+                <condition-description>Applicable to all EJBs and Web components</condition-description>
+                <parameter type="text">
+                    <name>ref-name</name>
+                    <usage-description>EJB reference name.  This must match the value you specified in the ref-name parameter of the @ejb.ejb-ref tag.</usage-description>
+                    <mandatory>true</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-domain</name>
+                    <usage-description>The domain name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-server</name>
+                    <usage-description>The server name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-application</name>
+                    <usage-description>The application name portion of an ObjectName (JSR-77 syntax) identifying the application that contains the EJB to map to. Specify "null" if deployed as a non-application module. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-module</name>
+                    <usage-description>The module name portion of an ObjectName (JSR-77 syntax) identifying the EJB to map to. It should specify the configId of the module that the target resource is in. The objname-* parameters are mutually exclusive with all other parameters, except ref-name. </usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-type</name>
+                    <usage-description>The type portion of an ObjectName (JSR-77 syntax) identifying the type of EJB to map to. Specify one of StatefulSessionBean, StatelessSessionBean, EntityBean, or MessageDrivenBean depending upon the type of EJB being mapped. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-name</name>
+                    <usage-description>Specifies an entire ObjectName (JSR-77 syntax) for an EJB to map to as an alternative to specifying the individual components of the object name using the objname-* paramters. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>ejb-link</name>
+                    <usage-description>Specifies an EJB in the same EAR to map to.  This must match the value you specified in the name parameter of the @ejb.bean tag.  This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>target-name</name>
+                    <usage-description>Specifies an entire ObjectName (JSR-77 syntax) for a resource to map to. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+            </tag>
+            
+            <!-- ########################################################### -->
+            <tag>
+                <level>class</level>
+                <name>geronimo.resource-ref</name>
+                <usage-description>Used to specify a reference to a resource. Ensure that there is also an @ejb.resource-ref tag specified which points to the referenced resource.</usage-description>
+                <unique>true</unique>
+                <condition-description>Applicable to all EJBs and Web components</condition-description>
+                <parameter type="text">
+                    <name>ref-name</name>
+                    <usage-description>Resource reference name.  This must match the value you specified in the res-ref-name parameter of the @ejb.resource-ref tag.</usage-description>
+                    <mandatory>true</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-domain</name>
+                    <usage-description>The domain name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-server</name>
+                    <usage-description>The server name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to.  The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-application</name>
+                    <usage-description>The application name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to.  Specify "null" if deployed as a non-application module. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-module</name>
+                    <usage-description>The module name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to. It should specify the configId of the module that the target resource is in. The objname-* parameters are mutually exclusive with all other parameters, except ref-name. </usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-type</name>
+                    <usage-description>The type portion of an ObjectName (JSR-77 syntax) identifying the type of resource to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-name</name>
+                    <usage-description>The name portion of an ObjectName (JSR-77 syntax) identifying the name of resource to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>resource-link</name>
+                    <usage-description>The name of a J2EE connector to map to. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>target-name</name>
+                    <usage-description>Specifies an entire object name for a resource to map to as an alternative to specifying the individual components of the ObjectName using the objname-* parameters. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>url</name>
+                    <usage-description>Specifies a URL for the resource to map to if the resource was of type java.net.URL. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+            </tag>
+            <!-- ########################################################### -->
+            <tag>
+                <level>class</level>
+                <name>geronimo.resource-env-ref</name>
+                <usage-description>Used to map an administered object in the server to the reference declared by an EJB. Ensure that there is also an @ejb.resource-env-ref tag specified which points to the referenced resource.</usage-description>
+                <unique>true</unique>
+                <condition-description>Applicable to all EJBs and Web components</condition-description>
+                <parameter type="text">
+                    <name>ref-name</name>
+                    <usage-description>Resource env-reference name.  This must match the value you specified in the name parameter of the @ejb.resource-env-ref tag.</usage-description>
+                    <mandatory>true</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-domain</name>
+                    <usage-description>The domain name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-server</name>
+                    <usage-description>The server name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to.  The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-application</name>
+                    <usage-description>The application name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to.  Specify "null" if deployed as a non-application module. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-module</name>
+                    <usage-description>The module name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to. It should specify the configId of the module that the target resource is in. The objname-* parameters are mutually exclusive with all other parameters, except ref-name. </usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-type</name>
+                    <usage-description>The type portion of an ObjectName (JSR-77 syntax) identifying the type of resource to map to (e.g. JCAAdminObject). The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>objname-name</name>
+                    <usage-description>The name portion of an ObjectName (JSR-77 syntax) identifying the resource to map to. The objname-* parameters are mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>message-destination-link</name>
+                    <usage-description>The name of an admin object (such as a JMS topic or queue) deployed as part of a J2EE connector. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+                <parameter type="text">
+                    <name>target-name</name>
+                    <usage-description>Specifies an entire ObjectName (JSR-77 syntax) for an admin object to map to as an alternative to specifying the individual components of the ObjectName using the objname-* paramters. This is mutually exclusive with all other parameters, except ref-name.</usage-description>
+                    <mandatory>false</mandatory>
+                </parameter>
+            </tag>            
+        </tags>
+    </namespace>
+</xdoclet>

Added: geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoSubTask.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoSubTask.java?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoSubTask.java (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoSubTask.java Mon Sep 26 06:42:19 2005
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2001, 2002 The XDoclet team
+ * All rights reserved.
+ */
+package xdoclet.modules.geronimo.ejb;
+
+import xdoclet.XDocletException;
+import xdoclet.modules.ejb.EjbDocletTask;
+import xdoclet.modules.ejb.dd.AbstractEjbDeploymentDescriptorSubTask;
+
+/**
+ * Creates openejb-jar.xml deployment descriptor file for Geronimo.
+ *
+ * @created              19 July 2005
+ * @ant.element          display-name="Geronimo" name="geronimo" parent="xdoclet.modules.ejb.EjbDocletTask"
+ * @version              $Rev: $ $Date: $
+ * @xdoclet.merge-file   file="openejb-jar-beans.xml" relates-to="openejb-jar.xml" description="An unparsed XML file
+ *      that may contain session, entity and message-driven elements for beans you wish to include which aren't
+ *      processed by XDoclet."
+ * @xdoclet.merge-file   file="openejb-jar-{0}.xml" relates-to="openejb-jar.xml" description="An XML document containing
+ *      the session, entity or message-driven elements for a bean, to be used instead of generating it from the bean's
+ *      tags."
+ */
+public class GeronimoSubTask extends AbstractEjbDeploymentDescriptorSubTask
+{
+    private final static String DEFAULT_TEMPLATE_FILE = "resources/openejb-jar_xml.xdt";
+
+    private final static String DEFAULT_PARENTID = "org/apache/geronimo/Server";
+
+    private final static String GERONIMO_DD_FILE_NAME = "openejb-jar.xml";
+
+    /**
+     * The configId to be placed in the generated openejb-jar.xml file. This must be set by the configId config
+     * parameter.
+     */
+    private String  configId;
+
+    /**
+     * The parentId (e.g. org/apache/geronimo/Server) to be placed in the generated openejb-jar.xml file. This is set by
+     * the parentId configuration parameter
+     */
+    private String  parentId;
+
+
+    /**
+     * Gets the configId attribute of the GeronimoSubTask object
+     *
+     * @return   The configId value
+     */
+    public String getConfigId()
+    {
+        return configId;
+    }
+
+
+    /**
+     * Gets the parentId attribute of the GeronimoSubTask object
+     *
+     * @return   The parentId value
+     */
+    public String getParentId()
+    {
+        return parentId;
+    }
+
+
+    /**
+     * Sets the configId attribute of the GeronimoSubTask object
+     *
+     * @param configId  The new configId value
+     */
+    public void setConfigId(String configId)
+    {
+        this.configId = configId;
+    }
+
+
+    /**
+     * Sets the parentId attribute of the GeronimoSubTask object
+     *
+     * @param parentId  The new parentId value
+     */
+    public void setParentId(String parentId)
+    {
+        this.parentId = parentId;
+    }
+
+
+    /**
+     * Start the GeronimoSubTask
+     *
+     * @exception XDocletException
+     */
+    public void execute() throws XDocletException
+    {
+        startProcess();
+
+        // this method may be enhanced in the future if we
+        // need to generate other files
+    }
+
+
+    /**
+     * Called to validate configuration parameters.
+     *
+     * @exception XDocletException
+     */
+    public void validateOptions() throws XDocletException
+    {
+
+        if (getTemplateURL() == null)
+            setTemplateURL(getClass().getResource(DEFAULT_TEMPLATE_FILE));
+
+        if (getDestinationFile() == null)
+            setDestinationFile(GERONIMO_DD_FILE_NAME);
+
+        // todo: need to determine if we can validate generated files against a schema
+
+        if (configId == null)
+            throw new XDocletException("configId configuration parameter not specified");
+
+        if (getParentId() == null)
+            setParentId(DEFAULT_PARENTID);
+
+        super.validateOptions();
+
+    }
+
+}

Added: geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoTagsHandler.java
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoTagsHandler.java?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoTagsHandler.java (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/GeronimoTagsHandler.java Mon Sep 26 06:42:19 2005
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2001, 2002 The XDoclet team
+ * All rights reserved.
+ */
+package xdoclet.modules.geronimo.ejb;
+
+import xdoclet.tagshandler.ClassTagsHandler;
+
+/**
+ * Tag Handler class for the geronimo namespace. See
+ * http://xdoclet.sourceforge.net/xdoclet/development/architecture.html for an overview of Tag handlers.
+ *
+ * @created              19 July 2005
+ * @xdoclet.taghandler   namespace="Geronimo"
+ * @version              $Rev: $ $Date: $
+ */
+public class GeronimoTagsHandler extends ClassTagsHandler
+{
+
+// todo
+
+}

Added: geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/openejb-jar_xml.xdt
URL: http://svn.apache.org/viewcvs/geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/openejb-jar_xml.xdt?rev=291620&view=auto
==============================================================================
--- geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/openejb-jar_xml.xdt (added)
+++ geronimo/devtools/trunk/sandbox/xdoclet/src/xdoclet/modules/geronimo/ejb/resources/openejb-jar_xml.xdt Mon Sep 26 06:42:19 2005
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="<XDtConfig:configParameterValue paramName='Xmlencoding'/>"?>
+
+  <XDtComment:comment>
+    Copyright 2005 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+    $Rev:        $ $Date:                                              $
+  </XDtComment:comment>
+
+<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar" 
+             xmlns:gernaming="http://geronimo.apache.org/xml/ns/naming"
+             configId="<XDtConfig:configParameterValue paramName='configId'/>"
+  <XDtConfig:ifHasConfigParam paramName="parentId" optional="true">
+             parentId="<XDtConfig:configParameterValue paramName='parentId'/>"
+  </XDtConfig:ifHasConfigParam>
+>
+
+   <enterprise-beans>
+
+  <XDtMerge:merge file="openejb-jar-beans.xml">
+     <!--
+       To add beans that you already have XML deployment descriptor markup, add the
+       file openejb-jar-beans.xml to your XDoclet merge directory that contains the
+       bean markup, e.g. the <session></session> and <message-driven></message-driven>
+       sections.
+     -->
+  </XDtMerge:merge>
+
+  <XDtComment:comment>
+  ###########################################################################
+  # Session Beans
+  ###########################################################################
+  </XDtComment:comment>
+   <XDtEjbSession:forAllSessionBeans>
+    <XDtEjb:ifIsAConcreteEJBean>
+     <XDtMerge:merge file="openejb-jar-{0}.xml">
+      <session>
+         <ejb-name><XDtEjb:ejbName/></ejb-name>
+        <XDtEjb:ifRemoteEjb>
+         <jndi-name><XDtEjbHome:jndiName type="remote"/></jndi-name>
+        </XDtEjb:ifRemoteEjb>
+        <XDtEjb:ifLocalEjb>
+         <local-jndi-name><XDtEjbHome:jndiName type="local"/></local-jndi-name>
+        </XDtEjb:ifLocalEjb>
+        <XDtClass:forAllClassTags tagName="geronimo:ejb-ref">
+         <gernaming:ejb-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="ejb-link">
+            <gernaming:ejb-link><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="ejb-link"/></gernaming:ejb-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:ejb-ref>
+        </XDtClass:forAllClassTags>
+        <XDtClass:forAllClassTags tagName="geronimo:ejb-local-ref">
+         <gernaming:ejb-local-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="ejb-link">
+            <gernaming:ejb-link><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="ejb-link"/></gernaming:ejb-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:ejb-local-ref>
+        </XDtClass:forAllClassTags>
+        <XDtClass:forAllClassTags tagName="geronimo:resource-ref">
+         <gernaming:resource-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="resource-link">
+            <gernaming:resource-link><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="resource-link"/></gernaming:resource-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="url">
+            <gernaming:url><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="url"/></gernaming:url>
+            </XDtClass:ifHasClassTag>
+         </gernaming:resource-ref>
+        </XDtClass:forAllClassTags>
+         <XDtClass:forAllClassTags tagName="geronimo:resource-env-ref">
+         <gernaming:resource-env-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="message-destination-link">
+            <gernaming:message-destination-link><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="message-destination-link"/></gernaming:message-destination-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:resource-env-ref>
+         </XDtClass:forAllClassTags>
+      </session>
+
+     </XDtMerge:merge>
+    </XDtEjb:ifIsAConcreteEJBean>
+   </XDtEjbSession:forAllSessionBeans>
+  <XDtComment:comment>
+  ###########################################################################
+  # Message Driven Beans
+  ###########################################################################
+  </XDtComment:comment>
+    <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
+    <XDtEjbMdb:forAllMDBeans>
+    <XDtEjb:ifIsAConcreteEJBean>
+     <XDtMerge:merge file="openejb-jar-{0}.xml">
+      <message-driven>
+         <ejb-name><XDtEjb:ejbName/></ejb-name>      
+        <XDtClass:forAllClassTags tagName="geronimo:resource-adapter">
+         <gernaming:resource-adapter>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="resource-link">
+            <gernaming:resource-link><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="resource-link"/></gernaming:resource-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-adapter" paramName="url">
+            <gernaming:url><XDtClass:classTagValue tagName="geronimo:resource-adapter" paramName="url"/></gernaming:url>
+            </XDtClass:ifHasClassTag>
+         </gernaming:resource-adapter>
+        </XDtClass:forAllClassTags>     
+        <XDtClass:ifHasClassTag tagName="geronimo:activation-config-property">
+        <activation-config>
+          <XDtClass:forAllClassTags tagName="geronimo:activation-config-property">        
+            <activation-config-property>
+              <XDtClass:ifHasClassTag tagName="geronimo:activation-config-property" paramName="description">
+              <description><XDtClass:classTagValue tagName="geronimo:activation-config-property" paramName="description"/></description>
+              </XDtClass:ifHasClassTag>            
+              <XDtClass:ifHasClassTag tagName="geronimo:activation-config-property" paramName="activation-config-property-name">
+              <activation-config-property-name><XDtClass:classTagValue tagName="geronimo:activation-config-property" paramName="activation-config-property-name"/></activation-config-property-name>
+              </XDtClass:ifHasClassTag>            
+              <XDtClass:ifHasClassTag tagName="geronimo:activation-config-property" paramName="activation-config-property-value">
+              <activation-config-property-value><XDtClass:classTagValue tagName="geronimo:activation-config-property" paramName="activation-config-property-value"/></activation-config-property-value>
+              </XDtClass:ifHasClassTag>            
+            </activation-config-property>
+          </XDtClass:forAllClassTags>
+        </activation-config>        
+        </XDtClass:ifHasClassTag>
+        <XDtClass:forAllClassTags tagName="geronimo:ejb-ref">
+         <gernaming:ejb-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="ejb-link">
+            <gernaming:ejb-link><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="ejb-link"/></gernaming:ejb-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:ejb-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:ejb-ref>
+        </XDtClass:forAllClassTags>
+        <XDtClass:forAllClassTags tagName="geronimo:ejb-local-ref">
+         <gernaming:ejb-local-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="ejb-link">
+            <gernaming:ejb-link><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="ejb-link"/></gernaming:ejb-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:ejb-local-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:ejb-local-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:ejb-local-ref>
+        </XDtClass:forAllClassTags>
+        <XDtClass:forAllClassTags tagName="geronimo:resource-ref">
+         <gernaming:resource-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="resource-link">
+            <gernaming:resource-link><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="resource-link"/></gernaming:resource-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-ref" paramName="url">
+            <gernaming:url><XDtClass:classTagValue tagName="geronimo:resource-ref" paramName="url"/></gernaming:url>
+            </XDtClass:ifHasClassTag>
+         </gernaming:resource-ref>
+        </XDtClass:forAllClassTags>
+         <XDtClass:forAllClassTags tagName="geronimo:resource-env-ref">
+         <gernaming:resource-env-ref>
+            <gernaming:ref-name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="ref-name" mandatory="true"/></gernaming:ref-name>
+            <XDtComment:comment>#### Start of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="domain">
+            <gernaming:domain><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="domain"/></gernaming:domain>
+            </XDtClass:ifHasClassTag>            
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="server">
+            <gernaming:server><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="server"/></gernaming:server>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="application">
+            <gernaming:application><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="application"/></gernaming:application>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="module">
+            <gernaming:module><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="module"/></gernaming:module>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="type">
+            <gernaming:type><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="type"/></gernaming:type>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="name">
+            <gernaming:name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="name"/></gernaming:name>
+            </XDtClass:ifHasClassTag>
+            <XDtComment:comment>#### End of group gernaming:objectNameGroup ####</XDtComment:comment>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="message-destination-link">
+            <gernaming:message-destination-link><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="message-destination-link"/></gernaming:message-destination-link>
+            </XDtClass:ifHasClassTag>
+            <XDtClass:ifHasClassTag tagName="geronimo:resource-env-ref" paramName="target-name">
+            <gernaming:target-name><XDtClass:classTagValue tagName="geronimo:resource-env-ref" paramName="target-name"/></gernaming:target-name>
+            </XDtClass:ifHasClassTag>
+         </gernaming:resource-env-ref>
+         </XDtClass:forAllClassTags>
+      </message-driven>
+
+     </XDtMerge:merge>
+    </XDtEjb:ifIsAConcreteEJBean>
+    </XDtEjbMdb:forAllMDBeans>
+    </XDtConfig:ifConfigParamGreaterOrEquals>
+   </enterprise-beans>
+
+  <XDtComment:comment>
+  ###########################################################################
+  # todo: relationships
+  ###########################################################################
+  </XDtComment:comment>
+  <XDtComment:comment>
+  ###########################################################################
+  # todo: gbean
+  ###########################################################################
+  </XDtComment:comment>
+  <XDtComment:comment>
+  ###########################################################################
+  # todo: security
+  ###########################################################################
+  </XDtComment:comment>
+  <XDtMerge:merge file="geronimo-security.xml">
+     <!--
+       To add security role mappings etc, add a file to your XDoclet merge directory called
+       geronimo-security.xml that contains the security configuration inside 
+       <security></security> elements.
+     -->
+  </XDtMerge:merge>   
+   
+</openejb-jar>