Hi Higjam (what a cool name :)

Try to replace asm-descriptor.j with the attached one. I have been away from 
CVS access a long time (will still be for a couple of days).

This will only fix the problems related to finders, though.
I think you'll still experience the same problems with your ejb-jar.xml's 
<container-transaction> elements, as the nested <method-intf> elements will 
incorrectly be set to Remote. This is because InterfaceTagsHandler.java is 
not local-aware. I haven't looked at it closely enough to come up with a 
good solution. If you omit @ejb:transaction in your local methods you 
shouldn't experience problems, but maybe txn is required by your app?

I think I'll need some help on this from some other xdocletters.

Please tell me if it works for finders at least.

I see you're using Middlegen. Cool. I haven't touched it in a while, but 
hopefully I'll be more active on enhancing it when we start the GUI 
initiative Ara's been talking about. It's a bit boring to do stuff all 
alone. Currently most of my open source work is devoted to xjavadoc, an 
extended javadoc engine. (See devel list for more info).

>From: "James Higginbotham" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Subject: Re: [Xdoclet-user] Permission problem in Local CMP descriptor
>Date: Wed, 12 Dec 2001 17:35:56 -0600
>
>Just wanted to see if you were having any luck fixing this bug? I was 
>hoping
>to start generating local CMPs soon for doing CMR.
>
>Thanks for your help!
>James
>----- Original Message -----
>From: "James Higginbotham" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
>Sent: Sunday, December 09, 2001 1:33 PM
>Subject: Re: [Xdoclet-user] Permission problem in Local CMP descriptor
>
>
> > I'm finally getting around to testing this.. I am getting an error 
>during
> > generation:
> >
> > <snip>
> > [ejbdoclet] Running <entitycmp/>
> > [ejbdoclet]   Generating CMP class for
> > 'org.dotw.usermanager.useraccount.UserAddressBean'.
> > [ejbdoclet]   Generating CMP class for
> > 'org.dotw.usermanager.useraccount.UserAccountBean'.
> > [ejbdoclet]   Generating CMP class for
> > 'org.dotw.usermanager.useraccount.UserPhoneBean'.
> > [ejbdoclet] Running <deploymentdescriptor/>
> > [ejbdoclet]   Generating EJB deployment descriptor.
> > [ejbdoclet] Running XDoclet failed:
> > [ejbdoclet] Running XDoclet failed.
> > [ejbdoclet] 1 error
> > [ejbdoclet] [ejbdoclet] javadoc: In doclet class
> > xdoclet.DocletTask$DocletMain,  method start has thrown an exception j
> > va.lang.reflect.InvocationTargetException
> > 9 warnings
> >
> > Attached is the source file that I added your new parameter to so you 
>can
> > have a test case to work with.. I am using the latest code from CVS,
>updated
> > about 1:30pm Sun CST.
> >
> > Thanks!
> > James
> >
> > ----- Original Message -----
> > From: <[EMAIL PROTECTED]>
> > To: "James Higginbotham" <[EMAIL PROTECTED]>;
> > <[EMAIL PROTECTED]>
> > Sent: Friday, November 30, 2001 4:15 AM
> > Subject: RE: [Xdoclet-user] Permission problem in Local CMP descriptor
> >
> >
> > > I have updated the @ejb:pk and @ejb:finder to include a new parameter:
> > > method-intf parameter. Please tell me if this can help you get around
>your
> > > problem, as I haven't found time to test this myself (sorry).
> > >
> > > Regards,
> > > Aslak
> > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED]
> > > > [mailto:[EMAIL PROTECTED]]On Behalf Of James
> > > > Higginbotham
> > > > Sent: 26. november 2001 00:03
> > > > To: [EMAIL PROTECTED]
> > > > Subject: [Xdoclet-user] Permission problem in Local CMP descriptor
> > > >
> > > >
> > > > I fetched the latest XDoclet code 2 days ago from CVS and have
> > > > the following
> > > > problem. I didn't see anything on the bug tracker that resembled 
>this
> > > > problem, so I wanted to first post here for a confirmation of the 
>bug.
> > It
> > > > seems that if the bean descriptor is set to local interface only,
> > > > the DD is
> > > > generated as if it were for the remote home rather than the local
> > > > home. If I
> > > > switch the type to remote, it works so there is a workaround -
>however,
> > I
> > > > want to generate a Local CMP bean, so the sooner the fix the better.
> > > >
> > > >
> > > > Attached is the source file used by XDoclet to generate the bean.
> > Nothing
> > > > special, it was generated from middlegen. Here is the stacktrace 
>from
> > > > WebLogic:
> > > >
> > > > Unable to deploy EJB: UserAccount.jar from UserAccount.jar:
> > > >
> > > >
> > > >         Unable to set the method permission for method "findAll()".
>No
> > > > matching
> > > >  method could be found.  Please verify the method signature
> > > > specified in the
> > > > ejb
> > > > -jar.xml file matches that of your EJB.
> > > >         at
> > weblogic.ejb20.ejbc.EJBCompiler.setupEJB(EJBCompiler.java:130)
> > > >         at 
>weblogic.ejb20.deployer.Deployer.runEJBC(Deployer.java:295)
> > > >         at
> > weblogic.ejb20.deployer.Deployer.compileEJB(Deployer.java:676)
> > > >         at 
>weblogic.ejb20.deployer.Deployer.deploy(Deployer.java:843)
> > > >         at weblogic.j2ee.EJBComponent.deploy(EJBComponent.java:30)
> > > >         at
>weblogic.j2ee.Application.addComponent(Application.java:160)
> > > >         at
>weblogic.j2ee.J2EEService.addDeployment(J2EEService.java:117)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
> > > > oymentTarget.java:329)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
> > > > oymentTarget.java:144)
> > > >         at java.lang.reflect.Method.invoke(Native Method)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
> > > > eanImpl.java:608)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
> > > > .java:592)
> > > >         at
> > > > 
>weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
> > > > ionMBeanImpl.java:352)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 55)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 23)
> > > >         at
> > > > 
>weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
> > > > s(ConfigurationMBeanImpl.java:484)
> > > >         at
> > > > 
>weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
> > > > ionMBeanImpl.java:354)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 55)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 23)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.addDeployment(DynamicMB
> > > > eanImpl.java:945)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.addDeployment(DynamicMB
> > > > eanImpl.java:932)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.add(DynamicMBeanImpl.ja
> > > > va:917)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
> > > > eanImpl.java:620)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
> > > > .java:592)
> > > >         at
> > > > 
>weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
> > > > ionMBeanImpl.java:352)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 55)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 23)
> > > >         at
> > > > weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
> > > >         at
> > > > weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
> > > >         at $Proxy11.addTarget(Unknown Source)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.autoDeploy(Appli
> > > > cationManager.java:837)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.addApplication(A
> > > > pplicationManager.java:936)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.addApplication(A
> > > > pplicationManager.java:856)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.poll(Application
> > > > Manager.java:772)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.poll(Application
> > > > Manager.java:705)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.update(Applicati
> > > > onManager.java:200)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.startAdminManage
> > > > r(ApplicationManager.java:272)
> > > >         at
> > > > 
>weblogic.management.mbeans.custom.ApplicationManager.start(Applicatio
> > > > nManager.java:146)
> > > >         at java.lang.reflect.Method.invoke(Native Method)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
> > > > eanImpl.java:608)
> > > >         at
> > > > 
>weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
> > > > .java:592)
> > > >         at
> > > > 
>weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
> > > > ionMBeanImpl.java:352)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 55)
> > > >         at
> > > > 
>com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
> > > > 23)
> > > >         at
> > > > weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
> > > >         at
> > > > weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
> > > >         at $Proxy5.start(Unknown Source)
> > > >         at
> > > > weblogic.management.Admin.startApplicationManager(Admin.java:1155)
> > > >         at weblogic.management.Admin.finish(Admin.java:570)
> > > >         at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:506)
> > > >         at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:203)
> > > >         at weblogic.Server.main(Server.java:35)
> > > >
> > > >
> > > > >
> > > > <Nov 25, 2001 12:52:25 PM CST> <Error> <Management> <Error deploying
> > > > application
> > > >  .\config\mydomain\applications\UserAccount_app.ear:
> > > > java.lang.reflect.Undeclare
> > > > dThrowableException>
> > > > <Nov 25, 2001 12:52:25 PM CST> <Notice> <Management> <Application
>Poller
> > > > started
> > > >  for development server.>
> > > > <Nov 25, 2001 12:52:25 PM CST> <Notice> <WebLogicServer> 
><ListenThread
> > > > listening
> > > >  on port 7001>
> > > > <Nov 25, 2001 12:52:25 PM CST> <Notice> <WebLogicServer>
> > <SSLListenThread
> > > > listen
> > > > ing on port 7002>
> > > > <Nov 25, 2001 12:52:26 PM CST> <Notice> <WebLogicServer> <Started
> > WebLogic
> > > > Admin
> > > >  Server "myserver" for domain "mydomain" running in Development 
>Mode>
> > > >
> > > >
> > > > Here is the offending generated DD section:
> > > >
> > > >  <!-- finder perms -->
> > > >
> > > >      <method-permission>
> > > >        <description>description not supported yet by
> > > > ejbdoclet</description>
> > > >        <unchecked/>
> > > >        <method>
> > > >           <ejb-name>UserAccount</ejb-name>
> > > >        <method-intf>Home</method-intf>
> > > >        <method-name>findAll</method-name>
> > > >             <method-params>
> > > >             </method-params>
> > > >    </method>
> > > >    </method-permission>
> > > >
> > > >
> > >
> > >
> > > _______________________________________________
> > > Xdoclet-user mailing list
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/xdoclet-user
> >
>


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.
   <assembly-descriptor>
    <XDtMerge:merge file="ejb-security-roles.xml">
     <XDtEjbSec:forAllSecurityRoles>
      <security-role>
         <description>description not supported yet by 
