I don't have a clue why DefaultTypeMappingRegistry is final. It looks
like a mistake. Why put protected methods in a final class?

Here's my temporary prescription.

1) make a subclass of XMLTypeCreator. You'll probably have to override
createClassInfo(PropertyDescriptor). If you get one of the properties
you don't like, return null. (I could be wrong about null). In real
life, the ignore property is noted way down in the BeanTypeInfo, and
overriding \that/ would be a ton of work.

2) Assembly a chain of type creators like that assembled in the default
type mapping registry, with your subclass at the front. Pass it to
setTypeCreator on the type mapping registry.

Removing the wayward 'final' is an easy patch post 2.0.2, and I'd
consider some feature development (in the Configuration) object to allow
this from Spring configuration (a pattern of unloved property names?).

> -----Original Message-----
> From: tog [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 21, 2007 4:22 PM
> To: [email protected]
> Subject: DefaultTypaMappingRegistry issue [was: Aegis binding and
> property/fiels removal]
> 
> There seems to be an renewed interest for Aegi on the list (thanks
> Benson ;-) )
> Can someone comment if what I want to achieve is do-able ? According
> to Dan D. it is. I am clueless regarding step 4 (quoted below)
> 
> Thanks
> Guillaume
> 
> ---------- Forwarded message ----------
> From: tog <[EMAIL PROTECTED]>
> Date: Sep 11, 2007 4:20 PM
> Subject: DefaultTypaMappingRegistry issue [was: Aegis binding and
> property/fiels removal]
> To: [email protected]
> 
> 
> 
> Hi Dan,
> 
> Sorry not to follow up quickly. Actually, the
> DefaultTypaMappingRegistry is final and cannot be extended as you
> suggest.
> 
> Some more insights on what I want to achieve. Today, in GroovyWS, the
> users have to write a .aegis.xml file for each bean they will  write
> in Groovy. This file is  always the same  containing the line:
> 
> <property name="metaClass" ignore="true"/>
> 
> I would like to modify the behavior of the BeanType inside the Aegis
> Binding so that if such a field is present it can be ignored.
> 
> Is there some documentation on how to modify the
> DefaultTypeMappingRegisty ?
> 
> Cheers
> Guillaume
> 
> 
> 
> >
> >
> > Step 4: Write your own type registry to return your own TypeCreator
> >
> > public class MyTypeMappingRegistry extends
DefaultTypeMappingRegistry {
> >
> >     protected AbstractTypeCreator createDefaultTypeCreator() {
> >         AbstractTypeCreator creator = new MyTypeCreator();
> >         creator.setConfiguration(getConfiguration());
> >         return creator;
> >     }
> > }
> >
> > Step 5: use it:
> >
> > ServerFactoryBean sfb = new ServerFactoryBean();
> >
> > AegisDatabinding db = new AegisDataBinding();
> > db.setTypeMappingRegistry(new MyTypeMappingRegistry());
> > sfb.setDatabinding(db);
> > ...
> >
> > Hope that works for you!
> >
> > - Dan
> >
> > On 8/27/07, tog < [EMAIL PROTECTED]> wrote:
> > >
> > > Hiya
> > >
> > > I have some automatically generated classes that I use to generate
a
> > > server
> > > using Aegis. This is done programmaticaly. I am using an
> > > AegisServiceConfiguration class to avoid publishing methods that I
> want to
> > > remove. I would like similarly to remove some fields/properties
from
> the
> > > serialization process.
> > > How is that possible (programmaticaly) ?
> > >
> > > Thanks for your help.
> > >
> > > Guillaume
> > >
> >
> 
> 
> 
> --
> 
> Best Regards
> Guillaume
>  http://cheztog.blogspot.com
> 
> --
> 
> Best Regards
> Guillaume
> http://cheztog.blogspot.com
> 
> --
> 
> Best Regards
> Guillaume
> http://cheztog.blogspot.com

Reply via email to