Honor project specific MIME types Projects are allowed to map files to specific MIME types using configuration settings stored inside of project.config. Change-Id: Ice78834b440ef1dc88c08749d780569c64a7fc5b Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java index 1170a34..436bdc0 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java +++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocServlet.java
@@ -23,6 +23,7 @@ import com.google.common.hash.Hasher; import com.google.common.hash.Hashing; import com.google.common.net.HttpHeaders; +import com.google.gerrit.common.data.PatchScript.FileMode; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.IdString; import com.google.gerrit.extensions.restapi.MethodNotAllowedException; @@ -32,6 +33,7 @@ import com.google.gerrit.reviewdb.client.Project; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.FileTypeRegistry; +import com.google.gerrit.server.change.FileContentUtil; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.project.GetHead; import com.google.gerrit.server.project.NoSuchProjectException; @@ -122,6 +124,8 @@ } MimeType mimeType = fileTypeRegistry.getMimeType(key.file, null); + mimeType = new MimeType(FileContentUtil.resolveContentType( + state, key.file, FileMode.FILE, mimeType.toString())); FormatterProvider formatter = getFormatter(req, key); if (formatter == null && !isSafeImage(mimeType)) { throw new ResourceNotFoundException();