commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From robert burrell donkin <robertburrelldon...@blueyonder.co.uk>
Subject Re: [betwixt][BUG?] Destreaming custom collections using Hyphenated/DecapitalizeNameMapper?
Date Tue, 17 Dec 2002 22:43:13 GMT
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:robertburrelldonkin@blueyonder.co.uk]
>> 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:robertburrelldonkin@blueyonder.co.uk]
>>>> 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:tima@intalio.com]
>>>>>> Sent: Saturday, December 14, 2002 7:50 PM
>>>>>> To: commons-dev@jakarta.apache.org
>>>>>> 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:commons-dev-unsubscribe@jakarta.apache.org>
>>>>>> For additional commands, e-mail:
>>>>>> <mailto:commons-dev-help@jakarta.apache.org>
>>>>>>
>>>>>    --
>>>>> To unsubscribe, e-mail:
>>>> <mailto:commons-dev-unsubscribe@jakarta.apache.
>>>>> org>
>>>>> For additional commands, e-mail:
>>>> <mailto:commons-dev-help@jakarta.apache.
>>>>> org>
>>>>
>>>>
>>>> --
>>>> To unsubscribe, e-mail:
>>>> <mailto:commons-dev-unsubscribe@jakarta.apache.org>
>>>> For additional commands, e-mail:
>>>> <mailto:commons-dev-help@jakarta.apache.org>
>>>>
>>>
>>>
>>> --
>>> To unsubscribe, e-mail:
> <mailto:commons-dev-unsubscribe@jakarta.apache.
>> org>
>> For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.
>> org>
>>
>
>
> --
> To unsubscribe, e-mail:
> <mailto:commons-dev-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
> <mailto:commons-dev-help@jakarta.apache.org>
>   --
> To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.
> org>
> For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.
> org>


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message