James Moger
2013-11-20 aa6d43e8b28ff73d69a920e9b3a7b284cfce00c3
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,7 +80,7 @@
            // default logo
            response.setDateHeader("Last-Modified", lastModified);
            is = getClass().getResourceAsStream("/logo.png");
         }
         }
         if (contentType == null) {
            contentType = "image/png";
         }
@@ -88,7 +97,7 @@
      } catch (Exception e) {
         e.printStackTrace();
      } finally {
         if(is != null) {
         if (is != null) {
            is.close();
         }
      }