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]>

Attachment: maven.patch
Description: Binary data

Attachment: Elements.betwixt
Description: Binary data

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to