Yup - that works thanks. I guess I don't understand the semantics of <addDefaults/>. When is it required/not required?
Thanks, Tim > -----Original Message----- > From: robert burrell donkin > [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, December 18, 2002 9:43 AM > To: Jakarta Commons Developers List > Subject: Re: [betwixt][BUG?] Destreaming custom collections using > Hyphenated/DecapitalizeNameMapper? > > > hi tim > > i know what the problem is. betwixt doesn't add updaters for methods > unless a <addDefaults/> element is present. (if you can do this) adding a > <addDefaults/> to your .betwixt file should be a temporary fix for the > problem. > > i'm not going to alter the code so that betwixt adds updaters > automatically since i think that the current behaviour is correct. but i > will look into adding an 'updater' (or something like that) attribute to > the 'element' element which will allow the matching updater to be > specified in the betwixt file. > > - robert > > On Tuesday, December 17, 2002, at 08:54 AM, Tim Anderson wrote: > > > Thanks for the prompt response and patch Robert. > > > > This has highlighted another issue - if a .betwixt file > > exists for the collection class, it doesn't destream. > > > > I need to specify a .betwixt file in order for my collection > > class' contents to be streamed in the correct order. > > > > Attached is a .betwixt file for Elements.java, and a patch for > > maven.xml to copy it to test-classes, to reproduce the problem. > > > > Thanks, > > > > Tim > > > >> -----Original Message----- > >> From: robert burrell donkin > >> [mailto:[EMAIL PROTECTED]] > >> Sent: Tuesday, December 17, 2002 9:02 AM > >> To: Jakarta Commons Developers List > >> Subject: Re: [betwixt][BUG?] Destreaming custom collections using > >> Hyphenated/DecapitalizeNameMapper? > >> > >> > >> i've committed a fix for this. if you get the chance, give it a try. > >> > >> thanks for the unit tests. it turned out to be to do with > recognition of > >> recursive elements rather than anything to do with the NameMapper > >> implementations so i might have had difficulties replicate it > otherwise. > >> > >> - robert > >> > >> On Sunday, December 15, 2002, at 11:13 PM, Tim Anderson wrote: > >> > >>> Go for it. I didn't include the license out of laziness ;) > >>> > >>>> -----Original Message----- > >>>> From: robert burrell donkin > >>>> [mailto:[EMAIL PROTECTED]] > >>>> Sent: Monday, December 16, 2002 3:34 AM > >>>> To: Jakarta Commons Developers List > >>>> Subject: Re: [betwixt][BUG?] Destreaming custom collections using > >>>> Hyphenated/DecapitalizeNameMapper? > >>>> > >>>> > >>>> thanks. > >>>> > >>>> those unit tests demonstrate the problem fine. fancy donating > >> them to the > >>>> apache software foundation (saves me writing equivalent ones)? > >>>> > >>>> (you didn't include the apache license at the top of each so i > >> thought it > >>>> best to check...) > >>>> > >>>> - robert > >>>> > >>>> On Saturday, December 14, 2002, at 10:31 AM, Tim Anderson wrote: > >>>> > >>>>> Attached is a junit test case which reproduces the problem. > >>>>> > >>>>> Regards, > >>>>> > >>>>> Tim > >>>>> > >>>>>> -----Original Message----- > >>>>>> From: Tim Anderson [mailto:[EMAIL PROTECTED]] > >>>>>> Sent: Saturday, December 14, 2002 7:50 PM > >>>>>> To: [EMAIL PROTECTED] > >>>>>> Subject: [betwixt][BUG?] Destreaming custom collections using > >>>>>> Hyphenated/DecapitalizeNameMapper? > >>>>>> > >>>>>> > >>>>>> Hi people, > >>>>>> I am trying to destream some XML using betwixt into a > >>>> class structure > >>>>>> which looks like: > >>>>>> > >>>>>> public class Foos { > >>>>>> // manages a collection of Foo > >>>>>> public void addFoo(Foo foo) { ... } > >>>>>> public Iterator getFoos() { .... } > >>>>>> } > >>>>>> > >>>>>> public class Foo { > >>>>>> // ... > >>>>>> public void setValue(String value) { ... } > >>>>>> public String getValue() { ...} > >>>>>> } > >>>>>> > >>>>>> Using the DefaultNameMapper, this streams as: > >>>>>> > >>>>>> <Foos> > >>>>>> <foo value="a"/> > >>>>>> <foo value="b"/> > >>>>>> </Foos> > >>>>>> > >>>>>> and destreams fine. However with the > >>>> Hyphenated/DecapitalizeNameMappers, > >>>>>> it doesn't destream correctly - the addFoo() method is not invoked. > >>>>>> Streamed it looks like: > >>>>>> <foos> > >>>>>> <foo value="a"/> > >>>>>> <foo value="b"/> > >>>>>> </foos> > >>>>>> > >>>>>> Looking at the debug trace, the following messages from > >>>>>> XMLIntrospector > >>>>>> appear: > >>>>>> .... > >>>>>> Processing child > >>>> ElementDescriptor[qname=foos,pname=foos,class=interface > >>>>>> java.util.Iterator,singular=class Foo,updater=MethodUpdater > >>>>>> [method=public > >>>>>> void Foos.addFoo(Foo)]] > >>>>>> > >>>>>> Creating generic rule for recursive elements > >>>>>> ^^^^^^^^^^^^ problem starts here^^^^^^^^^^^^ > >>>>>> > >>>>>> Created bean create rule > >>>>>> Descriptor=ElementDescriptor[qname=foos,pname=foos,class=interface > >>>>>> java.util.Iterator,singular=class Foo,updater=MethodUpdater > >>>>>> [method=public > >>>>>> void Foos.addFoo(org.apache.commons.sql.type.Foo)]] > >>>>>> Class=class Foo Path prefix=*/foos > >>>>>> Ignoring duplicate digester rule for path: */foos rule: > >>>>>> BeanCreateRule [path > >>>>>> prefix=*/foos > >>>>>> descriptor=ElementDescriptor[qname=foos,pname=foos,class=interface > >>>>>> java.util.Iterator, .... > >>>>>> > >>>>>> I'm configuring the introspector using: > >>>>>> > >>>>>> introspector.setAttributesForPrimitives(true); > >>>>>> introspector.setWrapCollectionsInElement(false); > >>>>>> introspector.setElementNameMapper(new > >>>> DecapitalizeNameMapper()); > >>>>>> > >>>>>> Any ideas/workarounds? > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> Tim > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> To unsubscribe, e-mail: > >>>>>> <mailto:[EMAIL PROTECTED]> > >>>>>> For additional commands, e-mail: > >>>>>> <mailto:[EMAIL PROTECTED]> > >>>>>> > >>>>> -- > >>>>> To unsubscribe, e-mail: > >>>> <mailto:[EMAIL PROTECTED]. > >>>>> org> > >>>>> For additional commands, e-mail: > >>>> <mailto:[EMAIL PROTECTED]. > >>>>> org> > >>>> > >>>> > >>>> -- > >>>> To unsubscribe, e-mail: > >>>> <mailto:[EMAIL PROTECTED]> > >>>> For additional commands, e-mail: > >>>> <mailto:[EMAIL PROTECTED]> > >>>> > >>> > >>> > >>> -- > >>> To unsubscribe, e-mail: > > <mailto:[EMAIL PROTECTED]. > >> org> > >> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]. >> org> >> > > > -- > To unsubscribe, e-mail: > <mailto:[EMAIL PROTECTED]> > For additional commands, e-mail: > <mailto:[EMAIL PROTECTED]> > -- > To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]. > org> > For additional commands, e-mail: <mailto:[EMAIL PROTECTED]. > org> -- 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]>