ejbdoclet</description>
         <role-name><XDtEjbSec:securityRoleName/></role-name>
      </security-role>
     </XDtEjbSec:forAllSecurityRoles>
    </XDtMerge:merge>

<XDtEjb:forAllBeans>
<XDtEjb:ifIsAConcreteEJBean>
  <XDtClass:ifHasClassTag tagName="ejb:permission" paramName="role-name" 
paramNumber="0">
      <method-permission>
         <description>description not supported yet by 
ejbdoclet</description>
      <XDtClass:forAllClassTags tagName="ejb:permission">
       <XDtClass:ifHasClassTag tagName="ejb:permission" 
paramName="role-name" paramNumber="0">
        <XDtClass:forAllClassTagTokens tagName="ejb:permission" 
paramName="role-name" delimiter=",">
         <role-name><XDtClass:currentToken/></role-name>
        </XDtClass:forAllClassTagTokens>
       </XDtClass:ifHasClassTag>
       <XDtClass:ifDoesntHaveClassTag tagName="ejb:permission" 
paramName="role-name" paramNumber="0">
        <XDtConfig:ifConfigParamNotGreaterOrEquals paramName="EjbSpec" 
value="2.0">
        <XDtClass:ifHasClassTag tagName="ejb:permission" 
paramName="unchecked" paramNumber="0">
         <unchecked/>
        </XDtConfig:ifConfigParamNotGreaterOrEquals>
        </XDtClass:ifHasClassTag>
       </XDtClass:ifDoesntHaveClassTag>
      </XDtClass:forAllClassTags>
         <method>
            <description>description not supported yet by 
