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
