From cacf8bff097fbb66a7be1bfe267b5da2605145f8 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 29 Nov 2013 11:05:46 -0500 Subject: [PATCH] Use Dagger to inject managers into all filters and servlets --- src/main/java/com/gitblit/LogoServlet.java | 32 +++++++++++++++++++++----------- 1 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gitblit/LogoServlet.java b/src/main/java/com/gitblit/LogoServlet.java index c8820ed..17b05cf 100644 --- a/src/main/java/com/gitblit/LogoServlet.java +++ b/src/main/java/com/gitblit/LogoServlet.java @@ -21,45 +21,54 @@ import java.io.InputStream; import java.io.OutputStream; +import javax.inject.Inject; +import javax.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; +import com.gitblit.manager.IRuntimeManager; + /** * Handles requests for logo.png - * + * * @author James Moger - * + * */ +@Singleton public class LogoServlet extends HttpServlet { - + private static final long serialVersionUID = 1L; - + private static final long lastModified = System.currentTimeMillis(); - public LogoServlet() { + private final IRuntimeManager runtimeManager; + + @Inject + public LogoServlet(IRuntimeManager runtimeManager) { super(); + this.runtimeManager = runtimeManager; } - + @Override protected long getLastModified(HttpServletRequest req) { - File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png"); + File file = runtimeManager.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png"); if (file.exists()) { return Math.max(lastModified, file.lastModified()); } else { return lastModified; } } - + @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { InputStream is = null; try { String contentType = null; - File file = GitBlit.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png"); + File file = runtimeManager.getFileOrFolder(Keys.web.headerLogo, "${baseFolder}/logo.png"); if (file.exists()) { // custom logo ServletContext context = request.getSession().getServletContext(); @@ -71,11 +80,12 @@ // default logo response.setDateHeader("Last-Modified", lastModified); is = getClass().getResourceAsStream("/logo.png"); - } + } if (contentType == null) { contentType = "image/png"; } response.setContentType(contentType); + response.setHeader("Cache-Control", "public, max-age=3600, must-revalidate"); OutputStream os = response.getOutputStream(); byte[] buf = new byte[4096]; int bytesRead = is.read(buf); @@ -87,7 +97,7 @@ } catch (Exception e) { e.printStackTrace(); } finally { - if(is != null) { + if (is != null) { is.close(); } } -- Gitblit v1.9.1