Hi,

I posted on the xdoclet-user groups that I had some modified xdoclet 1.1
templates which provide support for the non standard resin deployment
descriptor. These are included below. Cut and paste them into the
appropriate
files under the directory com/cataloga/xdoclet/ejb.

You'll also need to modify the ejb-doclet part of the ant build file as
follows:

<deploymentdescriptor
templatefile="<path>/com/cataloga/xdoclet/ejb/ejb-jar_xml" />

The modified templates support the following tags:

resin:cmp
---------
Is a bean level tag that can be used on CMP beans. It allows you to specify
the sql-table-name and lock-factory elements for the resin cmp bean.

  eg:  @resin:cmp sql-table-name="users"
lock-factory="com.caucho.ejb.SharedLockFactory"

Resin does not require the lock-factory element so this tag parameter can
be omited in which case Resin defaults to locking reads.

resin:cmp-field
---------------
Is a method level tag that should be used on the abstract getter methods for
CMP beans. It allows you to specify the sql-name element in the deployment
descriptor
which determines which column in the table the field maps to.

  eg:  @resin:cmp-field sql-name="userid"


resin:cmr-field
---------------
Is a method level tag used on CMR relationship methods. It allows you to
specify
the sql-name element in the deployment descriptor which determines the
column
which contains the foreign key for the relationship (I haven't had to use
composite keys so far, so this isn't supported).

 eg:  @resin:cmr-field sql-name="foreignkeyid"


That's all. I'm sure it's not perfect but hopefully someone will find it
useful.
I'll try and maintain these in the future, but I'll need some help from the
core xdoclet guys - the current xdoclet 1.1.2 version can't be made to work
at the moment.
 (see
http://sourceforge.net/mailarchive/forum.php?thread_id=570628&forum_id=1106
)


Cheers

Mark


com/cataloga/xdoclet/ejb/relationships.j
----------------------------------------

  <XDtEjbRel:ifHasRelationships>
   <relationships>
    <XDtEjbRel:forAllRelationships>
      <ejb-relation>
         <ejb-relation-name><XDtMethod:methodTagValue tagName="ejb:relation"
paramName="name"/></ejb-relation-name>
<XDtEjbRel:forAllRelationshipRoles>
  <XDtMethod:ifHasMethodTag tagName="ejb:relation" paramName="target-ejb">
         <!-- unidirectional -->
         <ejb-relationship-role>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="role-name">
            <ejb-relationship-role-name><XDtMethod:methodTagValue
tagName="ejb:relation" paramName="role-name"/></ejb-relationship-role-name>
           </XDtMethod:ifHasMethodTag>
           <XDtMethod:ifMethodTagValueEquals tagName="ejb:relation"
paramName="target-multiple" value="yes">
            <multiplicity>Many</multiplicity>
           </XDtMethod:ifMethodTagValueEquals>
           <XDtMethod:ifMethodTagValueNotEquals tagName="ejb:relation"
paramName="target-multiple" value="yes">
            <multiplicity>One</multiplicity>
           </XDtMethod:ifMethodTagValueNotEquals>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="cascade-delete">
            <cascade-delete/>
           </XDtMethod:ifHasMethodTag>
            <relationship-role-source>
               <ejb-name><XDtEjb:ejbName/></ejb-name>
            </relationship-role-source>
            <cmr-field>
               <cmr-field-name><XDtMethod:propertyName/></cmr-field-name>
               <XDtMethod:ifHasMethodTag tagName='@resin:cmr-field'
paramName='sql-name'>
               <sql-name><XDtMethod:methodTagValue
tagName='@resin:cmr-field' paramName='sql-name'/></sql-name>
               </XDtMethod:ifHasMethodTag>
              <XDtEjbRel:ifIsACollection>
               <cmr-field-type><XDtMethod:methodType/></cmr-field-type>
              </XDtEjbRel:ifIsACollection>
            </cmr-field>
         </ejb-relationship-role>
         <ejb-relationship-role>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="target-role-name">
            <ejb-relationship-role-name><XDtMethod:methodTagValue
tagName="ejb:relation"
paramName="target-role-name"/></ejb-relationship-role-name>
           </XDtMethod:ifHasMethodTag>
           <XDtEjbRel:ifIsACollection>
            <multiplicity>Many</multiplicity>
           </XDtEjbRel:ifIsACollection>
           <XDtEjbRel:ifIsNotACollection>
            <multiplicity>One</multiplicity>
           </XDtEjbRel:ifIsNotACollection>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="target-cascade-delete">
            <cascade-delete/>
           </XDtMethod:ifHasMethodTag>
            <relationship-role-source>
               <ejb-name><XDtMethod:methodTagValue tagName="ejb:relation"
paramName="target-ejb"/></ejb-name>
            </relationship-role-source>
         </ejb-relationship-role>
  </XDtMethod:ifHasMethodTag>
  <XDtMethod:ifDoesntHaveMethodTag tagName="ejb:relation"
paramName="target-ejb">
         <ejb-relationship-role>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="role-name">
            <XDtEjbRel:swapRelation/>
            <ejb-relationship-role-name><XDtMethod:methodTagValue
tagName="ejb:relation" paramName="role-name"/></ejb-relationship-role-name>
            <XDtEjbRel:unswapRelation/>
           </XDtMethod:ifHasMethodTag>
           <XDtEjbRel:ifIsACollection>
            <multiplicity>Many</multiplicity>
           </XDtEjbRel:ifIsACollection>
           <XDtEjbRel:ifIsNotACollection>
            <multiplicity>One</multiplicity>
           </XDtEjbRel:ifIsNotACollection>
           <XDtMethod:ifHasMethodTag tagName="ejb:relation"
paramName="cascade-delete">
            <cascade-delete/>
           </XDtMethod:ifHasMethodTag>
            <XDtEjbRel:swapRelation/>
            <relationship-role-source>
               <ejb-name><XDtEjb:ejbName/></ejb-name>
            </relationship-role-source>
            <cmr-field>
               <cmr-field-name><XDtMethod:propertyName/></cmr-field-name>
               <XDtMethod:ifHasMethodTag tagName='@resin:cmr-field'
paramName='sql-name'>
               <sql-name><XDtMethod:methodTagValue
tagName='@resin:cmr-field' paramName='sql-name'/></sql-name>
               </XDtMethod:ifHasMethodTag>
              <XDtEjbRel:ifIsACollection>
               <cmr-field-type><XDtMethod:methodType/></cmr-field-type>
              </XDtEjbRel:ifIsACollection>
            </cmr-field>
            <XDtEjbRel:unswapRelation/>
         </ejb-relationship-role>
  </XDtMethod:ifDoesntHaveMethodTag>
</XDtEjbRel:forAllRelationshipRoles>
      </ejb-relation>
      </XDtEjbRel:forAllRelationships>
   </relationships>
  </XDtEjbRel:ifHasRelationships>



com/cataloga/xdoclet/ejb/ejb-jar_xml.j
--------------------------------------

<?xml version="1.0" encoding="<XDtConfig:configParameterValue
paramName='Xmlencoding'/>"?>
<!DOCTYPE ejb-jar PUBLIC "<XDtXml:publicId/>" "<XDtXml:systemId/>">

<ejb-jar>

  <XDtConfig:ifConfigParamNotEquals paramName="Description" value="">
   <description><XDtConfig:configParameterValue
paramName="Description"/></description>
  </XDtConfig:ifConfigParamNotEquals>
  <XDtConfig:ifConfigParamNotEquals paramName="Displayname" value="">
   <display-name><XDtConfig:configParameterValue
paramName="Displayname"/></display-name>
  </XDtConfig:ifConfigParamNotEquals>
  <XDtConfig:ifConfigParamNotEquals paramName="Smallicon" value="">
   <small-icon><XDtConfig:configParameterValue
paramName="Smallicon"/></small-icon>
  </XDtConfig:ifConfigParamNotEquals>
  <XDtConfig:ifConfigParamNotEquals paramName="Largeicon" value="">
   <large-icon><XDtConfig:configParameterValue
paramName="Largeicon"/></large-icon>
  </XDtConfig:ifConfigParamNotEquals>

   <enterprise-beans>

      <!-- Session Beans -->
   <XDtClass:forAllClasses type="javax.ejb.SessionBean">
    <XDtEjb:ifIsAConcreteEJBean>
      <session id="<XDtEjb:id/>">
        <XDtMerge:merge file="xdoclet/ejb/ejb-body.j">
        </XDtMerge:merge>
      </session>

    </XDtEjb:ifIsAConcreteEJBean>
   </XDtClass:forAllClasses>

   <XDtMerge:merge file="session-beans.xml">
     <!--
       To add session beans that you have deployment descriptor info for,
add
       a file to your merge directory called session-beans.xml that contains
       the <session></session> markup for those beans.
     -->
   </XDtMerge:merge>

      <!-- Entity Beans -->
   <XDtClass:forAllClasses type="javax.ejb.EntityBean">
    <XDtEjb:ifIsAConcreteEJBean>
      <entity id="<XDtEjb:id/>">
        <XDtMerge:merge file="com/cataloga/xdoclet/ejb/ejb-body.j">
        </XDtMerge:merge>
      </entity>

    </XDtEjb:ifIsAConcreteEJBean>
   </XDtClass:forAllClasses>

   <XDtMerge:merge file="entity-beans.xml">
     <!--
       To add entity beans that you have deployment descriptor info for, add
       a file to your merge directory called session-beans.xml that contains
       the <entity></entity> markup for those beans.
     -->
   </XDtMerge:merge>

  <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
      <!-- Message Driven Beans -->
   <XDtClass:forAllClasses type="javax.ejb.MessageDrivenBean">
    <XDtEjb:ifIsAConcreteEJBean>
      <message-driven id="<XDtEjb:id/>">
        <XDtMerge:merge file="xdoclet/ejb/ejb-body.j">
        </XDtMerge:merge>
      </message-driven>

    </XDtEjb:ifIsAConcreteEJBean>
   </XDtClass:forAllClasses>
   <XDtMerge:merge file="message-driven-beans.xml">
     <!--
       To add message driven beans that you have deployment descriptor info
for, add
       a file to your merge directory called message-driven-beans.xml that
contains
       the <message-driven></message-driven> markup for those beans.
     -->
   </XDtMerge:merge>

  </XDtConfig:ifConfigParamGreaterOrEquals>

   </enterprise-beans>

  <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
   <!-- Relationships -->
   <XDtMerge:merge file="com/cataloga/xdoclet/ejb/relationships.j">
   </XDtMerge:merge>
  </XDtConfig:ifConfigParamGreaterOrEquals>

   <!-- Assembly Descriptor -->
   <XDtMerge:merge file="xdoclet/ejb/asm-descriptor.j">
   </XDtMerge:merge>

  <XDtConfig:ifConfigParamNotEquals paramName="Clientjar" value="false">
   <ejb-client-jar><XDtConfig:configParameterValue
paramName="Clientjar"/></ejb-client-jar>
  </XDtConfig:ifConfigParamNotEquals>

</ejb-jar>





com/cataloga/xdoclet/ejb/ejb-body.j
-----------------------------------


 
<description><![CDATA[<XDtClass:firstSentenceDescription/>]]></description>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="display-name">
         <display-name><XDtClass:classTagValue tagName="ejb:bean"
paramName="display-name"/></display-name>
        </XDtClass:ifHasClassTag>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="small-icon">
         <small-icon><XDtClass:classTagValue tagName="ejb:bean"
paramName="small-icon"/></small-icon>
        </XDtClass:ifHasClassTag>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="large-icon">
         <large-icon><XDtClass:classTagValue tagName="ejb:bean"
paramName="large-icon"/></large-icon>
        </XDtClass:ifHasClassTag>

         <ejb-name><XDtEjb:ejbName/></ejb-name>

  <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
    <XDtType:ifIsOfType type="javax.ejb.EntityBean">
      <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="view-type">
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="local">
         <local-home><XDtEjbHome:homeInterface type="local"/></local-home>
         <local><XDtEjbIntf:componentInterface type="local"/></local>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="both">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
         <local-home><XDtEjbHome:homeInterface type="local"/></local-home>
         <local><XDtEjbIntf:componentInterface type="local"/></local>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="remote">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
       </XDtClass:ifClassTagValueEquals>
      </XDtClass:ifHasClassTag>
      <XDtClass:ifDoesntHaveClassTag tagName="ejb:bean"
paramName="view-type">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
      </XDtClass:ifDoesntHaveClassTag>
    </XDtType:ifIsOfType>

    <XDtType:ifIsOfType type="javax.ejb.SessionBean">
      <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="view-type">
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="local">
         <local-home><XDtEjbHome:homeInterface type="local"/></local-home>
         <local><XDtEjbIntf:componentInterface type="local"/></local>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="both">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
         <local-home><XDtEjbHome:homeInterface type="local"/></local-home>
         <local><XDtEjbIntf:componentInterface type="local"/></local>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:bean"
paramName="view-type" value="remote">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
       </XDtClass:ifClassTagValueEquals>
      </XDtClass:ifHasClassTag>
      <XDtClass:ifDoesntHaveClassTag tagName="ejb:bean"
paramName="view-type">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
      </XDtClass:ifDoesntHaveClassTag>
    </XDtType:ifIsOfType>
  </XDtConfig:ifConfigParamGreaterOrEquals>
  <XDtConfig:ifConfigParamNotGreaterOrEquals paramName="EjbSpec"
value="2.0">
         <home><XDtEjbHome:homeInterface type="remote"/></home>
         <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
  </XDtConfig:ifConfigParamNotGreaterOrEquals>
         <ejb-class><XDtEjb:concreteFullClassName/></ejb-class>
     <XDtType:ifIsOfType type="javax.ejb.SessionBean">
         <session-type><XDtClass:classTagValue tagName="ejb:bean"
paramName="type" values="Stateful,Stateless"
default="Stateless"/></session-type>
         <transaction-type><XDtClass:classTagValue tagName="ejb:bean"
paramName="transaction-type" values="Container,Bean"
default="Container"/></transaction-type>
     </XDtType:ifIsOfType>
     <XDtType:ifIsOfType type="javax.ejb.EntityBean">
       <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="type">
        <XDtEjbCmp:ifEntityIsCmp>
         <persistence-type>Container</persistence-type>
        </XDtEjbCmp:ifEntityIsCmp>
        <XDtEjbBmp:ifEntityIsBmp>
         <persistence-type>Bean</persistence-type>
        </XDtEjbBmp:ifEntityIsBmp>
       </XDtClass:ifHasClassTag>
       <XDtClass:ifDoesntHaveClassTag tagName="ejb:bean" paramName="type">
         <persistence-type>Container</persistence-type>
       </XDtClass:ifDoesntHaveClassTag>
         <prim-key-class><XDtEjbPk:pkClass/></prim-key-class>
         <reentrant><XDtEjbEntity:reentrant/></reentrant>
      <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec"
value="2.0">
       <XDtEjbCmp:ifEntityIsCmp>
         <cmp-version><XDtClass:classTagValue tagName="ejb:bean"
paramName="cmp-version" values="1.x,2.x" default="2.x" /></cmp-version>
         <abstract-schema-name><XDtClass:classTagValue tagName="ejb:bean"
paramName="schema" default="<XDtEjb:ejbName/>"/></abstract-schema-name>
         <XDtClass:ifHasClassTag tagName='@resin:cmp'
paramName='sql-table-name'>
         <sql-table-name><XDtClass:classTagValue tagName='@resin:cmp'
paramName='sql-table-name'/></sql-table-name>
         </XDtClass:ifHasClassTag>
         <XDtClass:ifHasClassTag tagName='@resin:cmp'
paramName='lock-factory'>
         <lock-factory><class-name><XDtClass:classTagValue
tagName='@resin:cmp' paramName='lock-factory'/></class-name></lock-factory>
         </XDtClass:ifHasClassTag>
        <XDtEjbBmp:ifUseSoftLocking>
         <cmp-field>
            <description>Version number for soft locking</description>
            <field-name>version</field-name>
         </cmp-field>
        </XDtEjbBmp:ifUseSoftLocking>
       </XDtEjbCmp:ifEntityIsCmp>
      </XDtConfig:ifConfigParamGreaterOrEquals>
        <XDtEjbCmp:forAllCmpFields>
         <cmp-field>
 
<description><![CDATA[<XDtMethod:firstSentenceDescriptionOfCurrentMethod/>]]
></description>
            <field-name><XDtMethod:propertyName/></field-name>
            <XDtMethod:ifHasMethodTag tagName='@resin:cmp-field'
paramName='sql-name'>
            <sql-name><XDtMethod:methodTagValue tagName='@resin:cmp-field'
paramName='sql-name'/></sql-name>
            </XDtMethod:ifHasMethodTag>
         </cmp-field>
        </XDtEjbCmp:forAllCmpFields>
        <XDtClass:ifHasClassTag tagName="ejb:bean"
paramName="primkey-field">
         <primkey-field><XDtClass:classTagValue tagName="ejb:bean"
paramName="primkey-field"/></primkey-field>
        </XDtClass:ifHasClassTag>
     </XDtType:ifIsOfType>

     <XDtType:ifIsOfType type="javax.ejb.MessageDrivenBean">
       <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec"
value="2.0">
        <XDtClass:ifHasClassTag tagName="ejb:bean"
paramName="message-selector">
         <message-selector><XDtClass:classTagValue tagName="ejb:bean"
paramName="message-selector"/></message-selector>
        </XDtClass:ifHasClassTag>
         <transaction-type><XDtClass:classTagValue tagName="ejb:bean"
paramName="transaction-type" values="Container,Bean"
default="Container"/></transaction-type>
         <acknowledge-mode><XDtClass:ifHasClassTag tagName="ejb:bean"
paramName="acknowledge-mode"><XDtClass:classTagValue tagName="ejb:bean"
paramName="acknowledge-mode" values="Auto-acknowledge,Dups-ok-acknowledge"
default="Auto-acknowledge"/></XDtClass:ifHasClassTag></acknowledge-mode>
        <XDtClass:ifHasClassTag tagName="ejb:bean"
paramName="destination-type">
         <message-driven-destination>
            <destination-type><XDtClass:classTagValue tagName="ejb:bean"
paramName="destination-type"
values="javax.jms.Queue,javax.jms.Topic"/></destination-type>
           <XDtClass:ifHasClassTag tagName="ejb:bean"
paramName="subscription-durability">
            <subscription-durability><XDtClass:classTagValue
tagName="ejb:bean" paramName="subscription-durability"
values="Durable,NonDurable"/></subscription-durability>
           </XDtClass:ifHasClassTag>
         </message-driven-destination>
        </XDtClass:ifHasClassTag>
       </XDtConfig:ifConfigParamGreaterOrEquals>
     </XDtType:ifIsOfType>

       <XDtMerge:merge file="ejb-env-entries-{0}.xml">
        <XDtClass:forAllClassTags tagName="ejb:env-entry">
         <env-entry>
            <env-entry-name><XDtClass:classTagValue tagName="ejb:env-entry"
paramName="name"/></env-entry-name>
           <XDtClass:ifHasClassTag tagName="ejb:env-entry" paramName="type">
            <env-entry-type><XDtClass:classTagValue tagName="ejb:env-entry"
paramName="type"
values="java.lang.Boolean,java.lang.String,java.lang.Integer,java.lang.Doubl
e,java.lang.Byte,java.lang.Short,java.lang.Long,and
java.lang.Float"/></env-entry-type>
           </XDtClass:ifHasClassTag>
           <XDtClass:ifDoesntHaveClassTag tagName="ejb:env-entry"
paramName="type">
            <env-entry-type>java.lang.String</env-entry-type>
           </XDtClass:ifDoesntHaveClassTag>
            <env-entry-value><XDtClass:classTagValue tagName="ejb:env-entry"
paramName="value"/></env-entry-value>
         </env-entry>
        </XDtClass:forAllClassTags>
       </XDtMerge:merge>

  <XDtMerge:merge file="ejb-ejbrefs-{0}.xml">
    <XDtEjbRef:forAllEjbRefs>
      <XDtClass:ifDoesntHaveClassTag tagName="ejb:ejb-ref"
paramName="view-type">
         <ejb-ref>
            <ejb-ref-name><XDtEjb:ejbRefName/></ejb-ref-name>
            <ejb-ref-type><XDtEjb:beanType/></ejb-ref-type>
            <home><XDtEjbHome:homeInterface type="remote"/></home>
            <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
            <ejb-link><XDtClass:classTagValue tagName="ejb:ejb-ref"
paramName="ejb-name"/></ejb-link>
         </ejb-ref>
      </XDtClass:ifDoesntHaveClassTag>
    </XDtEjbRef:forAllEjbRefs>

    <XDtClass:forAllClassTags tagName="ejb:ejb-external-ref">
      <XDtClass:ifDoesntHaveClassTag tagName="ejb:ejb-external-ref"
paramName="view-type">
         <ejb-ref>
            <ejb-ref-name><XDtEjb:ejbExternalRefName/></ejb-ref-name>
            <ejb-ref-type><XDtClass:classTagValue
tagName="ejb:ejb-external-ref" paramName="type"
values="Entity,Session"/></ejb-ref-type>
            <home><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="home"/></home>
            <remote><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="remote"/></remote>
         </ejb-ref>
      </XDtClass:ifDoesntHaveClassTag>
      <XDtClass:ifHasClassTag tagName="ejb:ejb-ref" paramName="view-type">
       <XDtClass:ifClassTagValueEquals tagName="ejb:ejb-ref"
paramName="view-type" value="remote">
         <ejb-ref>
            <ejb-ref-name><XDtEjb:ejbRefName/></ejb-ref-name>
            <ejb-ref-type><XDtEjb:beanType/></ejb-ref-type>
            <home><XDtEjbHome:homeInterface type="remote"/></home>
            <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
            <ejb-link><XDtClass:classTagValue tagName="ejb:ejb-ref"
paramName="ejb-name"/></ejb-link>
         </ejb-ref>
       </XDtClass:ifClassTagValueEquals>
      </XDtClass:ifHasClassTag>
      <XDtClass:ifHasClassTag tagName="ejb:ejb-external-ref"
paramName="view-type">
       <XDtClass:ifClassTagValueEquals tagName="ejb:ejb-external-ref"
paramName="view-type" value="remote">
         <ejb-ref>
            <ejb-ref-name><XDtEjb:ejbExternalRefName/></ejb-ref-name>
            <ejb-ref-type><XDtClass:classTagValue
tagName="ejb:ejb-external-ref" paramName="type"
values="Entity,Session"/></ejb-ref-type>
            <home><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="home"/></home>
            <remote><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="remote"/></remote>
         </ejb-ref>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:ejb-external-ref"
paramName="view-type" value="local">
         <ejb-local-ref>
            <ejb-ref-name><XDtEjb:ejbExternalRefName/></ejb-ref-name>
            <ejb-ref-type><XDtClass:classTagValue
tagName="ejb:ejb-external-ref" paramName="type"
values="Entity,Session"/></ejb-ref-type>
            <local-home><XDtClass:classTagValue
tagName="ejb:ejb-external-ref" paramName="home"/></local-home>
            <local><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="remote"/></local>
           <XDtClass:ifHasClassTag tagName="ejb:ejb-external-ref"
paramName="link">
            <ejb-link><XDtClass:classTagValue tagName="ejb:ejb-external-ref"
paramName="link"/></ejb-link>
           </XDtClass:ifHasClassTag>
         </ejb-local-ref>
       </XDtClass:ifClassTagValueEquals>
      </XDtClass:ifHasClassTag>
    </XDtClass:forAllClassTags>

    <XDtEjbRef:forAllEjbRefs>
      <XDtClass:ifHasClassTag tagName="ejb:ejb-ref" paramName="view-type">
       <XDtClass:ifClassTagValueEquals tagName="ejb:ejb-ref"
paramName="view-type" value="local">
         <ejb-local-ref>
            <ejb-ref-name><XDtEjb:ejbRefName/></ejb-ref-name>
            <ejb-ref-type><XDtEjb:beanType/></ejb-ref-type>
            <local-home><XDtEjbHome:homeInterface
type="local"/></local-home>
            <local><XDtEjbIntf:componentInterface type="local"/></local>
            <ejb-link><XDtClass:classTagValue tagName="ejb:ejb-ref"
paramName="ejb-name"/></ejb-link>
         </ejb-local-ref>
       </XDtClass:ifClassTagValueEquals>
       <XDtClass:ifClassTagValueEquals tagName="ejb:ejb-ref"
paramName="view-type" value="remote">
         <ejb-ref>
            <ejb-ref-name><XDtEjb:ejbRefName/></ejb-ref-name>
            <ejb-ref-type><XDtEjb:beanType/></ejb-ref-type>
            <home><XDtEjbHome:homeInterface type="remote"/></home>
            <remote><XDtEjbIntf:componentInterface type="remote"/></remote>
            <ejb-link><XDtClass:classTagValue tagName="ejb:ejb-ref"
paramName="ejb-name"/></ejb-link>
         </ejb-ref>
       </XDtClass:ifClassTagValueEquals>
      </XDtClass:ifHasClassTag>
    </XDtEjbRef:forAllEjbRefs>
  </XDtMerge:merge>

       <XDtMerge:merge file="ejb-sec-rolerefs-{0}.xml">
        <XDtClass:forAllClassTags tagName="ejb:security-role-ref">
         <security-role-ref>
            <role-name><XDtClass:classTagValue
tagName="ejb:security-role-ref" paramName="role-name"/></role-name>
            <role-link><XDtClass:classTagValue
tagName="ejb:security-role-ref" paramName="role-link"/></role-link>
         </security-role-ref>
        </XDtClass:forAllClassTags>
       </XDtMerge:merge>

       <XDtClass:forAllClassTags tagName="ejb:security-identity">
         <security-identity>
           <XDtClass:ifHasClassTag tagName="ejb:security-identity"
paramName="description">
            <description><XDtClass:classTagValue
tagName="ejb:security-identity" paramName="description"/></description>
           </XDtClass:ifHasClassTag>
           <XDtClass:ifHasClassTag tagName="ejb:security-identity"
paramName="use-caller-identity">
            <use-caller-identity><XDtClass:classTagValue
tagName="ejb:security-identity"
paramName="use-caller-identity"/></use-caller-identity>
           </XDtClass:ifHasClassTag>
           <XDtClass:ifHasClassTag tagName="ejb:security-identity"
paramName="run-as">
            <run-as>
               <role-name><XDtClass:classTagValue
tagName="ejb:security-identity" paramName="run-as"/></role-name>
              <XDtClass:ifHasClassTag tagName="ejb:security-identity"
paramName="description">
               <description><XDtClass:classTagValue
tagName="ejb:security-identity" paramName="description"/></description>
              </XDtClass:ifHasClassTag>
            </run-as>
           </XDtClass:ifHasClassTag>
         </security-identity>
        </XDtClass:forAllClassTags>

       <XDtMerge:merge file="ejb-resourcerefs-{0}.xml">
        <XDtClass:forAllClassTags tagName="ejb:resource-ref">
         <resource-ref>
            <res-ref-name><XDtClass:classTagValue tagName="ejb:resource-ref"
paramName="res-name"/></res-ref-name>
            <res-type><XDtClass:classTagValue tagName="ejb:resource-ref"
paramName="res-type"/></res-type>
            <res-auth><XDtClass:classTagValue tagName="ejb:resource-ref"
paramName="res-auth"/></res-auth>
         </resource-ref>
        </XDtClass:forAllClassTags>
       </XDtMerge:merge>

       <XDtMerge:merge file="ejb-resource-env-refs-{0}.xml">
        <XDtClass:forAllClassTags tagName="ejb:resource-env-ref">
         <resource-env-ref>
           <XDtClass:ifHasClassTag tagName="ejb:resource-env-ref"
paramName="description">
            <description><XDtClass:classTagValue
tagName="ejb:resource-env-ref" paramName="description"/></description>
           </XDtClass:ifHasClassTag>
            <resource-env-ref-name><XDtClass:classTagValue
tagName="ejb:resource-env-ref" paramName="name"/></resource-env-ref-name>
            <resource-env-ref-type><XDtClass:classTagValue
tagName="ejb:resource-env-ref" paramName="type"/></resource-env-ref-type>
         </resource-env-ref>
        </XDtClass:forAllClassTags>
       </XDtMerge:merge>

  <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
   <XDtType:ifIsOfType type="javax.ejb.EntityBean">
     <XDtEjbCmp:ifEntityIsCmp>
      <XDtClass:forAllClassTags tagName="ejb:finder">
       <XDtClass:ifHasClassTag tagName="ejb:finder" paramName="query">
         <query>
            <query-method>
               <method-name><XDtClass:classTagValue tagName="ejb:finder"
paramName="signature" delimiter=" (" tokenNumber="1"/></method-name>
               <method-params>
                 <XDtParameter:forAllParameterTypes paramName="signature">
                  <method-param><XDtParameter:currentToken/></method-param>
                 </XDtParameter:forAllParameterTypes>
               </method-params>
            </query-method>
           <XDtClass:ifHasClassTag tagName="ejb:finder" paramName
="result-type-mapping">
            <result-type-mapping><XDtClass:classTagValue tagName
="ejb:finder" paramName="result-type-mapping" values
="Local,Remote"/></result-type-mapping>
           </XDtClass:ifHasClassTag>
            <ejb-ql><XDtClass:classTagValue tagName="ejb:finder"
paramName="query"/></ejb-ql>
         </query>
       </XDtClass:ifHasClassTag>
      </XDtClass:forAllClassTags>
      <XDtClass:forAllClassTags tagName="ejb:select">
       <XDtClass:ifHasClassTag tagName="ejb:select" paramName="query">
         <query>
            <query-method>
               <method-name><XDtClass:classTagValue tagName="ejb:select"
paramName="signature" delimiter=" (" tokenNumber="1"/></method-name>
               <method-params>
                 <XDtParameter:forAllParameterTypes paramName="signature">
                  <method-param><XDtParameter:currentToken/></method-param>
                 </XDtParameter:forAllParameterTypes>
               </method-params>
            </query-method>
           <XDtClass:ifHasClassTag tagName="ejb:select" paramName
="result-type-mapping">
            <result-type-mapping><XDtClass:classTagValue tagName
="ejb:select" paramName="result-type-mapping" values
="Local,Remote"/></result-type-mapping>
           </XDtClass:ifHasClassTag>
            <ejb-ql><XDtClass:classTagValue tagName="ejb:select"
paramName="query"/></ejb-ql>
         </query>
       </XDtClass:ifHasClassTag>
      </XDtClass:forAllClassTags>
     </XDtEjbCmp:ifEntityIsCmp>
   </XDtType:ifIsOfType>
  </XDtConfig:ifConfigParamGreaterOrEquals>



_______________________________________________________
DATA SECURITY - PLEASE READ
This communication may contain information which is CATALOGA confidential
and may also be privileged. It is for exclusive use of the intended
recipient(s). If you are not the intended recipient(s) please note that any
form of distribution, copying or use of this communication or information in
it, is strictly prohibited and may be unlawful. 

If you have received this communication in error please forward it to
[EMAIL PROTECTED], then delete the email and destroy any copies of
it.

Thank you for your cooperation.
_______________________________________________________

_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel

Reply via email to