Author: lindner
Date: Tue Mar 18 16:24:06 2008
New Revision: 638634
URL: http://svn.apache.org/viewvc?rev=638634&view=rev
Log:
Small refactor of cache control headers.
* Add new setCachingHeaders() method for setting default cache headers
* Change semantics, passing 0 ttl means no-cache
* If a nocache header is available, set ttl to 0
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpUtil.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java?rev=638634&r1=638633&r2=638634&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/GadgetRenderer.java
Tue Mar 18 16:24:06 2008
@@ -40,6 +40,7 @@
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
@@ -179,9 +180,7 @@
if (forcedLibs.trim().length() == 0) {
libs.add("core");
} else {
- for (String lib : forcedLibs.split(":")) {
- libs.add(lib);
- }
+ libs.addAll(Arrays.asList(forcedLibs.split(":")));
}
}
@@ -254,6 +253,8 @@
.append("</body></html>");
if (request.getParameter("v") != null) {
// Versioned files get cached indefinitely
+ HttpUtil.setCachingHeaders(response);
+ } else if ("1".equals(request.getParameter("nocache"))) {
HttpUtil.setCachingHeaders(response, 0);
} else {
// Unversioned files get cached for 5 minutes.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpUtil.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpUtil.java?rev=638634&r1=638633&r2=638634&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpUtil.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpUtil.java
Tue Mar 18 16:24:06 2008
@@ -38,19 +38,24 @@
private static final int DEFAULT_TTL = 60 * 60 * 24 * 365;
/**
+ * Sets default caching Headers (Expires, Cache-Control, Last-Modified)
+ *
+ * @param response The HTTP response
+ */
+ public static void setCachingHeaders(HttpServletResponse response) {
+ setCachingHeaders(response, DEFAULT_TTL);
+ }
+
+ /**
* Sets HTTP headers that instruct the browser to cache indefinitely.
* Implementations should take care to use cache-busting techniques on the
* url.
*
* @param response The HTTP response
- * @param ttl The time to cache for, in seconds. If 0, DEFAULT_TTL will
- * be used.
+ * @param ttl The time to cache for, in seconds. If 0, then insure that
+ * this object is not cached.
*/
public static void setCachingHeaders(HttpServletResponse response, int ttl) {
- if (ttl == 0) {
- ttl = DEFAULT_TTL;
- }
-
response.setDateHeader("Expires",
System.currentTimeMillis() + (1000L * ttl));
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java?rev=638634&r1=638633&r2=638634&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java
Tue Mar 18 16:24:06 2008
@@ -116,7 +116,7 @@
if (req.getParameter("v") != null) {
// Versioned files get cached indefinitely
- HttpUtil.setCachingHeaders(resp, 0);
+ HttpUtil.setCachingHeaders(resp);
} else {
// Unversioned files get cached for 1 hour.
HttpUtil.setCachingHeaders(resp, 60 * 60);