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]>
maven.patch
Description: Binary data
Elements.betwixt
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>