Hi,
I've written generators, and caching generators which extend the
non-caching components and implement CachingPipelineComponent. The
isValid(CacheKey) method is as follows:
/**
* Check if caching period expired.
*
* @see
org.apache.cocoon.pipeline.caching.AbstractCacheKey#isValid(CacheKey)
*/
@Override
public boolean isValid(final CacheKey other) {
if (!(other instanceof FileCaching)) {
return false;
}
final FileCaching otherCacheKey =
(FileCaching) other;
return this.mTimestamp == otherCacheKey.mTimestamp;
}
Basically mTimestamp is the last timestamp a file has been modified
(file.lastModified()). I assume that's correct, but it always responds
with the same file even if it changes:
<map:pipeline jmx-group-name="timestamp-caching">
<map:match pattern="caching-pipeline/on">
<map:generate type="cachingttsax" src="test"/>
<map:serialize/>
</map:match>
</map:pipeline>
<map:pipeline type="async-caching" jmx-group-name="async-caching">
<map:match pattern="async-caching-pipeline/on">
<map:generate type="cachingttsax" src="test"/>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
Even from within another pipeline.
regards,
Johannes
<map:pipeline type="noncaching" jmx-group-name="nocaching">
<map:match pattern="caching-pipeline/off">
<map:generate type="cachingttsax" src="test"/>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]