Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 99240 invoked from network); 18 Dec 2002 10:52:00 -0000 Received: from exchange.sun.com (HELO nagoya.betaversion.org) (192.18.33.10) by daedalus.apache.org with SMTP; 18 Dec 2002 10:52:00 -0000 Received: (qmail 22652 invoked by uid 97); 18 Dec 2002 10:53:22 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@jakarta.apache.org Received: (qmail 22617 invoked by uid 97); 18 Dec 2002 10:53:21 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 22605 invoked by uid 98); 18 Dec 2002 10:53:20 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Reply-To: From: "Tim Anderson" To: "Jakarta Commons Developers List" Subject: RE: [betwixt][BUG?] Destreaming custom collections using Hyphenated/DecapitalizeNameMapper? Date: Wed, 18 Dec 2002 21:52:56 +1100 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) In-Reply-To: X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Yup - that works thanks. I guess I don't understand the semantics of . When is it required/not required? Thanks, Tim > -----Original Message----- > From: robert burrell donkin > [mailto:robertburrelldonkin@blueyonder.co.uk] > 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 element is present. (if you can do this) adding a > 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: > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> and destreams fine. However with the > >>>> Hyphenated/DecapitalizeNameMappers, > >>>>>> it doesn't destream correctly - the addFoo() method is not invoked. > >>>>>> Streamed it looks like: > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> 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: > >>>>>> > >>>>>> For additional commands, e-mail: > >>>>>> > >>>>>> > >>>>> -- > >>>>> To unsubscribe, e-mail: > >>>> >>>>> org> > >>>>> For additional commands, e-mail: > >>>> >>>>> org> > >>>> > >>>> > >>>> -- > >>>> To unsubscribe, e-mail: > >>>> > >>>> For additional commands, e-mail: > >>>> > >>>> > >>> > >>> > >>> -- > >>> To unsubscribe, e-mail: > > >> org> > >> For additional commands, e-mail: > org> >> > > > -- > To unsubscribe, e-mail: > > For additional commands, e-mail: > > -- > To unsubscribe, e-mail: org> > For additional commands, e-mail: org> -- To unsubscribe, e-mail: For additional commands, e-mail: -- To unsubscribe, e-mail: For additional commands, e-mail: