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 <[email protected]>
Authored: Wed Aug 7 14:24:57 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
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);
                }
        }

Reply via email to