Author: pete
Date: Sat Sep 11 16:48:37 2010
New Revision: 996169

URL: http://svn.apache.org/viewvc?rev=996169&view=rev
Log:
use enum for different caching scopes on WebResponse

Modified:
    
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.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/AbstractResource.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/PackageResource.java

Modified: 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java?rev=996169&r1=996168&r2=996169&view=diff
==============================================================================
--- 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
 (original)
+++ 
wicket/trunk/wicket-request/src/main/java/org/apache/wicket/request/http/WebResponse.java
 Sat Sep 11 16:48:37 2010
@@ -155,4 +155,26 @@ public abstract class WebResponse extend
         * Flushes the response.
         */
        public abstract void flush();
+
+       /**
+        * scope for cache entries when caching is enabled
+        */
+       public enum CacheScope
+       {
+               PUBLIC("public"),
+               PRIVATE("private");
+
+               // value for Cache-Control header
+               private final String cacheControl;
+
+               CacheScope(String cacheControl)
+               {
+                       this.cacheControl = cacheControl;
+               }
+
+               public String getCacheControl()
+               {
+                       return cacheControl;
+               }
+       }
 }

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=996169&r1=996168&r2=996169&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 16:48:37 2010
@@ -312,7 +312,7 @@ public final class RequestUtils
         *
         * @see RequestUtils#MAX_CACHE_DURATION
         */
-       public static void enableCaching(WebResponse response, Duration 
duration, boolean cachePublic)
+       public static void enableCaching(WebResponse response, Duration 
duration, WebResponse.CacheScope scope)
        {
                Args.notNull(duration, "duration");
                Args.notNull(response, "response");
@@ -330,11 +330,8 @@ public final class RequestUtils
                // Time for cache expiry = now + duration
                response.setDateHeader("Expires", now + 
duration.getMilliseconds());
 
-               // Set caching scope
-               String scope = cachePublic ? "public" : "private";
-
                // Enable caching and set max age
-               response.setHeader("Cache-Control", scope + ", max-age=" + 
duration.getMilliseconds());
+               response.setHeader("Cache-Control", scope.getCacheControl() + 
", max-age=" + duration.getMilliseconds());
 
                // Let caches distinguish between compressed and uncompressed
                // versions of the resource so they can serve them properly

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java?rev=996169&r1=996168&r2=996169&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/request/resource/AbstractResource.java
 Sat Sep 11 16:48:37 2010
@@ -77,7 +77,7 @@ public abstract class AbstractResource i
                private Date lastModified = null;
                private WriteCallback writeCallback;
                private Duration cacheDuration;
-               private boolean cachePublic;
+               private WebResponse.CacheScope cacheScope;
 
                /**
                 * Construct.
@@ -89,7 +89,7 @@ public abstract class AbstractResource i
                        // set caching on public caches to false. this behavior 
is similar to wicket 1.4
                        // setting it to [true] seems to be sexy but could 
potentially cache confidential
                        // data on public proxies for users migrating to 1.5
-                       cachePublic = false;
+                       cacheScope = WebResponse.CacheScope.PRIVATE;
                }
 
                /**
@@ -340,11 +340,11 @@ public abstract class AbstractResource i
                 * @return <code>true</code> if public caches are allowed to 
cache the resource
                 *
                 * @see 
org.apache.wicket.request.resource.AbstractResource.ResourceResponse#getCacheDuration()
-                * @see 
org.apache.wicket.protocol.http.RequestUtils#enableCaching(org.apache.wicket.request.http.WebResponse,
 org.apache.wicket.util.time.Duration, boolean)
+                * @see 
org.apache.wicket.protocol.http.RequestUtils#enableCaching(org.apache.wicket.request.http.WebResponse,
 org.apache.wicket.util.time.Duration, 
org.apache.wicket.request.http.WebResponse.CacheScope)
                 */
-               public boolean isCachePublic()
+               public WebResponse.CacheScope getCacheScope()
                {
-                       return cachePublic;
+                       return cacheScope;
                }
 
                /**
@@ -352,15 +352,15 @@ public abstract class AbstractResource i
                 * <p/>
                 * resources are only cached at all if the cache duration for 
the response is > 0.
                 *
-                * @param cachePublic
+                * @param cacheScope
                 *             if <code>true</code> public caches are allowed 
to cache the resource
                 *
                 * @see 
org.apache.wicket.request.resource.AbstractResource.ResourceResponse#getCacheDuration()
-                * @see 
org.apache.wicket.protocol.http.RequestUtils#enableCaching(org.apache.wicket.request.http.WebResponse,
 org.apache.wicket.util.time.Duration, boolean)
+                * @see 
org.apache.wicket.protocol.http.RequestUtils#enableCaching(org.apache.wicket.request.http.WebResponse,
 org.apache.wicket.util.time.Duration, 
org.apache.wicket.request.http.WebResponse.CacheScope)
                 */
-               public void setCachePublic(boolean cachePublic)
+               public void setCacheScope(WebResponse.CacheScope cacheScope)
                {
-                       this.cachePublic = cachePublic;
+                       this.cacheScope = cacheScope;
                }
 
                /**
@@ -408,7 +408,7 @@ public abstract class AbstractResource i
 
                if(duration.compareTo(Duration.NONE) > 0)
                {
-                       RequestUtils.enableCaching(response, duration, 
data.isCachePublic());
+                       RequestUtils.enableCaching(response, duration, 
data.getCacheScope());
                }
                else
                {

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=996169&r1=996168&r2=996169&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 16:48:37 2010
@@ -23,7 +23,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.ThreadContext;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.markup.html.IPackageResourceGuard;
-import org.apache.wicket.protocol.http.RequestUtils;
+import org.apache.wicket.request.http.WebResponse;
 import org.apache.wicket.util.io.IOUtils;
 import org.apache.wicket.util.lang.Packages;
 import org.apache.wicket.util.lang.WicketObjects;
@@ -212,7 +212,7 @@ public class PackageResource extends Abs
                
if(Application.get().getResourceSettings().getUseTimestampOnResources())
                {
                        resourceResponse.setCacheDurationToMaximum();
-                       resourceResponse.setCachePublic(true);
+                       
resourceResponse.setCacheScope(WebResponse.CacheScope.PUBLIC);
                }
 
                return resourceResponse;


Reply via email to