This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
The following commit(s) were added to refs/heads/master by this push: new 9c4307ed [MSITE-872] Set content type on Doxia output 9c4307ed is described below commit 9c4307ed21dcbb55b4e76327552a8a2945dc9d1a Author: Michael Osipov <micha...@apache.org> AuthorDate: Sat Feb 11 14:44:45 2023 +0100 [MSITE-872] Set content type on Doxia output --- pom.xml | 6 ++++++ .../org/apache/maven/plugins/site/run/DoxiaFilter.java | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 3724088c..8c001292 100644 --- a/pom.xml +++ b/pom.xml @@ -420,6 +420,12 @@ under the License. <version>${jettyVersion}</version> </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-http</artifactId> + <version>${jettyVersion}</version> + </dependency> + <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-servlet</artifactId> diff --git a/src/main/java/org/apache/maven/plugins/site/run/DoxiaFilter.java b/src/main/java/org/apache/maven/plugins/site/run/DoxiaFilter.java index 96725bf6..a2bfd594 100644 --- a/src/main/java/org/apache/maven/plugins/site/run/DoxiaFilter.java +++ b/src/main/java/org/apache/maven/plugins/site/run/DoxiaFilter.java @@ -41,6 +41,7 @@ import org.apache.maven.doxia.siterenderer.Renderer; import org.apache.maven.doxia.siterenderer.RendererException; import org.apache.maven.doxia.siterenderer.SiteRenderingContext; import org.apache.maven.plugins.site.render.ReportDocumentRenderer; +import org.eclipse.jetty.http.MimeTypes; import static org.apache.maven.shared.utils.logging.MessageUtils.buffer; @@ -140,13 +141,21 @@ public class DoxiaFilter implements Filter { try { DocumentRenderer renderer = documents.get(path); logDocumentRenderer(path, renderer); + String outputName = renderer.getOutputName(); + String contentType = MimeTypes.getDefaultMimeByExtension(outputName); + if (contentType != null) { + servletResponse.setContentType(contentType); + } renderer.renderDocument(servletResponse.getWriter(), siteRenderer, context); if (renderer instanceof ReportDocumentRenderer) { ReportDocumentRenderer reportDocumentRenderer = (ReportDocumentRenderer) renderer; if (reportDocumentRenderer.isExternalReport()) { - Path externalReportFile = outputDirectory.toPath().resolve(renderer.getOutputName()); + Path externalReportFile = outputDirectory.toPath().resolve(outputName); servletResponse.reset(); + if (contentType != null) { + servletResponse.setContentType(contentType); + } Files.copy(externalReportFile, servletResponse.getOutputStream()); } } @@ -163,6 +172,11 @@ public class DoxiaFilter implements Filter { if (locateDocuments.containsKey(path)) { DocumentRenderer renderer = locateDocuments.get(path); logDocumentRenderer(path, renderer); + String outputName = renderer.getOutputName(); + String contentType = MimeTypes.getDefaultMimeByExtension(outputName); + if (contentType != null) { + servletResponse.setContentType(contentType); + } renderer.renderDocument(servletResponse.getWriter(), siteRenderer, generatedSiteContext); return; @@ -173,8 +187,6 @@ public class DoxiaFilter implements Filter { } filterChain.doFilter(servletRequest, servletResponse); - - servletContext.log(path); } private void logDocumentRenderer(String path, DocumentRenderer renderer) {