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) {

Reply via email to