You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/12/01 21:28:06 UTC
svn commit: r351461 - in
/cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl:
CachingSource.java CachingSourceFactory.java
Author: sylvain
Date: Thu Dec 1 12:28:01 2005
New Revision: 351461
URL: http://svn.apache.org/viewcvs?rev=351461&view=rev
Log:
Allow CachedSource to be subclassed. Patch provided by Jean-Baptiste Quenot <jb...@anyware-tech.com>
Modified:
cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSource.java
cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSourceFactory.java
Modified: cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSource.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSource.java?rev=351461&r1=351460&r2=351461&view=diff
==============================================================================
--- cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSource.java (original)
+++ cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSource.java Thu Dec 1 12:28:01 2005
@@ -615,7 +615,7 @@
return valid;
}
- private SourceValidity[] getCacheValidities() {
+ protected SourceValidity[] getCacheValidities() {
if (this.cache instanceof EventAware) {
// use event caching strategy, the associated event is the source uri
return new SourceValidity[] { new EventValidity(new NamedEvent(this.source.getURI())) };
@@ -668,4 +668,7 @@
}
+ public void setCache(Cache cache) {
+ this.cache = cache;
+ }
}
Modified: cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSourceFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSourceFactory.java?rev=351461&r1=351460&r2=351461&view=diff
==============================================================================
--- cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSourceFactory.java (original)
+++ cocoon/blocks/scratchpad/trunk/java/org/apache/cocoon/components/source/impl/CachingSourceFactory.java Thu Dec 1 12:28:01 2005
@@ -107,7 +107,7 @@
* </tr>
* </tbody></table>
*
- * @version CVS $Id: CachingSourceFactory.java,v 1.12 2004/07/01 14:24:36 unico Exp $
+ * @version CVS $Id$
* @since 2.1.1
*/
public final class CachingSourceFactory extends AbstractLogEnabled
@@ -278,16 +278,17 @@
// put caching source specific query string parameters
// into a Parameters object
final Parameters params = new Parameters();
+ SourceParameters remainingParameters = (SourceParameters) sp.clone();
if (sp != null) {
final Iterator names = sp.getParameterNames();
while (names.hasNext()) {
String name = (String) names.next();
if (name.startsWith("cocoon:cache")) {
params.setParameter(name.substring("cocoon:".length()), sp.getParameter(name));
- sp.removeParameter(name);
+ remainingParameters.removeParameter(name);
}
}
- queryString = sp.getQueryString();
+ queryString = remainingParameters.getQueryString();
if (queryString != null) {
uri += "?" + queryString;
}
@@ -296,7 +297,7 @@
int expires = params.getParameterAsInteger(CachingSource.CACHE_EXPIRES_PARAM, this.defaultExpires);
String cacheName = params.getParameter(CachingSource.CACHE_NAME_PARAM, null);
- final CachingSource source = newCachingSource(this.resolver.resolveURI(uri),
+ final CachingSource source = createCachingSource(this.resolver.resolveURI(uri),
this.scheme,
location,
expires,
@@ -323,9 +324,25 @@
}
/**
- * Factory method for creating a new CachingSource.
+ * Factory method for creating a new CachingSource. Delegates to createCachingSource()
*/
public static CachingSource newCachingSource(Source wrappedSource,
+ String scheme,
+ String uri,
+ int expires,
+ String cacheName,
+ boolean async,
+ Cache cache,
+ Logger logger,
+ ServiceManager manager)
+ throws SourceException {
+ return new CachingSourceFactory().createCachingSource(wrappedSource, scheme, uri, expires, cacheName, async, cache, logger, manager);
+ }
+
+ /**
+ * Actually creates a new CachingSource. Can be overriden in subclasses
+ */
+ protected CachingSource createCachingSource(Source wrappedSource,
String scheme,
String uri,
int expires,