Honor project specific MIME types when getting formatter
Projects are allowed to map files to specific MIME types using
configuration settings stored inside of project.config
Change-Id: Ide82fea14d2b3d6b24ff09968022a8624ffc8aca
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
index faa2160..0bf1150 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/formatter/Formatters.java
@@ -22,10 +22,12 @@
import static com.googlesource.gerrit.plugins.xdocs.XDocGlobalConfig.KEY_PRIO;
import static com.googlesource.gerrit.plugins.xdocs.XDocGlobalConfig.SECTION_FORMATTER;
+import com.google.gerrit.common.data.PatchScript.FileMode;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.registration.DynamicMap;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.server.mime.FileTypeRegistry;
+import com.google.gerrit.server.change.FileContentUtil;
import com.google.gerrit.server.config.PluginConfigFactory;
import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectState;
@@ -83,6 +85,8 @@
XDocGlobalConfig globalCfg = new XDocGlobalConfig(
pluginCfgFactory.getGlobalPluginConfig(pluginName));
MimeType mimeType = fileTypeRegistry.getMimeType(fileName, null);
+ mimeType = new MimeType(FileContentUtil.resolveContentType(
+ project, fileName, FileMode.FILE, mimeType.toString()));
String extension = FilenameUtils.getExtension(fileName);
FormatterProvider formatter = null;
int formatterPrio = 0;