Author: etnu
Date: Fri Jan 18 02:11:39 2008
New Revision: 613121
URL: http://svn.apache.org/viewvc?rev=613121&view=rev
Log:
Included missing file from last update
Modified:
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/JsServlet.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/JsServlet.java?rev=613121&r1=613120&r2=613121&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
Fri Jan 18 02:11:39 2008
@@ -101,7 +101,6 @@
JsLibraryFeatureFactory jsLib = (JsLibraryFeatureFactory)feature;
for (JsLibrary lib : jsLib.getLibraries(context)) {
// TODO: type url js files fail here.
- // TODO: resolve dependencies correctly.
if (lib.getType() != JsLibrary.Type.URL) {
jsData.append(lib.getContent());
}
@@ -116,12 +115,25 @@
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
-
+ setCachingHeaders(resp);
resp.setContentType("text/javascript");
resp.setContentLength(jsData.length());
resp.getOutputStream().write(jsData.toString().getBytes());
} else {
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
+ }
+
+ /**
+ * 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
+ */
+ private void setCachingHeaders(HttpServletResponse response) {
+ response.setHeader("Cache-Control", "public,max-age=2592000");
+ response.setDateHeader("Expires", System.currentTimeMillis()
+ + 2592000000L);
}
}