cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <>
Subject Re: [QVote] Configurable default for sitemap reloading
Date Mon, 10 Oct 2005 14:14:18 GMT
Carsten Ziegeler wrote:

>Sylvain Wallez wrote:
>>Makes sense. IIRC this was already mentioned in the past when we 
>>discussed "source store", i.e. a source-oriented front-end to the store 
>>that allows objects read from sources (stylesheets, sitemaps, forms, 
>>templates, etc) to be more memory-friendly by being kept in the store 
>>rather than in private caches.
>>The reloading policy would then be implemented in this "source store" 
>>component, once for all components that use it. This allows also to 
>>centrally implement the reload delay that also exists on the sitemap, 
>>and which directs the system to check for modification only 
>>periodically, thus reducing the number of filesystem hits under load.
>>Now this requires quite a number of changes, so let's keep a global 
>>"check-reload" for the sitemap and condiser source stores after 2.1.8.
>I'm talking of 2.2 only, so what should we do there? :)

Ah, ok :-)

>Now, rethinking this and considering Max reply, it might make sense to
>allow reloads of the one kind in production but not for others to avoid
>the checking on each request (or the delayed check).
>So what about a global property:
>and using a "sub" properties like
>o.a.c.reloading.sitemap and o.a.c.reloading.xslt and so on.

Interesting idea. Thinking more to the source cache thing, I thing this 
component should be actually a provider for separate objects, as 
different components may use the same file in different ways. I'm 
thinking here to a bug I fixed a long time ago where XSP and 
XSLTProcessor used the same cache entry to store different objects 
associated to a logicsheet.

So the sub-category could also be used as an identifier of the cache store.

Let's explain with a few lines of code:

SourceStoreFactory ssf = 
this.sourceStore = ssf.createStore("sitemap");
Processor proc = this.sourceStore.get(source);
if (proc == null) {
    Processor proc = buildProcessor(source);, proc);

The source store will then store in the real store an entry related to 
its name and the source's URI and validity, and automatically handle the 
reloading configuration and delay.

>The "sub" properties default to o.a.c.reloading unlike otherwise specified.
>The source store which we might have at some point can use this property
>as well. Clients of the source store always specify the "type" like
>sitemap or xslt



Sylvain Wallez                        Anyware Technologies
Apache Software Foundation Member     Research & Technology Director

View raw message