You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by il...@apache.org on 2012/06/29 09:47:47 UTC
svn commit: r1355254 - in /cocoon/cocoon3/trunk:
cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/
cocoon-sax/src/main/java/org/apache/cocoon/sax/component/
cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/
Author: ilgrosso
Date: Fri Jun 29 07:47:46 2012
New Revision: 1355254
URL: http://svn.apache.org/viewvc?rev=1355254&view=rev
Log:
Refactoring ParameterCacheKey Sitemap-safe instantiation with a factory method
Modified:
cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/XSLTTransformer.java
cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateGenerator.java
cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateTransformer.java
Modified: cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java?rev=1355254&r1=1355253&r2=1355254&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java (original)
+++ cocoon/cocoon3/trunk/cocoon-pipeline/src/main/java/org/apache/cocoon/pipeline/caching/ParameterCacheKey.java Fri Jun 29 07:47:46 2012
@@ -17,6 +17,7 @@
package org.apache.cocoon.pipeline.caching;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -45,6 +46,27 @@ public class ParameterCacheKey extends A
private final Map<String, String> parameters;
+ /**
+ * Build an instance only when parameter names are safe in Sitemap context.
+ *
+ * @param parameters to be considered for caching
+ * @return a Sitemap-safe instance
+ */
+ public static ParameterCacheKey getSitemapSafeInstance(Map<String, Object> parameters) {
+ if (parameters == null) {
+ parameters = Collections.EMPTY_MAP;
+ }
+
+ Map<String, String> safeParams = new HashMap<String, String>();
+ for (Entry<String, Object> entry : parameters.entrySet()) {
+ if (!SITEMAP_PARAM_NON_CACHABLE_NAMES.contains(entry.getKey())) {
+ safeParams.put(entry.getKey(), entry.getValue().toString());
+ }
+ }
+
+ return new ParameterCacheKey(Collections.unmodifiableMap(safeParams));
+ }
+
public ParameterCacheKey() {
this(new HashMap<String, String>());
}
@@ -86,32 +108,6 @@ public class ParameterCacheKey extends A
}
/**
- * Add a parameter to this cache key, only when name is safe in Sitemap context.
- *
- * @param name parameter name
- * @param value parameter value
- */
- public void addSitemapParameter(String name, Object value) {
- if (!SITEMAP_PARAM_NON_CACHABLE_NAMES.contains(name)) {
- this.addParameter(name, value.toString());
- }
- }
-
- /**
- * Set this cache key parameters, only when names that are safe in Sitemap context.
- *
- * @param sitemapParameters
- * @return this instance, for chained invokation
- */
- public ParameterCacheKey setSitemapParameters(Map<String, Object> sitemapParameters) {
- this.parameters.clear();
- for (Entry<String, Object> entry : sitemapParameters.entrySet()) {
- this.addSitemapParameter(entry.getKey(), entry.getValue());
- }
- return this;
- }
-
- /**
* {@inheritDoc}
*
* @see java.lang.Object#equals(java.lang.Object)
Modified: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/XSLTTransformer.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/XSLTTransformer.java?rev=1355254&r1=1355253&r2=1355254&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/XSLTTransformer.java (original)
+++ cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/component/XSLTTransformer.java Fri Jun 29 07:47:46 2012
@@ -264,7 +264,7 @@ public class XSLTTransformer extends Abs
final CompoundCacheKey cacheKey = new CompoundCacheKey();
cacheKey.addCacheKey(new TimestampCacheKey(this.source, URLUtils.getLastModified(this.source)));
- cacheKey.addCacheKey(new ParameterCacheKey().setSitemapParameters(this.parameters));
+ cacheKey.addCacheKey(ParameterCacheKey.getSitemapSafeInstance(this.parameters));
return cacheKey;
}
Modified: cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateGenerator.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateGenerator.java?rev=1355254&r1=1355253&r2=1355254&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateGenerator.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateGenerator.java Fri Jun 29 07:47:46 2012
@@ -97,7 +97,7 @@ public class StringTemplateGenerator ext
final CompoundCacheKey cacheKey = new CompoundCacheKey();
cacheKey.addCacheKey(new TimestampCacheKey(this.url, URLUtils.getLastModified(this.url)));
- cacheKey.addCacheKey(new ParameterCacheKey().setSitemapParameters(this.parameters));
+ cacheKey.addCacheKey(ParameterCacheKey.getSitemapSafeInstance(this.parameters));
return cacheKey;
}
Modified: cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateTransformer.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateTransformer.java?rev=1355254&r1=1355253&r2=1355254&view=diff
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateTransformer.java (original)
+++ cocoon/cocoon3/trunk/cocoon-stringtemplate/src/main/java/org/apache/cocoon/stringtemplate/StringTemplateTransformer.java Fri Jun 29 07:47:46 2012
@@ -45,7 +45,7 @@ public class StringTemplateTransformer e
@Override
public CacheKey constructCacheKey() {
- return new ParameterCacheKey().setSitemapParameters(this.parameters);
+ return ParameterCacheKey.getSitemapSafeInstance(this.parameters);
}
@Override