Author: pete
Date: Sat Sep 11 12:07:39 2010
New Revision: 996130
URL: http://svn.apache.org/viewvc?rev=996130&view=rev
Log:
respect RFC-2616 which says you should not cache resources longer than one year
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/settings/IResourceSettings.java
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
Modified:
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java?rev=996130&r1=996129&r2=996130&view=diff
==============================================================================
---
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
(original)
+++
wicket/trunk/wicket-extensions/src/main/java/org/apache/wicket/extensions/captcha/kittens/KittenCaptchaPanel.java
Sat Sep 11 12:07:39 2010
@@ -392,7 +392,7 @@ public class KittenCaptchaPanel extends
protected void configureResponse(ResourceResponse response,
Attributes attributes)
{
super.configureResponse(response, attributes);
-
response.setCacheDuration(RequestUtils.MAX_CACHE_DURATION);
+ response.setCacheDuration(Integer.MAX_VALUE);
}
/**
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java?rev=996130&r1=996129&r2=996130&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/RequestUtils.java
Sat Sep 11 12:07:39 2010
@@ -36,7 +36,8 @@ import org.apache.wicket.util.string.Str
*/
public final class RequestUtils
{
- public static final int MAX_CACHE_DURATION = 60 * 60 * 24 * 365; // one
year, maximum recommended cache duration
+ // one year, maximum recommended cache duration in RFC-2616
+ public static final int MAX_CACHE_DURATION = 60 * 60 * 24 * 365;
/**
* Decode the provided queryString as a series of key/ value pairs and
set them in the provided
@@ -303,6 +304,7 @@ public final class RequestUtils
* response that should be cacheable
* @param duration
* duration in seconds that the response may be cached
+ * (Integer.MAX_VALUE will select maximum duration based on
RFC-2616)
* @param cachePublic
* If <code>true</code> all caches are allowed to cache the
response.
* If <code>false</code> only the client may cache the
response (if at all).
@@ -316,6 +318,10 @@ public final class RequestUtils
if(duration < 0)
throw new IllegalArgumentException("duration must be a
positive value");
+ // do not exceed the maximum recommended value from RFC-2616
+ if(duration > MAX_CACHE_DURATION)
+ duration = MAX_CACHE_DURATION;
+
// Get current time
long now = System.currentTimeMillis();
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java?rev=996130&r1=996129&r2=996130&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java
Sat Sep 11 12:07:39 2010
@@ -211,7 +211,7 @@ public class PackageResource extends Abs
// if timestamps are enabled on resource we can maximize
caching with no pain
if(Application.get().getResourceSettings().getUseTimestampOnResources())
{
-
resourceResponse.setCacheDuration(RequestUtils.MAX_CACHE_DURATION);
+ resourceResponse.setCacheDuration(Integer.MAX_VALUE);
resourceResponse.setCachePublic(true);
}
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/settings/IResourceSettings.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/settings/IResourceSettings.java?rev=996130&r1=996129&r2=996130&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/settings/IResourceSettings.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/settings/IResourceSettings.java
Sat Sep 11 12:07:39 2010
@@ -214,7 +214,10 @@ public interface IResourceSettings
/**
* Set the the default cache duration for WebResource.
- *
+ * <p/>
+ * Setting <code>duration = Integer.MAX_VALUE</code> will select the
largest recommended value
+ * based on RFC-2616 which actually is one year.
+ *
* @param defaultDuration
* default cache duration in seconds
*/
Modified:
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java?rev=996130&r1=996129&r2=996130&view=diff
==============================================================================
---
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
(original)
+++
wicket/trunk/wicket/src/test/java/org/apache/wicket/protocol/http/WicketFilterTest.java
Sat Sep 11 12:07:39 2010
@@ -99,7 +99,7 @@ public class WicketFilterTest extends Te
protected ResourceResponse
newResourceResponse(Attributes attributes)
{
ResourceResponse response =
super.newResourceResponse(attributes);
-
response.setCacheDuration(RequestUtils.MAX_CACHE_DURATION);
+
response.setCacheDuration(Integer.MAX_VALUE);
return response;
}
};