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

slachiewicz pushed a commit to branch upgrade-doxia-2.x
in repository https://gitbox.apache.org/repos/asf/maven-changelog-plugin.git

commit 76db4ff2f2218d5d502d027a8240188cfc479f63
Author: Sylwester Lachiewicz <[email protected]>
AuthorDate: Thu Dec 25 18:00:54 2025 +0000

    Upgrade to Doxia 2.x stack
    
    - Upgrade Doxia from 1.11.1 to 2.0.0
    - Upgrade maven-reporting-api from 3.1.1 to 4.0.0
    - Upgrade maven-reporting-impl from 3.1.0 to 4.0.0
    - Replace doxia-decoration-model with doxia-site-model (Doxia 2.x API 
change)
    - Replace deprecated Renderer with SiteTool
    - Remove deprecated @Component annotations and use constructor injection
    - Update getSiteRenderer() to getSiteTool() in AbstractMavenReport
    - Add constructors with ScmManager and SiteTool injection to all report 
mojos
    - Update test infrastructure to use Doxia 2.x Xhtml5SinkFactory
---
 pom.xml                                            | 26 ++++----------------
 .../maven/plugins/changelog/ChangeLogReport.java   | 27 ++++++++++++++++-----
 .../plugins/changelog/DeveloperActivityReport.java | 12 ++++++++++
 .../plugins/changelog/FileActivityReport.java      | 12 ++++++++++
 .../changelog/AbstractChangeLogReportTest.java     | 28 +++++++++++-----------
 5 files changed, 63 insertions(+), 42 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0523caa..213f65f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -146,7 +146,7 @@ under the License.
   <properties>
     <javaVersion>8</javaVersion>
     <maven-scm.version>2.1.0</maven-scm.version>
-    <doxiaVersion>1.11.1</doxiaVersion>
+    <doxiaVersion>2.0.0</doxiaVersion>
     <mavenVersion>3.9.11</mavenVersion>
     <!-- used in ITs -->
     <sitePluginVersion>${version.maven-site-plugin}</sitePluginVersion>
@@ -202,18 +202,12 @@ under the License.
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-api</artifactId>
-      <version>3.1.1</version>
+      <version>4.0.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-impl</artifactId>
-      <version>3.1.0</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-container-default</artifactId>
-        </exclusion>
-      </exclusions>
+      <version>4.0.0</version>
     </dependency>
 
     <!-- doxia -->
@@ -221,12 +215,6 @@ under the License.
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-sink-api</artifactId>
       <version>${doxiaVersion}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-container-default</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
@@ -241,7 +229,7 @@ under the License.
     </dependency>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-decoration-model</artifactId>
+      <artifactId>doxia-site-model</artifactId>
       <version>${doxiaVersion}</version>
       <scope>test</scope>
     </dependency>
@@ -307,12 +295,6 @@ under the License.
       <artifactId>maven-plugin-testing-harness</artifactId>
       <version>3.3.0</version>
       <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <groupId>org.codehaus.plexus</groupId>
