From 4dfbfdd4681cfad922725f8989450c24eaed64f5 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gmail.com> Date: Wed, 08 Jul 2015 07:40:20 -0400 Subject: [PATCH] Merge pull request #287 from mrjoel/mrjoel-sortprojectlist --- src/main/java/com/gitblit/servlet/RawServlet.java | 26 ++++++++++++++++++++++---- 1 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RawServlet.java b/src/main/java/com/gitblit/servlet/RawServlet.java index dac38f3..1d2724b 100644 --- a/src/main/java/com/gitblit/servlet/RawServlet.java +++ b/src/main/java/com/gitblit/servlet/RawServlet.java @@ -24,6 +24,7 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -228,15 +229,32 @@ return; } + Map<String, String> quickContentTypes = new HashMap<>(); + quickContentTypes.put("html", "text/html"); + quickContentTypes.put("htm", "text/html"); + quickContentTypes.put("xml", "application/xml"); + quickContentTypes.put("json", "application/json"); List<PathModel> pathEntries = JGitUtils.getFilesInPath(r, requestedPath, commit); if (pathEntries.isEmpty()) { // requested a specific resource String file = StringUtils.getLastPathElement(requestedPath); try { - // query Tika for the content type - Tika tika = new Tika(); - String contentType = tika.detect(file); + + String ext = StringUtils.getFileExtension(file).toLowerCase(); + String contentType = quickContentTypes.get(ext); + + if (contentType == null) { + List<String> exts = runtimeManager.getSettings().getStrings(Keys.web.prettyPrintExtensions); + if (exts.contains(ext)) { + // extension is a registered text type for pretty printing + contentType = "text/plain"; + } else { + // query Tika for the content type + Tika tika = new Tika(); + contentType = tika.detect(file); + } + } if (contentType == null) { // ask the container for the content type @@ -450,7 +468,7 @@ served = true; } } finally { - tw.release(); + tw.close(); rw.dispose(); } -- Gitblit v1.9.1