ejbdoclet</description>
           <XDtType:ifIsOfType type="javax.ejb.SessionBean">
            <ejb-name><XDtEjb:ejbName/></ejb-name>
           </XDtType:ifIsOfType>
           <XDtType:ifIsOfType type="javax.ejb.EntityBean">
            <ejb-name><XDtEjb:ejbName/></ejb-name>
           </XDtType:ifIsOfType>
            <method-name>*</method-name>
         </method>
      </method-permission>
  </XDtClass:ifHasClassTag>

  <XDtMethod:forAllMethods>
   <XDtMethod:ifHasMethodTag tagName="ejb:permission" paramNumber="0">
    <XDtEjbIntf:ifIsInterfaceMethod>
   <method-permission>
      <description>description not supported yet by ejbdoclet</description>
   <XDtMethod:forAllMethodTags tagName="ejb:permission">
    <XDtMethod:ifHasMethodTag tagName="ejb:permission" paramName="role-name" 
paramNumber="0">
      <role-name><XDtMethod:methodTagValue tagName="ejb:permission" 
paramName="role-name" paramNumber="0"/></role-name>
    </XDtMethod:ifHasMethodTag>
    <XDtMethod:ifDoesntHaveMethodTag tagName="ejb:permission" 
paramName="role-name" paramNumber="0">
    <XDtConfig:ifConfigParamNotGreaterOrEquals paramName="EjbSpec" 
