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(); } } }