-          <artifactId>plexus-container-default</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.eclipse.sisu</groupId>
diff --git 
a/src/main/java/org/apache/maven/plugins/changelog/ChangeLogReport.java 
b/src/main/java/org/apache/maven/plugins/changelog/ChangeLogReport.java
index 93221b4..afff92e 100644
--- a/src/main/java/org/apache/maven/plugins/changelog/ChangeLogReport.java
+++ b/src/main/java/org/apache/maven/plugins/changelog/ChangeLogReport.java
@@ -48,10 +48,9 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.maven.doxia.sink.Sink;
-import org.apache.maven.doxia.siterenderer.Renderer;
+import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.model.Developer;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import 
org.apache.maven.plugins.changelog.scm.provider.svn.svnexe.command.info.SvnInfoCommandExpanded;
@@ -255,9 +254,14 @@ public class ChangeLogReport extends AbstractMavenReport {
     private boolean offline;
 
     /**
+     * SCM Manager.
      */
-    @Component
-    private ScmManager manager;
+    private final ScmManager manager;
+
+    /**
+     * Site Tool.
+     */
+    private final SiteTool siteTool;
 
     /**
      */
@@ -401,6 +405,17 @@ public class ChangeLogReport extends AbstractMavenReport {
 
     private final Pattern sinkFileNamePattern = Pattern.compile("\\\\");
 
+    /**
+     * Constructor for dependency injection.
+     *
+     * @param manager  the SCM manager
+     * @param siteTool the site tool
+     */
+    public ChangeLogReport(ScmManager manager, SiteTool siteTool) {
+        this.manager = manager;
+        this.siteTool = siteTool;
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -1591,8 +1606,8 @@ public class ChangeLogReport extends AbstractMavenReport {
     /**
      * {@inheritDoc}
      */
-    protected Renderer getSiteRenderer() {
-        return siteRenderer;
+    protected SiteTool getSiteTool() {
+        return siteTool;
     }
 
     /**
diff --git 
a/src/main/java/org/apache/maven/plugins/changelog/DeveloperActivityReport.java 
b/src/main/java/org/apache/maven/plugins/changelog/DeveloperActivityReport.java
index d28a17f..fb9354b 100644
--- 
a/src/main/java/org/apache/maven/plugins/changelog/DeveloperActivityReport.java
+++ 
b/src/main/java/org/apache/maven/plugins/changelog/DeveloperActivityReport.java
@@ -27,10 +27,12 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ChangeFile;
 import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
+import org.apache.maven.scm.manager.ScmManager;
 
 /**
  * Generate a developer activity report.
@@ -44,6 +46,16 @@ public class DeveloperActivityReport extends ChangeLogReport 
{
 
     private Map<String, Map<String, ChangeFile>> files;
 
+    /**
+     * Constructor for dependency injection.
+     *
+     * @param manager  the SCM manager
+     * @param siteTool the site tool
+     */
+    public DeveloperActivityReport(ScmManager manager, SiteTool siteTool) {
+        super(manager, siteTool);
+    }
+
     /**
      * {@inheritDoc}
      */
diff --git 
a/src/main/java/org/apache/maven/plugins/changelog/FileActivityReport.java 
b/src/main/java/org/apache/maven/plugins/changelog/FileActivityReport.java
index 514eaa8..4c3320d 100644
--- a/src/main/java/org/apache/maven/plugins/changelog/FileActivityReport.java
+++ b/src/main/java/org/apache/maven/plugins/changelog/FileActivityReport.java
@@ -27,16 +27,28 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.tools.SiteTool;
 import org.apache.maven.plugins.annotations.Mojo;
 import org.apache.maven.scm.ChangeFile;
 import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
+import org.apache.maven.scm.manager.ScmManager;
 
 /**
  * Generate a file activity report.
  */
 @Mojo(name = "file-activity")
 public class FileActivityReport extends ChangeLogReport {
+    /**
+     * Constructor for dependency injection.
+     *
+     * @param manager  the SCM manager
+     * @param siteTool the site tool
+     */
+    public FileActivityReport(ScmManager manager, SiteTool siteTool) {
+        super(manager, siteTool);
+    }
+
     /**
      * {@inheritDoc}
      */
diff --git 
a/src/test/java/org/apache/maven/plugins/changelog/AbstractChangeLogReportTest.java
 
b/src/test/java/org/apache/maven/plugins/changelog/AbstractChangeLogReportTest.java
index 2b8c527..6d36de5 100644
--- 
a/src/test/java/org/apache/maven/plugins/changelog/AbstractChangeLogReportTest.java
+++ 
b/src/test/java/org/apache/maven/plugins/changelog/AbstractChangeLogReportTest.java
@@ -20,13 +20,13 @@ package org.apache.maven.plugins.changelog;
 
 import java.io.File;
 import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
 
-import org.apache.maven.doxia.site.decoration.DecorationModel;
-import org.apache.maven.doxia.siterenderer.RendererException;
-import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
-import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
+import org.apache.maven.doxia.module.xhtml5.Xhtml5SinkFactory;
+import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
-import org.codehaus.plexus.util.xml.XmlStreamWriter;
+import org.apache.maven.reporting.MavenReportException;
 
 /**
  * @author <a href="mailto:[email protected]";>Vincent Siveton</a>
@@ -38,17 +38,17 @@ public abstract class AbstractChangeLogReportTest extends 
AbstractMojoTestCase {
      *
      * @param mojo       not null
      * @param outputHtml not null
-     * @throws RendererException if any
-     * @throws IOException       if any
+     * @throws IOException if any
+     * @throws MavenReportException if any
      */
-    protected void renderer(ChangeLogReport mojo, File outputHtml) throws 
RendererException, IOException {
-        SiteRenderingContext context = new SiteRenderingContext();
-        context.setDecoration(new DecorationModel());
-        
context.setTemplateName("org/apache/maven/doxia/siterenderer/resources/default-site.vm");
-
+    protected void renderer(ChangeLogReport mojo, File outputHtml) throws 
IOException, MavenReportException {
         outputHtml.getParentFile().mkdirs();
-        try (XmlStreamWriter writer = new XmlStreamWriter(outputHtml)) {
-            mojo.getSiteRenderer().generateDocument(writer, (SiteRendererSink) 
mojo.getSink(), context);
+        try (OutputStream out = Files.newOutputStream(outputHtml.toPath())) {
+            Xhtml5SinkFactory sinkFactory = new Xhtml5SinkFactory();
+            Sink sink = sinkFactory.createSink(out, "UTF-8");
+            mojo.generate(sink, null, null);
+            sink.flush();
+            sink.close();
         }
     }
 }

Reply via email to