You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by li...@apache.org on 2008/03/19 00:24:07 UTC

svn commit: r638634 - in /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http: GadgetRenderer.java HttpUtil.java JsServlet.java

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



Re: svn commit: r638634 - in /incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http: GadgetRenderer.java HttpUtil.java JsServlet.java

Posted by Kevin Brown <et...@google.com>.
On Tue, Mar 18, 2008 at 4:24 PM, <li...@apache.org> wrote:

> 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


Why not just not call it in that case? If you make it send Pragma: no-cache
on the other hand, that would make sense.


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


-- 
~Kevin