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