value="2.0">
     <XDtMethod:ifHasMethodTag tagName="ejb:permission" 
paramName="unchecked" paramNumber="0">
      <unchecked/>
     </XDtMethod:ifHasMethodTag>
    </XDtConfig:ifConfigParamNotGreaterOrEquals>
    </XDtMethod:ifDoesntHaveMethodTag>
   </XDtMethod:forAllMethodTags>
      <method>
         
<description><![CDATA[<XDtMethod:firstSentenceDescriptionOfCurrentMethod/>]]></description>
        <XDtType:ifIsOfType type="javax.ejb.SessionBean">
         <ejb-name><XDtEjb:ejbName/></ejb-name>
        </XDtType:ifIsOfType>
        <XDtType:ifIsOfType type="javax.ejb.EntityBean">
         <ejb-name><XDtEjb:ejbName/></ejb-name>
        </XDtType:ifIsOfType>
        <XDtEjbHome:ifNotRemoveMethod>
         <method-intf><XDtEjbIntf:methodIntf/></method-intf>
        </XDtEjbHome:ifNotRemoveMethod>
         <method-name><XDtEjbIntf:interfaceMethodName/></method-name>
         <method-params>
           <XDtParameter:forAllMethodParams>
            <method-param><XDtParameter:methodParamType/></method-param>
           </XDtParameter:forAllMethodParams>
         </method-params>
      </method>
   </method-permission>

    </XDtEjbIntf:ifIsInterfaceMethod>
   </XDtMethod:ifHasMethodTag>
  </XDtMethod:forAllMethods>

<!-- finder perms -->
  <XDtClass:forAllClassTags tagName="ejb:finder">
    <XDtClass:ifHasClassTag tagName="ejb:finder" paramName="role-name">
   <method-permission>
       <description>description not supported yet by ejbdoclet</description>
       <XDtClass:forAllClassTagTokens tagName="ejb:finder" 
paramName="role-name" delimiter=",">
       <role-name><XDtClass:currentToken/></role-name>
       </XDtClass:forAllClassTagTokens>
        <method>
          <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="name">
          <ejb-name><XDtEjb:ejbName/></ejb-name>
          </XDtClass:ifHasClassTag>
      <XDtClass:ifHasClassTag tagName="ejb:finder" paramName="method-intf">
       <method-intf><XDtClass:classTagValue tagName="ejb:finder" 
paramName="method-intf" values="Home,LocalHome"/></method-intf>
      </XDtClass:ifHasClassTag>
       <method-name><XDtClass:classTagValue tagName="ejb:finder" 
