This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch open-issues
in repository https://gitbox.apache.org/repos/asf/maven-site-plugin.git

commit 6a3db0f72a97c07ef140b7c10b76b955edd81685
Author: Michael Osipov <[email protected]>
AuthorDate: Sat Apr 15 22:22:55 2023 +0200

    [MSITE-956] Pass a sub mojo execution to CategorySummaryDocumentRenderer
---
 .../site/render/AbstractSiteRenderingMojo.java     | 24 +++++++++++-----------
 .../render/CategorySummaryDocumentRenderer.java    | 20 +++++++++++++++---
 2 files changed, 29 insertions(+), 15 deletions(-)

diff --git 
a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
 
b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
index 07310855..f6e2a72a 100644
--- 
a/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
+++ 
b/src/main/java/org/apache/maven/plugins/site/render/AbstractSiteRenderingMojo.java
@@ -49,7 +49,6 @@ import org.apache.maven.model.Reporting;
 import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.site.descriptor.AbstractSiteDescriptorMojo;
@@ -414,14 +413,17 @@ public abstract class AbstractSiteRenderingMojo extends 
AbstractSiteDescriptorMo
         if (categories.containsKey(MavenReport.CATEGORY_PROJECT_INFORMATION) 
&& generateProjectInfo) {
             // add "Project Information" category summary document
             List<MavenReport> categoryReports = 
categories.get(MavenReport.CATEGORY_PROJECT_INFORMATION);
-
+            MojoExecution subMojoExecution =
+                    new MojoExecution(mojoExecution.getPlugin(), 
"project-info", mojoExecution.getExecutionId());
             DocumentRenderingContext docRenderingContext = new 
DocumentRenderingContext(
-                    siteDirectory, "project-info.html", getSitePluginInfo() + 
":CategorySummaryDocumentRenderer");
+                    siteDirectory,
+                    subMojoExecution.getGoal(),
+                    subMojoExecution.getPlugin().getId() + ':' + 
subMojoExecution.getGoal());
             String title = i18n.getString("site-plugin", locale, 
"report.information.title");
             String desc1 = i18n.getString("site-plugin", locale, 
"report.information.description1");
             String desc2 = i18n.getString("site-plugin", locale, 
"report.information.description2");
             DocumentRenderer docRenderer = new CategorySummaryDocumentRenderer(
-                    docRenderingContext, title, desc1, desc2, i18n, 
categoryReports, getLog());
+                    subMojoExecution, docRenderingContext, title, desc1, 
desc2, i18n, categoryReports, getLog());
 
             String filename = docRenderer.getOutputName();
             if (!documents.containsKey(filename)) {
@@ -434,13 +436,17 @@ public abstract class AbstractSiteRenderingMojo extends 
AbstractSiteDescriptorMo
         if (categories.containsKey(MavenReport.CATEGORY_PROJECT_REPORTS)) {
             // add "Project Reports" category summary document
             List<MavenReport> categoryReports = 
categories.get(MavenReport.CATEGORY_PROJECT_REPORTS);
+            MojoExecution subMojoExecution =
+                    new MojoExecution(mojoExecution.getPlugin(), 
"project-reports", mojoExecution.getExecutionId());
             DocumentRenderingContext docRenderingContext = new 
DocumentRenderingContext(
-                    siteDirectory, "project-reports.html", getSitePluginInfo() 
+ ":CategorySummaryDocumentRenderer");
+                    siteDirectory,
+                    subMojoExecution.getGoal(),
+                    subMojoExecution.getPlugin().getId() + ':' + 
subMojoExecution.getGoal());
             String title = i18n.getString("site-plugin", locale, 
"report.project.title");
             String desc1 = i18n.getString("site-plugin", locale, 
"report.project.description1");
             String desc2 = i18n.getString("site-plugin", locale, 
"report.project.description2");
             DocumentRenderer docRenderer = new CategorySummaryDocumentRenderer(
-                    docRenderingContext, title, desc1, desc2, i18n, 
categoryReports, getLog());
+                    subMojoExecution, docRenderingContext, title, desc1, 
desc2, i18n, categoryReports, getLog());
 
             String filename = docRenderer.getOutputName();
             if (!documents.containsKey(filename)) {
@@ -452,12 +458,6 @@ public abstract class AbstractSiteRenderingMojo extends 
AbstractSiteDescriptorMo
         return documents;
     }
 
