Checking all dependencies sounds first to be the right thing to do but it can introduce a new performance bottleneck. Just think of a well structured hierarchy of stylesheets stored on a filer, where now the cache validity check requires dozens of NFS-stat calls.
Caching on a production server is important but there must be also a possibility to flush the cache short of restarting the server. May I suggest to extend the TraxTransformer configuration to allow specifying a touchfile whose filestamp is checked for the validity mechanism.
-1.
It would be better and more system-wide consistent to have a single global setting used by every reloadable component (xslt, sitemap engine, i18n transformer, woody forms, flowscript, etc) to check if it should check for modifications the resources it depends on.
Otherwise, we will end up with every component defining its own way of being configured for this behaviour and lead to a configuration nightmare.
This information could e.g. be placed in the Avalon context. Note that it's not far from the "running modes" that have been mentioned several times in the past.
This setting could actually be a delay used to ensure that sources are checked only once per given period of time. E.g. checking only every minute on a production system is perfectly acceptable. A simple Validity wrapper easily does the trick.
All this can be implemented only once with SourceUtil.getDelayedValidity(Context, Validity) returning the Validity object that should actually be used.
In production one can then use a global touchfiles to flush the cache manually whenever there might have been an update of a stylesheet. If needed, a finer granularity can be obtained by using application specific touchfiles.
If the touchfile is not specified, it defaults to the root stylesheet - that is the effect of Carsten's current implementation.
You already have a global touch file which is cocoon.xconf, or web.xml if you also want to reload the classes.
Sylvain
-- Sylvain Wallez Anyware Technologies http://www.apache.org/~sylvain http://www.anyware-tech.com { XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects } Orixo, the opensource XML business alliance - http://www.orixo.com