[jboss-svn-commits] JBL Code SVN: r15980 - labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 22 09:46:07 EDT 2007


Author: adamw
Date: 2007-10-22 09:46:07 -0400 (Mon, 22 Oct 2007)
New Revision: 15980

Modified:
   labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessServlet.java
Log:
Browser cache support in file-access

Modified: labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessServlet.java
===================================================================
--- labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessServlet.java	2007-10-22 07:43:02 UTC (rev 15979)
+++ labs/shotoku/trunk/shotoku-file-access/src/java/org/jboss/shotoku/fileaccess/FileAccessServlet.java	2007-10-22 13:46:07 UTC (rev 15980)
@@ -13,6 +13,7 @@
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.util.Enumeration;
 
 /**
  * A filter that enables to download files which are stored in a working copy of
@@ -99,8 +100,30 @@
                 }
             }
 
+            /*System.out.println("REQUEST FOR A SHOTOKU NODE: " + path);
+            Enumeration headers = request.getHeaderNames();
+            while (headers.hasMoreElements()) {
+            	String header = headers.nextElement().toString();
+            	System.out.println(header + " = " + request.getHeader(header));
+            }
+            System.out.println("-----");*/
+            
             if (ci == null) {
                 Node requestedNode = contentManager.getNode(path);
+
+                long ifModifiedSince = request.getDateHeader("If-modified-since");
+                long nodeLastMod = requestedNode.getLastModification();
+                if (ifModifiedSince != -1 && ifModifiedSince == nodeLastMod) {
+                	response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+                	response.setContentLength(0);
+                	response.setContentType(requestedNode.getMimeType());
+                	
+                	return;
+                }
+                
+                response.setDateHeader("Last-Modified", requestedNode.getLastModification());
+                response.setDateHeader("Expires", requestedNode.getLastModification()+1);
+
                 ci = new ContentInformation(requestedNode.getMimeType(),
                         requestedNode.getLength(),
                         requestedNode.getContentInputStream());




More information about the jboss-svn-commits mailing list