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

Reply via email to