> -----Original Message-----
> From: Jean-Baptiste Quenot [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, January 24, 2006 18:40
> To: dev@cocoon.apache.org
> Subject: Re: caching for source objects?
> 
> 
> * Carsten Ziegeler:
> 
> > Max Pfingsthorn schrieb:
> >
> > > I've run into some problems  with performance (in general) and
> > > I noticed that source objects are not cached... This is not so
> > > nice since, for example,  WebDAVSources are quite expensive to
> > > instantiate.
> >
> > I  think  we  have   a  CachingSource  implementation  somewhere
> > (scratchpad?) which  can be used  as a wrapper around  any other
> > source implementation. I think this one will fit your use case.
> 
> CachingSource builds a new Source  object every time, that costs a
> lot for SitemapSource.   I'm currently looking for a  way to cache
> the Source objects (that could  be configurable with a new request
> parameter), not only the cached response.
> 
> The  problem is  that  I don't  want  to  end up  with  a lots  of
> unreleased sources.  The  best would be to  release sources unused
> for a certain period of time.  Is that possible?

Releasing sources is not really a problem. When you get the source from the 
cache (be it either the serialized one from the Cache or the object itself from 
the Store), you can ask it for the validity and check it. If it's not valid, 
release it and make a new one, otherwise use the one you got.
There might be a problem with EventCaching this way, since the eventaware code 
doesn't know about releasing sources (yet). I made an EventAware MRUMemoryStore 
recently (not sure if I committed it..), so its method to process event caching 
events can be adjusted to check if the object to be removed is a source and 
release it first. I'm not sure, but I also think its possible to overload the 
remove() method of the MRUMemoryStore instead and also catch other evictions.

max