From 9951ffbead909c537b6c76aec1ba17425222f5fe Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 04 Sep 2014 13:13:11 -0400
Subject: [PATCH] Merged #148 "Do not stamp raw servlet responses with cache-control headers"

---
 src/main/java/com/gitblit/servlet/RawServlet.java   |   10 +++-------
 src/main/java/com/gitblit/servlet/PagesServlet.java |   27 +++++++++++++++++++++++++++
 2 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/gitblit/servlet/PagesServlet.java b/src/main/java/com/gitblit/servlet/PagesServlet.java
index f578f86..a8e8341 100644
--- a/src/main/java/com/gitblit/servlet/PagesServlet.java
+++ b/src/main/java/com/gitblit/servlet/PagesServlet.java
@@ -15,10 +15,19 @@
  */
 package com.gitblit.servlet;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.revwalk.RevCommit;
+
 import com.gitblit.Constants;
+import com.gitblit.utils.JGitUtils;
 
 /**
  * Serves the content of a gh-pages branch.
@@ -73,4 +82,22 @@
 	protected void setContentType(HttpServletResponse response, String contentType) {
 		response.setContentType(contentType);;
 	}
+
+	@Override
+	protected void streamFromRepo(HttpServletResponse response, Repository repository,
+			RevCommit commit, String requestedPath) throws IOException {
+
+		response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());
+		response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
+
+		super.streamFromRepo(response, repository, commit, requestedPath);
+	}
+
+	@Override
+	protected void sendContent(HttpServletResponse response, Date date, InputStream is) throws ServletException, IOException {
+		response.setDateHeader("Last-Modified", date.getTime());
+		response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
+
+		super.sendContent(response, date, is);
+	}
 }
diff --git a/src/main/java/com/gitblit/servlet/RawServlet.java b/src/main/java/com/gitblit/servlet/RawServlet.java
index a9e5820..30d33fd 100644
--- a/src/main/java/com/gitblit/servlet/RawServlet.java
+++ b/src/main/java/com/gitblit/servlet/RawServlet.java
@@ -421,11 +421,8 @@
 		}
 	}
 
-	private void streamFromRepo(HttpServletResponse response, Repository repository,
+	protected void streamFromRepo(HttpServletResponse response, Repository repository,
 			RevCommit commit, String requestedPath) throws IOException {
-
-		response.setDateHeader("Last-Modified", JGitUtils.getCommitDate(commit).getTime());
-		response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
 
 		RevWalk rw = new RevWalk(repository);
 		TreeWalk tw = new TreeWalk(repository);
@@ -457,9 +454,8 @@
 		response.flushBuffer();
 	}
 
-	private void sendContent(HttpServletResponse response, Date date, InputStream is) throws ServletException, IOException {
-		response.setDateHeader("Last-Modified", date.getTime());
-		response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate");
+	protected void sendContent(HttpServletResponse response, Date date, InputStream is) throws ServletException, IOException {
+
 		try {
 			byte[] tmp = new byte[8192];
 			int len = 0;

--
Gitblit v1.9.1