-    private String getSitePluginInfo() {
-        PluginDescriptor pluginDescriptor =
-                (PluginDescriptor) getPluginContext().get("pluginDescriptor");
-        return pluginDescriptor.getId();
-    }
-
     protected void populateReportItems(
             SiteModel siteModel, Locale locale, Map<String, MavenReport> 
reportsByOutputName) {
         for (Menu menu : siteModel.getMenus()) {
diff --git 
a/src/main/java/org/apache/maven/plugins/site/render/CategorySummaryDocumentRenderer.java
 
b/src/main/java/org/apache/maven/plugins/site/render/CategorySummaryDocumentRenderer.java
index b9080ffa..122474b5 100644
--- 
a/src/main/java/org/apache/maven/plugins/site/render/CategorySummaryDocumentRenderer.java
+++ 
b/src/main/java/org/apache/maven/plugins/site/render/CategorySummaryDocumentRenderer.java
@@ -24,12 +24,12 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.maven.doxia.siterenderer.DocumentRenderer;
 import org.apache.maven.doxia.siterenderer.DocumentRenderingContext;
 import org.apache.maven.doxia.siterenderer.RendererException;
 import org.apache.maven.doxia.siterenderer.SiteRenderer;
 import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
+import org.apache.maven.plugin.MojoExecution;
 import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.reporting.MavenReport;
 import org.codehaus.plexus.i18n.I18N;
@@ -39,9 +39,11 @@ import org.codehaus.plexus.i18n.I18N;
  *
  * @author <a href="mailto:[email protected]";>Brett Porter</a>
  */
-public class CategorySummaryDocumentRenderer implements DocumentRenderer {
+public class CategorySummaryDocumentRenderer implements 
SitePluginReportDocumentRenderer {
     private DocumentRenderingContext docRenderingContext;
 
+    private final String reportMojoInfo;
+
     private String title;
 
     private String desc1;
@@ -55,16 +57,18 @@ public class CategorySummaryDocumentRenderer implements 
DocumentRenderer {
     private final Log log;
 
     public CategorySummaryDocumentRenderer(
+            MojoExecution mojoExecution,
             DocumentRenderingContext docRenderingContext,
             String title,
             String desc1,
             String desc2,
             I18N i18n,
             List<MavenReport> categoryReports) {
-        this(docRenderingContext, title, desc1, desc2, i18n, categoryReports, 
null);
+        this(mojoExecution, docRenderingContext, title, desc1, desc2, i18n, 
categoryReports, null);
     }
 
     public CategorySummaryDocumentRenderer(
+            MojoExecution mojoExecution,
             DocumentRenderingContext docRenderingContext,
             String title,
             String desc1,
@@ -73,6 +77,11 @@ public class CategorySummaryDocumentRenderer implements 
DocumentRenderer {
             List<MavenReport> categoryReports,
             Log log) {
         this.docRenderingContext = docRenderingContext;
+        this.reportMojoInfo = mojoExecution.getPlugin().getArtifactId()
+                + ':'
+                + mojoExecution.getPlugin().getVersion()
+                + ':'
+                + mojoExecution.getGoal();
         this.title = title;
         this.desc1 = desc1;
         this.desc2 = desc2;
@@ -186,4 +195,9 @@ public class CategorySummaryDocumentRenderer implements 
DocumentRenderer {
     public boolean isExternalReport() {
         return false;
     }
+
+    @Override
+    public String getReportMojoInfo() {
+        return reportMojoInfo;
+    }
 }

Reply via email to