Sounds easy enough, but it might involve rethinking the guts of digester a bit. Let me "digest" on that a bit, but I think we can do it somewhat easily.
Sent from tablet device. Please excuse typos and brevity. On Nov 14, 2011 3:02 AM, "Simone Tripodi" <simonetrip...@apache.org> wrote: > Hi all guys, > I'm writing to ask you all a big help on fixing that issues that is > spoling my sweet dreams and completely blocking for the rest :) > > The well known issue is that the Digester has been able to create > objects using only the default empty constructor, that is because > instances are created when the XML elements begin. > > Thanks to Matt Benson's effort, using CGLIB it is possible to create > instances using arbitrary constructors, extracting arguments from the > same matching XML element attributes. > > I am sure we can do even more, extracting constructor arguments from > nested elements, I mean, given the following POJO: > > class MyBean > { > > // (g|s)etter omitted > private float floatProperty; > > public MyBean( double doubleProperty, boolean booleanProperty ) > ... > } > > and the following XML snippet > > <toplevel> > <bean double="9.99"> > <boolean>true</boolean> > <float>5.5</float> > </bean> > </toplevel> > > I would like - but don't know how, that's here that I need help - via > CGLIB (or something similar) implementing a Lazy Initialization policy > that allows us creating a proxy that tracks the Object methods > invocations, but the constructor and methods will be invoked only when > the matchin XML element terminates. > > Just to be more clear: > > <toplevel> > <bean double="9.99"> <!-- create the MyBean Proxy, > register the 1st ctor argument --> > <boolean>true</boolean> <!-- register the 2nd ctor argument --> > <float>5.5</float> <!-- track invokation of the > setBeanProperty --> > </bean> <!-- matche ends, invoke the > constructor and tracked methods --> > </toplevel> > > Do you think that would be possible? > Many thanks in advance, all the best! > Simo > > http://people.apache.org/~simonetripodi/ > http://simonetripodi.livejournal.com/ > http://twitter.com/simonetripodi > http://www.99soft.org/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >