I'm speculating wildly here, without looking at the code, but... ;-) If the <set-property> mechanism makes use of the full PropertyUtils scheme, then you might be able to do something like this:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathname(rules)" value="/WEB-INF/validator-rules.xml"/> <set-property property="pathname(validation)" value="/WEB-INF/validation.xml"/> </plug-in> where 'pathname' is a Map property, and 'rules' and 'validation' would be keys into that Map. Then again, even if it works, this is quite likely over-engineering for this situation... -- Martin Cooper ----- Original Message ----- From: "David Winterfeldt" <[EMAIL PROTECTED]> To: "Struts Developers List" <[EMAIL PROTECTED]> Sent: Saturday, March 30, 2002 6:08 PM Subject: Re: PlugIn (Craig) > I just wanted to know if this change was on purpose. > I thought you might have done this on purpose and I > understand how it breaks the JavaBean model for > setters and getters. I can change it to a comma > delimitted list. I just though having the a separate > element for each file was cleaner at least on the xml > side. > > David > > --- "Craig R. McClanahan" <[EMAIL PROTECTED]> wrote: > > > > > > On Sat, 30 Mar 2002, David Winterfeldt wrote: > > > > > Date: Sat, 30 Mar 2002 11:44:43 -0800 (PST) > > > From: David Winterfeldt <[EMAIL PROTECTED]> > > > Reply-To: Struts Developers List > > <[EMAIL PROTECTED]> > > > To: Struts Developers List > > <[EMAIL PROTECTED]> > > > Subject: PlugIn (Craig) > > > > > > It looks like when you made changes to the PlugIn > > > Craig that it broke the ValidatorPlugIn. Having > > > multiple set-property elements under the plug-in > > used > > > to work, but now it looks like only the last one > > is > > > being kept. It looks like the addition of > > > PlugInSetPropertyRule in ConfigRuleSet broke this. > > > You probably know the digester better than I do if > > > this could be changed. Or point me in the right > > > direction if you don't have time to do this. > > > > > > <plug-in > > > > > > className="org.apache.struts.validator.ValidatorPlugIn"> > > > <set-property property="pathname" > > > value="/WEB-INF/validator-rules.xml"/> > > > <set-property property="pathname" > > > value="/WEB-INF/validation.xml"/> > > > </plug-in> > > > > > > > The change to the PlugIn configuration did indeed > > change this, but I'm not > > so sure it's a "bad thing" that needs to be fixed. > > > > The basic issue is that PlugInConfig maintains a > > simple name-value Map for > > the configured properties, which is then returned > > via getProperties() and > > then used as an argument to BeanUtils.populate() to > > configure the > > instantiated PlugIn object. So, supporting your > > syntax above would > > require either an API modification, or a change to > > the contract about what > > PlugInConfig.getProperties() returns. > > > > My discomfort with going ahead and doing this is > > based on the fact that it > > is somewhat counterintuitive to expect a JavaBean > > property setter for a > > scalar String property to accept and use multiple > > values when called > > mulitple times -- the user of such a bean is going > > to expect replacement > > semantics in this scenario. It would also not be > > possible to implement > > configuration of this if we extended the DTD to > > include a specific PlugIn > > (and could therefore use attributes instead of > > nested <set-property/> > > elements), because XML doesn't allow multiple > > attributes with the same > > name. > > > > Wouldn't it be better to use a comma-delimited list > > (or something like > > that) so you can set this with one setPathname() > > method? > > > > > David > > > > > > > Craig > > > > > > -- > > To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]> > > For additional commands, e-mail: > > <mailto:[EMAIL PROTECTED]> > > > > > __________________________________________________ > Do You Yahoo!? > Yahoo! Greetings - send holiday greetings for Easter, Passover > http://greetings.yahoo.com/ > > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> > -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>