On Wed, 2004-01-14 at 22:20, Kelly Harward wrote: > On Jan 14, 2004 2:01 PM Erik Hatcher wrote: > > You should be able to do this incrementally, by taking an existing > > struts-config.xml and slicing it up into merge points. As for > > validation.xml - I don't recall if there is a merge point in there or > > not, but it is simple to customize the template and add one (pull the > > .xdt file out of the JAR, add a merge point, point to it with > > templateFile="..."). > > > > What is not working with doing things incrementally? > > In this particular case, merging isn't the problem with doing things > incrementally. It's the fact that <strutsvalidationxml> throws an > XDocletException whenever the following conditions are met: > > 1) You are using a base form bean class (that extends > ValidatorActionForm). > 2) The aforementioned base form bean class has @struts.validator tags on > at least one of its fields. > 3) At least one of the subclasses that inherits from the aforementioned > base form bean class does not have a @struts.form tag with a 'path' > parameter.
So why not just exclude the subclasses that don't have the @struts.form tag from your fileset? You can then include their (hand-written) entries in the validation.xml via merge points, like Erik was suggesting. Andrew. > I've pasted in the stack trace below, if you're interested (I have rev > 1.8 of StrutsValidatorTagsHandler). Further, generation of my > validation.xml stops when this exception is thrown, meaning that it only > contains <form> elements for those forms that were already processed > before the exception was thrown and it is not well-formed or valid (no > closing </formset> or </form-validation> tags). > > Perhaps there is some way to specify that <strutsvalidationxml> should > not cause the build to fail, in which case I could later merge in the > validation meta-data for those subclasses of my base form bean class > that have not yet been converted to use XDoclet? > > -Kelly > > ___________________________ > > > BUILD FAILED > file:build.xml:146: Unexpected error > at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:123) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193) > at org.apache.tools.ant.Task.perform(Task.java:341) > at org.apache.tools.ant.Target.execute(Target.java:309) > at org.apache.tools.ant.Target.performTasks(Target.java:336) > at org.apache.tools.ant.Project.executeTarget(Project.java:1339) > at > org.apache.tools.ant.Project.executeTargets(Project.java:1255) > at org.apache.tools.ant.Main.runBuild(Main.java:609) > at org.apache.tools.ant.Main.start(Main.java:196) > at org.apache.tools.ant.Main.main(Main.java:235) > Caused by: file:build.xml:146: XDoclet failed. > at xdoclet.DocletTask.start(DocletTask.java:467) > at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110) > ... 9 more > Caused by: xdoclet.XDocletException: Mandatory parameter 'path' missing > for struts.form tag in [class name] class. > at > xdoclet.XDocletTagSupport.mandatoryParamNotFound(XDocletTagSupport.java: > 572) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:467) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:388) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.formName(Struts > ValidatorTagsHandler.java:96) > at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java: > 614) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:469) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.ifFormHasFields > (StrutsValidatorTagsHandler.java:226) > at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.forAllForms(Str > utsValidatorTagsHandler.java:79) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.template.TemplateEngine.start(TemplateEngine.java:414) > at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560) > at > xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616) > at > xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:597) > at xdoclet.XmlSubTask.startProcess(XmlSubTask.java:198) > at > xdoclet.modules.apache.struts.StrutsValidationXmlSubTask.execute(StrutsV > alidationXmlSubTask.java:50) > at xdoclet.XDocletMain.start(XDocletMain.java:48) > at xdoclet.DocletTask.start(DocletTask.java:464) > ... 10 more > --- Nested Exception --- > file:build.xml:146: XDoclet failed. > at xdoclet.DocletTask.start(DocletTask.java:467) > at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193) > at org.apache.tools.ant.Task.perform(Task.java:341) > at org.apache.tools.ant.Target.execute(Target.java:309) > at org.apache.tools.ant.Target.performTasks(Target.java:336) > at org.apache.tools.ant.Project.executeTarget(Project.java:1339) > at > org.apache.tools.ant.Project.executeTargets(Project.java:1255) > at org.apache.tools.ant.Main.runBuild(Main.java:609) > at org.apache.tools.ant.Main.start(Main.java:196) > at org.apache.tools.ant.Main.main(Main.java:235) > Caused by: xdoclet.XDocletException: Mandatory parameter 'path' missing > for struts.form tag in [class name] class. > at > xdoclet.XDocletTagSupport.mandatoryParamNotFound(XDocletTagSupport.java: > 572) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:467) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:388) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.formName(Struts > ValidatorTagsHandler.java:96) > at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java: > 614) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:469) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.ifFormHasFields > (StrutsValidatorTagsHandler.java:226) > at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.forAllForms(Str > utsValidatorTagsHandler.java:79) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.template.TemplateEngine.start(TemplateEngine.java:414) > at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560) > at > xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616) > at > xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:597) > at xdoclet.XmlSubTask.startProcess(XmlSubTask.java:198) > at > xdoclet.modules.apache.struts.StrutsValidationXmlSubTask.execute(StrutsV > alidationXmlSubTask.java:50) > at xdoclet.XDocletMain.start(XDocletMain.java:48) > at xdoclet.DocletTask.start(DocletTask.java:464) > ... 10 more > --- Nested Exception --- > xdoclet.XDocletException: Mandatory parameter 'path' missing for > struts.form tag in [class name] class. > at > xdoclet.XDocletTagSupport.mandatoryParamNotFound(XDocletTagSupport.java: > 572) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:467) > at > xdoclet.XDocletTagSupport.getTagValue(XDocletTagSupport.java:388) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.formName(Struts > ValidatorTagsHandler.java:96) > at sun.reflect.GeneratedMethodAccessor55.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeContentMethod(TemplateEngine.java: > 614) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:469) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.ifFormHasFields > (StrutsValidatorTagsHandler.java:226) > at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.XDocletTagSupport.generate(XDocletTagSupport.java:738) > at > xdoclet.modules.apache.struts.StrutsValidatorTagsHandler.forAllForms(Str > utsValidatorTagsHandler.java:79) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav > a:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor > Impl.java:25) > at java.lang.reflect.Method.invoke(Method.java:324) > at > xdoclet.template.TemplateEngine.invoke(TemplateEngine.java:635) > at > xdoclet.template.TemplateEngine.invokeMethod(TemplateEngine.java:561) > at > xdoclet.template.TemplateEngine.invokeBlockMethod(TemplateEngine.java:95 > 9) > at > xdoclet.template.TemplateEngine.handleBlockTag(TemplateEngine.java:926) > at > xdoclet.template.TemplateEngine.handleTag(TemplateEngine.java:466) > at > xdoclet.template.TemplateEngine.generate(TemplateEngine.java:347) > at > xdoclet.template.TemplateEngine.start(TemplateEngine.java:414) > at xdoclet.TemplateSubTask.startEngine(TemplateSubTask.java:560) > at > xdoclet.TemplateSubTask.startProcessForAll(TemplateSubTask.java:616) > at > xdoclet.TemplateSubTask.startProcess(TemplateSubTask.java:597) > at xdoclet.XmlSubTask.startProcess(XmlSubTask.java:198) > at > xdoclet.modules.apache.struts.StrutsValidationXmlSubTask.execute(StrutsV > alidationXmlSubTask.java:50) > at xdoclet.XDocletMain.start(XDocletMain.java:48) > at xdoclet.DocletTask.start(DocletTask.java:464) > at xjavadoc.ant.XJavadocTask.execute(XJavadocTask.java:110) > at > org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193) > at org.apache.tools.ant.Task.perform(Task.java:341) > at org.apache.tools.ant.Target.execute(Target.java:309) > at org.apache.tools.ant.Target.performTasks(Target.java:336) > at org.apache.tools.ant.Project.executeTarget(Project.java:1339) > at > org.apache.tools.ant.Project.executeTargets(Project.java:1255) > at org.apache.tools.ant.Main.runBuild(Main.java:609) > at org.apache.tools.ant.Main.start(Main.java:196) > at org.apache.tools.ant.Main.main(Main.java:235) ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user
