Thanks Philippe
yeh i undestand how the meta-descriptions for an object are built.
it makes sense to use the solution you propose, however i dont want to get rid of the cache, i like the idea of keeping a cache of built descriptions for an object and each time new code is deployed the cache has to be manually flushed, by calling #flush on the default instance of MADescriptionBuilder.
Dale is going implement  SystemChangeNotifier soon for, so we can always allow MADescriptionBuilder to subcribe to systemEvents later.
Does that sound reasonable ?
 
PS: looking at the squeak implementation it seems that MADescriptionBuilder flushes its cache of description if any method is changed or modified or added in the entire System, not necessrily an object in the MADescriptionBuilder cache
> Date: Wed, 10 Oct 2007 06:48:18 +0200
> From: philippe.marschall@gmail.com
> To: cappadonza@hotmail.com
> Subject: Re: [GS/SS Beta] [betaG/S] SystemChangeNotifier
> CC: beta@seaside.gemstone.com
>
> 2007/10/9, isaiah perumalla <cappadonza@hotmail.com>:
> >
> > in squeak there is a class ystemChangeNotifier, what is the equivalent of
> > that in Gemstone/S
>
> I don't think you necessarily need one. Some background:
> To build a metadescription of an object Magritte per default only
> looks a the class side. It collects all the selectors the class of the
> object contains that begin with 'description' and performs them. This
> can take a moment on Squeak so a cache was added that maps classes to
> metadescriptions. This cache will have to be invalidated if a class is
> changed (a method added or removed).
>
> A solution for this would be to make a MADescriptionBuilder for use in
> production, this one would not be invalidated automatically. You would
> have to invalidate it whenever you deploy code. It might be that
> building metadescriptions of GemStone in fast enough and you don't
> need any cache.
>
> Cheers
> Philippe
>
> > ________________________________
> > Sell your car for just $30 at CarPoint.com.au. It's simple!



Sell your car for just $30 at CarPoint.com.au. It's simple!