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
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.