Sylvain Wallez wrote:
Christian Haul wrote:

This is a big problem, indeed. Since many of those actually build their private cache from a source, I have started a SourceCache in the scratchpad block but got distracted :-( Still, maybe it could be useful when cleaning up the private caches.

The only implementation (SoftSourceCache) uses a ReferenceMap from JCCol that could at least be cleaned by the garbage collector when memory is low. Using a store would surely be better, though. But it's only a first cut :-)


I was thinking to introduce some helper class to handle source-related store entries, along the lines of XSLTProcessor.TransformerHandlerAndValidity. Your SourceCache goes that way, but IMO it should be "just" a helper class rather than a component. Also, it manages its own cache ;-)

:-) I've chosen a component since I have anticipated different implementations. Eg implementations could differ on how they hangle validities. One implementation might chose to ignore validities for example. However, by using excalibur store as back-end and doing modifications of the cache validity at the source a helper class is fine as well.

Just another thought on "transient": A good example for a transient
store is IMO a request attribute. Here, transient relates to the life
span of a request. The store content is present while the current
request is processed and afterwards the store is cleaned up. But this
is too Cocoon specific to be introduced into avalon :-)

Chris.



Reply via email to