You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/09/11 18:48:38 UTC

svn commit: r996169 - in /wicket/trunk: wicket-request/src/main/java/org/apache/wicket/request/http/ wicket/src/main/java/org/apache/wicket/protocol/http/ wicket/src/main/java/org/apache/wicket/request/resource/

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;