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;
                                }
                        };


Reply via email to