From 6b76d4fb30104f08a7c6b33d7cf05fb71179f6de Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 04 Sep 2014 14:20:28 -0400 Subject: [PATCH] Merge branch 'ticket/151' into develop --- src/main/java/com/gitblit/servlet/RawServlet.java | 41 +++++++++++++++++++---------------------- 1 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RawServlet.java b/src/main/java/com/gitblit/servlet/RawServlet.java index 6e93307..0ae9155 100644 --- a/src/main/java/com/gitblit/servlet/RawServlet.java +++ b/src/main/java/com/gitblit/servlet/RawServlet.java @@ -28,8 +28,11 @@ import java.util.Map; import java.util.TreeMap; +import com.google.inject.Inject; +import com.google.inject.Singleton; import javax.servlet.ServletContext; import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -48,7 +51,6 @@ import com.gitblit.Constants; import com.gitblit.Keys; -import com.gitblit.dagger.DaggerServlet; import com.gitblit.manager.IRepositoryManager; import com.gitblit.manager.IRuntimeManager; import com.gitblit.models.PathModel; @@ -57,28 +59,30 @@ import com.gitblit.utils.MarkdownUtils; import com.gitblit.utils.StringUtils; -import dagger.ObjectGraph; - /** * Serves the content of a branch. * * @author James Moger * */ -public class RawServlet extends DaggerServlet { +@Singleton +public class RawServlet extends HttpServlet { private static final long serialVersionUID = 1L; private transient Logger logger = LoggerFactory.getLogger(RawServlet.class); - private IRuntimeManager runtimeManager; + private final IRuntimeManager runtimeManager; - private IRepositoryManager repositoryManager; + private final IRepositoryManager repositoryManager; - @Override - protected void inject(ObjectGraph dagger) { - this.runtimeManager = dagger.get(IRuntimeManager.class); - this.repositoryManager = dagger.get(IRepositoryManager.class); + @Inject + public RawServlet( + IRuntimeManager runtimeManager, + IRepositoryManager repositoryManager) { + + this.runtimeManager = runtimeManager; + this.repositoryManager = repositoryManager; } /** @@ -106,10 +110,6 @@ String encodedPath = path == null ? "" : path.replace(' ', '-'); encodedPath = encodedPath.replace('/', fsc); - try { - encodedPath = URLEncoder.encode(encodedPath, "UTF-8"); - } catch (UnsupportedEncodingException e) { - } return baseURL + Constants.RAW_PATH + repository + "/" + (branch == null ? "" : (branch + "/" + (path == null ? "" : encodedPath))); } @@ -134,7 +134,8 @@ if (path.endsWith("/")) { path = path.substring(0, path.length() - 1); } - return path; + char c = runtimeManager.getSettings().getChar(Keys.web.forwardSlashCharacter, '/'); + return path.replace('!', '/').replace(c, '/'); } protected boolean renderIndex() { @@ -424,11 +425,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); @@ -460,9 +458,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