You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2023/01/14 23:57:05 UTC
[maven-site-plugin] 01/01: [MSITE-220] site:run mojo will not display Javadoc or JXR report results
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch MSITE-220
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git
commit 9132b3c74770667b619c156b20432d26430555bc
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun Jan 15 00:56:48 2023 +0100
[MSITE-220] site:run mojo will not display Javadoc or JXR report results
This closes #122
---
.../apache/maven/plugins/site/run/DoxiaFilter.java | 20 ++++++++++++--------
.../apache/maven/plugins/site/run/SiteRunMojo.java | 4 +++-
2 files changed, 15 insertions(+), 9 deletions(-)
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 7a11e2a8..8853984e 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
@@ -37,7 +37,10 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
+import java.io.File;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -50,6 +53,8 @@ import java.util.Map;
public class DoxiaFilter
implements Filter
{
+ public static final String OUTPUT_DIRECTORY_KEY = "outputDirectory";
+
public static final String SITE_RENDERER_KEY = "siteRenderer";
public static final String I18N_DOXIA_CONTEXTS_KEY = "i18nDoxiaContexts";
@@ -58,6 +63,8 @@ public class DoxiaFilter
private ServletContext servletContext;
+ private File outputDirectory;
+
private Renderer siteRenderer;
private Map<String, DoxiaBean> i18nDoxiaContexts;
@@ -72,6 +79,8 @@ public class DoxiaFilter
{
servletContext = filterConfig.getServletContext();
+ outputDirectory = (File) servletContext.getAttribute( OUTPUT_DIRECTORY_KEY );
+
siteRenderer = (Renderer) servletContext.getAttribute( SITE_RENDERER_KEY );
i18nDoxiaContexts = (Map<String, DoxiaBean>) servletContext.getAttribute( I18N_DOXIA_CONTEXTS_KEY );
@@ -154,14 +163,9 @@ public class DoxiaFilter
ReportDocumentRenderer reportDocumentRenderer = (ReportDocumentRenderer) renderer;
if ( reportDocumentRenderer.isExternalReport() )
{
- try
- {
- filterChain.doFilter( servletRequest, servletResponse );
- }
- catch ( Exception e )
- {
- throw new ServletException( e );
- }
+ Path externalReportFile = outputDirectory.toPath().resolve( renderer.getOutputName() );
+ servletResponse.reset();
+ Files.copy( externalReportFile, servletResponse.getOutputStream() );
}
}
diff --git a/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java b/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
index 811e791a..e324a2fd 100644
--- a/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
+++ b/src/main/java/org/apache/maven/plugins/site/run/SiteRunMojo.java
@@ -25,6 +25,7 @@ import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.plugins.site.render.AbstractSiteRenderingMojo;
import org.apache.maven.reporting.exec.MavenReportExecution;
import org.codehaus.plexus.util.IOUtil;
@@ -49,7 +50,7 @@ import java.util.Map;
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
*
*/
-@Mojo( name = "run", aggregator = true, requiresReports = true )
+@Mojo( name = "run", requiresDependencyResolution = ResolutionScope.TEST, requiresReports = true )
public class SiteRunMojo
extends AbstractSiteRenderingMojo
{
@@ -122,6 +123,7 @@ public class SiteRunMojo
WebAppContext webapp = new WebAppContext();
webapp.setContextPath( "/" );
webapp.setResourceBase( tempWebappDirectory.getAbsolutePath() );
+ webapp.setAttribute( DoxiaFilter.OUTPUT_DIRECTORY_KEY, tempWebappDirectory );
webapp.setAttribute( DoxiaFilter.SITE_RENDERER_KEY, siteRenderer );
webapp.getInitParams().put( "org.mortbay.jetty.servlet.Default.useFileMappedBuffer", "false" );