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


Reply via email to