You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/08/07 14:25:23 UTC
git commit: WICKET-5307 Export resources' version cache attribute as
request cycle metadata
Updated Branches:
refs/heads/wicket-6.x 38be164ea -> b3f359665
WICKET-5307 Export resources' version cache attribute as request cycle metadata
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b3f35966
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b3f35966
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b3f35966
Branch: refs/heads/wicket-6.x
Commit: b3f3596655948935ef7a0374774078cd2ac898fa
Parents: 38be164
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Aug 7 14:24:57 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Aug 7 14:24:57 2013 +0200
----------------------------------------------------------------------
.../FilenameWithVersionResourceCachingStrategy.java | 10 ++++++++++
.../resource/caching/IResourceCachingStrategy.java | 10 ++++++++++
.../QueryStringWithVersionResourceCachingStrategy.java | 11 +++++++++++
3 files changed, 31 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b3f35966/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/FilenameWithVersionResourceCachingStrategy.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/FilenameWithVersionResourceCachingStrategy.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/FilenameWithVersionResourceCachingStrategy.java
index 4da94a1..1aef857 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/FilenameWithVersionResourceCachingStrategy.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/FilenameWithVersionResourceCachingStrategy.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.request.resource.caching;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.caching.version.IResourceVersion;
@@ -175,6 +176,15 @@ public class FilenameWithVersionResourceCachingStrategy implements IResourceCach
// create filename without version string
// (required for working resource lookup)
url.setFileName(extension == null? basename : basename + extension);
+
+ // store the version in the request cycle
+ RequestCycle requestCycle = RequestCycle.get();
+ if (requestCycle != null)
+ {
+ int idx = fullname.indexOf(versionPrefix);
+ String urlVersion = fullname.substring(pos + idx + 1);
+ requestCycle.setMetaData(URL_VERSION, urlVersion);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b3f35966/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/IResourceCachingStrategy.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/IResourceCachingStrategy.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/IResourceCachingStrategy.java
index 1397067..c62a61a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/IResourceCachingStrategy.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/IResourceCachingStrategy.java
@@ -16,6 +16,7 @@
*/
package org.apache.wicket.request.resource.caching;
+import org.apache.wicket.MetaDataKey;
import org.apache.wicket.request.resource.AbstractResource;
/**
@@ -31,6 +32,15 @@ import org.apache.wicket.request.resource.AbstractResource;
*/
public interface IResourceCachingStrategy
{
+
+ /**
+ * A key used to store the extracted resource's version in
+ * {@linkplain #undecorateUrl(ResourceUrl)} into the request cycle
+ */
+ final MetaDataKey<String> URL_VERSION = new MetaDataKey<String>()
+ {
+ };
+
/**
* add caching related information to filename + parameters
*
http://git-wip-us.apache.org/repos/asf/wicket/blob/b3f35966/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/QueryStringWithVersionResourceCachingStrategy.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/QueryStringWithVersionResourceCachingStrategy.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/QueryStringWithVersionResourceCachingStrategy.java
index 34826f8..292f159 100644
--- a/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/QueryStringWithVersionResourceCachingStrategy.java
+++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/caching/QueryStringWithVersionResourceCachingStrategy.java
@@ -16,11 +16,13 @@
*/
package org.apache.wicket.request.resource.caching;
+import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.INamedParameters;
import org.apache.wicket.request.resource.AbstractResource;
import org.apache.wicket.request.resource.caching.version.IResourceVersion;
import org.apache.wicket.util.lang.Args;
+import org.apache.wicket.util.string.StringValue;
/**
* resource caching strategy that adds a version string to the query parameters of the resource
@@ -109,6 +111,15 @@ public class QueryStringWithVersionResourceCachingStrategy implements IResourceC
if (parameters != null)
{
+ // store the version in the request cycle
+ StringValue versionValue = parameters.get(versionParameter);
+ RequestCycle requestCycle = RequestCycle.get();
+ if (versionValue.isEmpty() == false && requestCycle != null)
+ {
+ requestCycle.setMetaData(URL_VERSION, versionValue.toString());
+ }
+
+ // undecorate
parameters.remove(versionParameter);
}
}