paramName="signature" tokenNumber="1"  delimiter=" ("/></method-name>
            <method-params>
       <XDtClass:forAllClassTagTokens tagName="ejb:finder" 
paramName="signature" delimiter="( ,)" skip="2">
         
<method-param><XDtClass:currentToken/></method-param><XDtClass:skipToken/>
       </XDtClass:forAllClassTagTokens>
            </method-params>
   </method>
   </method-permission>
   </XDtClass:ifHasClassTag>

    <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
     <XDtClass:ifHasClassTag tagName="ejb:finder" paramName="unchecked">
     <method-permission>
       <description>description not supported yet by ejbdoclet</description>
       <unchecked/>
       <method>
          <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="name">
          <ejb-name><XDtEjb:ejbName/></ejb-name>
          </XDtClass:ifHasClassTag>
      <XDtClass:ifHasClassTag tagName="ejb:finder" paramName="method-intf">
       <method-intf><XDtClass:classTagValue tagName="ejb:finder" 
paramName="method-intf" values="Home,LocalHome"/></method-intf>
      </XDtClass:ifHasClassTag>
       <method-name><XDtClass:classTagValue tagName="ejb:finder" 
paramName="signature" tokenNumber="1"  delimiter=" ("/></method-name>
            <method-params>
       <XDtClass:forAllClassTagTokens tagName="ejb:finder" 
paramName="signature" delimiter="( ,)" skip="2">
         
<method-param><XDtClass:currentToken/></method-param><XDtClass:skipToken/>
       </XDtClass:forAllClassTagTokens>
            </method-params>
   </method>
   </method-permission>
   </XDtClass:ifHasClassTag>
   </XDtConfig:ifConfigParamGreaterOrEquals>

  </XDtClass:forAllClassTags>




  <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="role-name">
   <!-- pk finder permission -->
   <method-permission>
      <description>permission for findByPK method</description>
     <XDtClass:forAllClassTagTokens tagName="ejb:pk" paramName="role-name" 
delimiter=",">
      <role-name><XDtClass:currentToken/></role-name>
     </XDtClass:forAllClassTagTokens>
      <method>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="name">
         <ejb-name><XDtEjb:ejbName/></ejb-name>
        </XDtClass:ifHasClassTag>
        <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="method-intf">
         <method-intf><XDtClass:classTagValue tagName="ejb:pk" 
paramName="method-intf" values="Home,LocalHome"/></method-intf>
        </XDtClass:ifHasClassTag>
         <method-name>findByPrimaryKey</method-name>
      </method>
   </method-permission>
  </XDtClass:ifHasClassTag>


  <XDtConfig:ifConfigParamGreaterOrEquals paramName="EjbSpec" value="2.0">
  <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="unchecked">
   <!-- pk finder permission -->
   <method-permission>
      <description>permission for findByPK method</description>
      <unchecked/>
      <method>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="name">
         <ejb-name><XDtEjb:ejbName/></ejb-name>
        </XDtClass:ifHasClassTag>
        <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="method-intf">
         <method-intf><XDtClass:classTagValue tagName="ejb:pk" 
paramName="method-intf" values="Home,LocalHome"/></method-intf>
        </XDtClass:ifHasClassTag>
         <method-name>findByPrimaryKey</method-name>
      </method>
   </method-permission>
  </XDtClass:ifHasClassTag>
  </XDtConfig:ifConfigParamGreaterOrEquals>



<XDtConfig:ifConfigParamNotGreaterOrEquals paramName="EjbSpec" value="2.0">
  <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="unchecked">
   <!-- pk finder permission for unchecked -->
   <method-permission>
      <description>permission for findByPK method</description>
      <unchecked/>
      <method>
        <XDtClass:ifHasClassTag tagName="ejb:bean" paramName="name">
         <ejb-name><XDtClass:classTagValue tagName="ejb:bean" 
