Hi,

Ellen, Check out the latest code, there was a stupid bug there and I
fixed it. I also tested your scenario myself and found that instead of
*removing forAllClasses* you should replace them with ifIsOfType calls
like this:

<XDtType:ifIsOfType type="javax.ejb.EntityBean">

Obviously this one replaces <forAllClasses type="javax.ejb.EntityBean">.
And so on for other bean types too.
Now if you run this you see that generated CustomerBean-ejb-jar.xml for
example is placed in test/ejb/ folder (package structure included). By
default prefixWithPackageStructure="true", but you can set
<deploymentdescriptor prefixWithPackageStructure="false" .../> and
test/ejb folder will disappear too.

Ara. 

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, December 12, 2001 7:13 PM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: AW: [Xdoclet-user] unique deployment descriptors for each
bean?
> <deploymentdescriptor
> 
> Hi,
> 
> Now I have the actual files from cvs. I've build the xdoclet.jar with
> D:\Programme\java\xdoclet-1.0.1\cvs\xdoclet\core\script\Build.bat
> 
> > This is the trick:
> >
> > <deploymentdescriptor destinationFile="{0}-ejb-jar.xml"
> > templateFile="full-path-to-your-modified-template-file.j"/>
> I've copied the file ejb-jar_xml.j to ejb-jar_xml_my.j. Then I've
removed
> all Lines with the String "forAllClasses" (see at the bottom of the
mail).
> 
> I made the following changes in the samples build.xml in the target
> ejbdoclet:
> 
> <deploymentdescriptor
>    destinationFile="{0}-ejb-jar.xml"
> 
> templateFile="D:\Programme\java\xdoclet-
> 1.0.1\cvs\xdoclet\core\resources\xdoclet\ejb\ejb-jar_xml_my.j"
>    destdir="${ejb.dd.dir}" validatexml="true" />
> 
> If I run the target ejbdoclet the following error occurs:
> 
> [ejbdoclet] Running <entitycmp/>
> [ejbdoclet]   Generating CMP class for 'test.ejb.AccountBean'.
> [ejbdoclet]   Generating CMP class for 'test.ejb.cmr.CityBean'.
> [ejbdoclet]   Generating CMP class for 'test.ejb.cmr.CountryBean'.
> [ejbdoclet]   Generating CMP class for 'test.ejb.cmr.LanguageBean'.
> [ejbdoclet]   Generating CMP class for
'test.ejb.cmr.LanguageCodeBean'.
> [ejbdoclet]   Generating CMP class for 'test.ejb.CustomerBean'.
> [ejbdoclet] Running <deploymentdescriptor/>
> [ejbdoclet]   Generating EJB deployment descriptor.
> [ejbdoclet] (TemplateEngine.invokeMethod         792 ) Invoking method
> failed: ifIsAConcreteEJBean , line=33 of template
>  file:
> D:\Programme\java\xdoclet-
> 1.0.1\cvs\xdoclet\core\resources\xdoclet\ejb\ejb-jar_xml_my.j
> [ejbdoclet] java.lang.IllegalArgumentException: doc argument passed to
> TemplateDoclet.getText is not of type ClassDoc or
>  MethodDoc. doc=null
> [ejbdoclet] javadoc: In doclet class xdoclet.DocletTask$DocletMain,
> method
> start has thrown an exception java.lang.refl
> ect.InvocationTargetException
> [ejbdoclet]     at xdoclet.util.DocletUtil.getText(DocletUtil.java:43)
> [ejbdoclet]     at xdoclet.util.DocletUtil.getText(DocletUtil.java:26)
> [ejbdoclet]     at
>
xdoclet.ejb.tags.EjbTagsHandler.isSpecificallySpecifiedToBeAConcreteEJBe
an
> (EjbTagsHandler.java:260)
> [ejbdoclet]     at
>
xdoclet.ejb.tags.EjbTagsHandler.isAConcreteEJBean(EjbTagsHandler.java:34
)
> [ejbdoclet]     at
>
xdoclet.ejb.tags.EjbTagsHandler.ifIsAConcreteEJBean(EjbTagsHandler.java:
42
> 1)
> [ejbdoclet]     at java.lang.reflect.Method.invoke(Native Method)
> [ejbdoclet]     at
> xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:771)
> [ejbdoclet]     at
>
xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:83
4)
> [ejbdoclet]     at
>
xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:695)
> [ejbdoclet]     at
> xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:431)
> [ejbdoclet]     at
> xdoclet.template.TemplateEngine.generate(TemplateEngine.java:313)
> [ejbdoclet]     at
> xdoclet.template.TemplateEngine.start(TemplateEngine.java:376)
> [ejbdoclet]     at
> xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:432)
> [ejbdoclet]     at
> xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:276)
> [ejbdoclet]     at xdoclet.XmlSubTask.startProcess(XmlSubTask.java:84)
> [ejbdoclet]     at
> xdoclet.ejb.EjbDotXmlSubTask.execute(EjbDotXmlSubTask.java:128)
> [ejbdoclet]     at
> xdoclet.DocletTask$DocletMain.start(DocletTask.java:403)
> [ejbdoclet]     at java.lang.reflect.Method.invoke(Native Method)
> [ejbdoclet]     at
> com.sun.tools.javadoc.DocletInvoker.invoke(DocletInvoker.java:193)
> [ejbdoclet]     at
> com.sun.tools.javadoc.DocletInvoker.start(DocletInvoker.java:95)
> [ejbdoclet]     at com.sun.tools.javadoc.Main.main(Main.java:233)
> [ejbdoclet] Running XDoclet failed:
> [ejbdoclet] Running XDoclet failed.
> [ejbdoclet] 1 error
> [ejbdoclet] 24 warnings
> 
> BUILD
> FAILED
> 
> D:\Programme\java\xdoclet-
> 1.0.1\cvs\xdoclet\core\samples\script\build.xml:105: Javadoc returned
1
> 
> 
> I hope, you can say me, what I'am doing wrong.
> 
> Cheers
> Ellen
> 
> 
> ejb-jar_xml_my.j:
> 
> <?xml version="1.0" encoding="<XDtConfig:configParameterValue
> paramName='Xmlencoding'/>"?>
>  <XDtConfig:ifConfigParamEquals paramName="EjbSpec" value="2.0">
> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd";>
>  </XDtConfig:ifConfigParamEquals>
>  <XDtConfig:ifConfigParamEquals paramName="EjbSpec" value="1.1">
> <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
> JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
>  </XDtConfig:ifConfigParamEquals>
> 
> <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 -->
>     <XDtEjb:ifIsAConcreteEJBean>
>       <session id="<XDtEjb:id/>">
>         <XDtMerge:merge file="xdoclet/ejb/ejb-body.j">
>         </XDtMerge:merge>
>       </session>
> 
>     </XDtEjb:ifIsAConcreteEJBean>
> 
>    <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 -->
>     <XDtEjb:ifIsAConcreteEJBean>
>       <entity id="<XDtEjb:id/>">
>         <XDtMerge:merge file="xdoclet/ejb/ejb-body.j">
>         </XDtMerge:merge>
>       </entity>
> 
>     </XDtEjb:ifIsAConcreteEJBean>
> 
>    <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 -->
>     <XDtEjb:ifIsAConcreteEJBean>
>       <message-driven id="<XDtEjb:id/>">
>         <XDtMerge:merge file="xdoclet/ejb/ejb-body.j">
>         </XDtMerge:merge>
>       </message-driven>
> 
>     </XDtEjb:ifIsAConcreteEJBean>
>    <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="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>
> 
> --
> GMX - Die Kommunikationsplattform im Internet.
> http://www.gmx.net


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


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

Reply via email to