paramName="name"/></ejb-name>
        </XDtClass:ifHasClassTag>
        <XDtClass:ifHasClassTag tagName="ejb:pk" paramName="method-intf">
         <method-intf><XDtClass:classTagValue tagName="ejb:pk" 
paramName="method-intf" values="Home,LocalHome"/></method-intf>
        </XDtClass:ifHasClassTag>
         <method-name>findByPrimaryKey</method-name>
      </method>
   </method-permission>
  </XDtClass:ifHasClassTag>
</XDtConfig:ifConfigParamNotGreaterOrEquals>

</XDtEjb:ifIsAConcreteEJBean>
</XDtEjb:forAllBeans>

  <!-- transactions -->

<XDtEjb:forAllBeans>
<XDtEjb:ifIsAConcreteEJBean>
  <XDtClass:ifHasClassTag tagName="ejb:transaction">
   <container-transaction>
      <method>
         <ejb-name><XDtEjb:ejbName/></ejb-name>
         <method-name>*</method-name>
      </method>
      <trans-attribute><XDtClass:classTagValue tagName="ejb:transaction" 
paramName="type"/></trans-attribute>
   </container-transaction>
  </XDtClass:ifHasClassTag>
  <XDtMethod:forAllMethods>
   <XDtMethod:ifHasMethodTag tagName="ejb:transaction">
    <XDtEjbIntf:ifIsInterfaceMethod>
   <container-transaction>
      <method>
         <ejb-name><XDtEjb:ejbName/></ejb-name>
         <method-intf><XDtEjbIntf:methodIntf/></method-intf>
         <method-name><XDtEjbIntf:interfaceMethodName/></method-name>
         <method-params>
           <XDtParameter:forAllMethodParams>
            <method-param><XDtParameter:methodParamType/></method-param>
           </XDtParameter:forAllMethodParams>
         </method-params>
      </method>
      <trans-attribute><XDtMethod:methodTagValue tagName="ejb:transaction" 
paramName="type"/></trans-attribute>
   </container-transaction>

    </XDtEjbIntf:ifIsInterfaceMethod>
   </XDtMethod:ifHasMethodTag>
  </XDtMethod:forAllMethods>
</XDtEjb:ifIsAConcreteEJBean>
</XDtEjb:forAllBeans>


<!-- finder transactions -->
<XDtEjb:forAllBeans>
  <XDtEjb:ifIsAConcreteEJBean>
   <XDtClass:forAllClassTags tagName="ejb:finder">
    <XDtClass:ifHasClassTag tagName="ejb:finder" 
paramName="transaction-type">
   <container-transaction>
      <method>
         <ejb-name><XDtEjb:ejbName/></ejb-name>
        <XDtClass:ifHasClassTag tagName="ejb:finder" 
paramName="method-intf">
         <method-intf><XDtClass:classTagValue tagName="ejb:finder" 
paramName="method-intf" values="Home,LocalHome" 
default="Home"></method-intf>
        </XDtClass:ifHasClassTag>
         <method-name><XDtClass:classTagValue tagName="ejb:finder" 
paramName="signature" tokenNumber="1"  delimiter=" ("/></method-name>
         <method-params>
     <XDtClass:forAllClassTagTokens tagName="ejb:finder" 
paramName="signature" delimiter="( ,)" skip="2">
            
<method-param><XDtClass:currentToken/></method-param><XDtClass:skipToken/>
     </XDtClass:forAllClassTagTokens>
         </method-params>
      </method>
      <trans-attribute><XDtMethod:methodTagValue tagName="ejb:finder" 
paramName="transaction-type"/></trans-attribute>
   </container-transaction>
    </XDtClass:ifHasClassTag>
   </XDtClass:forAllClassTags>
  </XDtEjb:ifIsAConcreteEJBean>
</XDtEjb:forAllBeans>


   </assembly-descriptor>

Reply via email to