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

claude pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/creadur-rat.git


The following commit(s) were added to refs/heads/master by this push:
     new 9aa438a2 RAT-440: Upgrade Doxia to 2.0.0 to fix CVEs: CVE-2025-48924, 
CVE-2020-10683, CVE-2018-1000632, CVE-2020-13936 and CVE-2020-13959 (#553)
9aa438a2 is described below

commit 9aa438a22fc1a74f01387873316fce1fab36dd46
Author: guptas6est <[email protected]>
AuthorDate: Tue Nov 18 17:07:54 2025 +0000

    RAT-440: Upgrade Doxia to 2.0.0 to fix CVEs: CVE-2025-48924, 
CVE-2020-10683, CVE-2018-1000632, CVE-2020-13936 and CVE-2020-13959 (#553)
    
    * Upgrade Doxia to 2.0.0 to fix CVEs: CVE-2025-48924, CVE-2020-10683, 
CVE-2018-1000632, CVE-2020-13936 and CVE-2020-13959
    
    * RAT-440: Upgrade Doxia to 2.0.0 to fix CVEs: CVE-2025-48924, 
CVE-2020-10683, CVE-2018-1000632, CVE-2020-13936 and CVE-2020-13959
---
 apache-rat-plugin/pom.xml                          |  59 ++++++--
 .../main/java/org/apache/rat/mp/RatReportMojo.java | 159 ++++++++++++++-------
 .../java/org/apache/rat/mp/RatTestHelpers.java     |  11 +-
 apache-rat-tools/src/main/resources/Maven.tpl      |   2 +-
 src/site/markdown/development/ui/generator.md      |   2 +-
 5 files changed, 162 insertions(+), 71 deletions(-)

diff --git a/apache-rat-plugin/pom.xml b/apache-rat-plugin/pom.xml
index 310ca7e7..d047c435 100644
--- a/apache-rat-plugin/pom.xml
+++ b/apache-rat-plugin/pom.xml
@@ -26,15 +26,14 @@
   <packaging>maven-plugin</packaging>
   <name>Apache Creadur RAT::Plugin4Maven</name>
   <description>A plugin for Apache Maven that runs Apache RAT
-                to audit the source to be distributed.</description>
+    to audit the source to be distributed.</description>
   <inceptionYear>2007</inceptionYear>
   <prerequisites>
     <maven>${mavenMinVersion}</maven>
   </prerequisites>
   <properties>
     <currentVersion>${project.version}</currentVersion>
-    <doxiaVersion>1.12.0</doxiaVersion>
-    <doxiaSitetoolsVersion>1.11.1</doxiaSitetoolsVersion>
+    <doxiaVersion>2.0.0</doxiaVersion>
   </properties>
   <build>
     <resources>
@@ -376,12 +375,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-decoration-model</artifactId>
-      <version>${doxiaSitetoolsVersion}</version>
+      <artifactId>doxia-site-model</artifactId>
+      <version>${doxiaVersion}</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
-      <artifactId>doxia-module-xhtml</artifactId>
+      <artifactId>doxia-module-xhtml5</artifactId>
       <version>${doxiaVersion}</version>
     </dependency>
     <dependency>
@@ -392,7 +391,7 @@
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-integration-tools</artifactId>
-      <version>${doxiaSitetoolsVersion}</version>
+      <version>${doxiaVersion}</version>
       <exclusions>
         <exclusion>
           <groupId>org.codehaus.plexus</groupId>
@@ -403,7 +402,7 @@
     <dependency>
       <groupId>org.apache.maven.doxia</groupId>
       <artifactId>doxia-site-renderer</artifactId>
-      <version>${doxiaSitetoolsVersion}</version>
+      <version>${doxiaVersion}</version>
       <exclusions>
         <exclusion>
           <groupId>org.codehaus.plexus</groupId>
@@ -414,7 +413,7 @@
     <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.shared</groupId>
@@ -471,4 +470,46 @@
       </plugin>
     </plugins>
   </reporting>
+  <developers>
+    <developer>
+      <id>jochen</id>
+      <name>Jochen Wiedmann</name>
+      <email>[email protected]</email>
+    </developer>
+  </developers>
+  <contributors>
+    <contributor>
+      <name>Bernd Bohmann</name>
+      <email>[email protected]</email>
+    </contributor>
+    <contributor>
+      <name>Lars Trieloff</name>
+      <email>[email protected]</email>
+    </contributor>
+    <contributor>
+      <name>Jukka Zitting</name>
+      <email>[email protected]</email>
+    </contributor>
+  </contributors>
+  <!--
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-docck-plugin</artifactId>
+              <executions>
+                <execution>
+                  <goals>
+                    <goal>check</goal>
+                  </goals>
+                </execution>
+              </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+-->
 </project>
diff --git 
a/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java 
b/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
index 2f883d6e..900d78f2 100644
--- a/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
+++ b/apache-rat-plugin/src/main/java/org/apache/rat/mp/RatReportMojo.java
@@ -32,14 +32,13 @@ import java.util.Map;
 import java.util.ResourceBundle;
 
 import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.doxia.sink.Sink;
 import org.apache.maven.doxia.sink.SinkFactory;
 import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
-import org.apache.maven.doxia.site.decoration.DecorationModel;
+import org.apache.maven.doxia.site.SiteModel;
+import org.apache.maven.doxia.siterenderer.DocumentRenderingContext;
 import org.apache.maven.doxia.siterenderer.Renderer;
 import org.apache.maven.doxia.siterenderer.RendererException;
-import org.apache.maven.doxia.siterenderer.RenderingContext;
 import org.apache.maven.doxia.siterenderer.SiteRenderingContext;
 import org.apache.maven.doxia.siterenderer.sink.SiteRendererSink;
 import org.apache.maven.doxia.tools.SiteTool;
@@ -57,6 +56,8 @@ import org.apache.rat.Reporter;
 import org.apache.rat.VersionInfo;
 import org.apache.rat.license.LicenseSetFactory.LicenseFilter;
 import org.codehaus.plexus.util.ReaderFactory;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.RemoteRepository;
 
 import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
@@ -95,9 +96,18 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
 
     /**
      * Remote repositories used for the project.
+     *
+     * @deprecated replaced by {@link #remoteRepositories}
      */
     @Parameter(defaultValue = "${project.remoteArtifactRepositories}", 
readonly = true, required = true)
-    protected List<ArtifactRepository> remoteRepositories;
+    @Deprecated
+    protected List<ArtifactRepository> remoteArtifactRepositories;
+
+    /**
+     * Remote repositories used for the project.
+     */
+    @Parameter(defaultValue = "${project.remoteProjectRepositories}", readonly 
= true, required = true)
+    protected List<RemoteRepository> remoteRepositories;
 
     /**
      * SiteTool.
@@ -152,9 +162,9 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
             getSiteRenderer().copyResources(siteContext, outputDirectory);
 
             // TODO Replace null with real value
-            RenderingContext docRenderingContext = new 
RenderingContext(outputDirectory, filename, null);
-
-            SiteRendererSink sink = new SiteRendererSink(docRenderingContext);
+            DocumentRenderingContext docContext =
+                    new DocumentRenderingContext(outputDirectory, filename, 
"xhtml5");
+            SiteRendererSink sink = new SiteRendererSink(docContext);
 
             generate(sink, null, locale);
 
@@ -163,12 +173,13 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
                 if (!outputDirectory.exists() && !outputDirectory.mkdirs()) {
                     getLog().error("Unable to create output directory: " + 
outputDirectory);
                 }
-
                 try (Writer writer = new OutputStreamWriter(
-                        Files.newOutputStream(new File(outputDirectory, 
filename).toPath()), getOutputEncoding())) {
+                        Files.newOutputStream(new File(outputDirectory, 
filename).toPath()),
+                        getOutputEncoding())) {
                     // render report
                     getSiteRenderer().mergeDocumentIntoSite(writer, sink, 
siteContext);
                 }
+
             }
 
             // copy generated resources also
@@ -179,53 +190,117 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
         }
     }
 
-    private SiteRenderingContext createSiteRenderingContext(final Locale 
locale) throws MavenReportException, IOException {
-        DecorationModel decorationModel = new DecorationModel();
+    private SiteRenderingContext createSiteRenderingContext(final Locale 
locale)
+            throws MavenReportException, IOException {
+        SiteModel siteModel = new SiteModel();
 
         Map<String, Object> templateProperties = new HashMap<>();
-        // We tell the skin that we are rendering in standalone mode
         templateProperties.put("standalone", Boolean.TRUE);
         templateProperties.put("project", getProject());
         templateProperties.put("inputEncoding", getInputEncoding());
         templateProperties.put("outputEncoding", getOutputEncoding());
-        // Put any of the properties in directly into the Velocity context
         for (Map.Entry<Object, Object> entry : 
getProject().getProperties().entrySet()) {
             templateProperties.put((String) entry.getKey(), entry.getValue());
         }
 
-        SiteRenderingContext context;
+        org.apache.maven.doxia.site.Skin siteSkin = siteModel.getSkin();
+
+        if (siteSkin == null || siteSkin.getGroupId() == null
+                || siteSkin.getArtifactId() == null || siteSkin.getVersion() 
== null) {
+            getLog().debug("No skin configuration found in site.xml. Using 
default Maven skin configuration.");
+
+            // Create a minimal default skin configuration
+            siteSkin = new org.apache.maven.doxia.site.Skin();
+            siteSkin.setGroupId("org.apache.maven.skins");
+            siteSkin.setArtifactId("maven-fluido-skin");
+        }
+
         try {
-            Artifact skinArtifact = 
siteTool.getSkinArtifactFromRepository(session.getLocalRepository(),
-                    remoteRepositories, decorationModel);
+            Artifact skinArtifact = siteTool.getSkinArtifactFromRepository(
+                    session.getRepositorySession(),
+                    remoteRepositories,
+                    siteSkin
+            );
 
             getLog().debug(buffer().a("Rendering content with 
").strong(skinArtifact.getId() + " skin").a('.').build());
 
-            context = siteRenderer.createContextForSkin(skinArtifact, 
templateProperties, decorationModel,
-                    project.getName(), locale);
+            SiteRenderingContext context = siteRenderer.createContextForSkin(
+                    skinArtifact,
+                    templateProperties,
+                    siteModel,
+                    project.getName(),
+                    locale
+            );
+            context.setRootDirectory(project.getBasedir());
+            return context;
+
         } catch (SiteToolException e) {
             throw new MavenReportException("Failed to retrieve skin artifact", 
e);
         } catch (RendererException e) {
             throw new MavenReportException("Failed to create context for 
skin", e);
         }
-
-        // Generate static site
-        context.setRootDirectory(project.getBasedir());
-
-        return context;
     }
 
     /**
-     * Generate a report.
+     * This method is called when the report generation is invoked by
+     * maven-site-plugin.
      *
      * @param sink the sink to use for the generation.
+     * @param sinkFactory the sink factory to use for the generation.
      * @param locale the wanted locale to generate the report, could be null.
      * @throws MavenReportException if any
-     * @deprecated use {@link #generate(Sink, SinkFactory, Locale)} instead.
      */
-    @Deprecated
     @Override
-    public void generate(final org.codehaus.doxia.sink.Sink sink, final Locale 
locale) throws MavenReportException {
-        generate(sink, null, locale);
+    public void generate(final Sink sink, final SinkFactory sinkFactory, final 
Locale locale) throws MavenReportException {
+        if (!canGenerateReport()) {
+            // This report cannot be generated as part of the current build.
+            getLog().info("This report cannot be generated as part of the 
current build. "
+                    + "The report name should be referenced in this line of 
output.");
+        } else {
+            this.sink = sink;
+            this.sinkFactory = sinkFactory;
+
+            if (!(sink instanceof SiteRendererSink)) {
+
+                generateReportManually(locale);
+            } else {
+                executeReport(locale);
+            }
+
+            closeReport();
+        }
+    }
+
+    private void generateReportManually(final Locale locale) throws 
MavenReportException {
+        try {
+            File outputDir = new File(getOutputDirectory());
+            String filename = getOutputName() + ".html";
+
+            SiteRenderingContext siteContext = 
createSiteRenderingContext(locale);
+
+            if (!outputDir.exists() && !outputDir.mkdirs()) {
+                getLog().error("Unable to create output directory: " + 
outputDir);
+            }
+
+            DocumentRenderingContext docContext =
+                    new DocumentRenderingContext(outputDir, filename, 
"xhtml5");
+
+            SiteRendererSink sink = new SiteRendererSink(docContext);
+
+            this.sink = sink;
+            this.sinkFactory = null;
+
+            executeReport(locale);
+
+            try (Writer writer = new OutputStreamWriter(
+                    Files.newOutputStream(new File(outputDir, 
filename).toPath()),
+                    getOutputEncoding())) {
+                getSiteRenderer().mergeDocumentIntoSite(writer, sink, 
siteContext);
+            }
+
+        } catch (IOException | RendererException e) {
+            throw new MavenReportException("Failed to render RAT report 
manually", e);
+        }
     }
 
     /**
@@ -241,32 +316,6 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
         generate(sink, null, locale);
     }
 
-    /**
-     * This method is called when the report generation is invoked by
-     * maven-site-plugin.
-     *
-     * @param sink the sink to use for the generation.
-     * @param sinkFactory the sink factory to use for the generation.
-     * @param locale the wanted locale to generate the report, could be null.
-     * @throws MavenReportException if any
-     */
-    @Override
-    public void generate(final Sink sink, final SinkFactory sinkFactory, final 
Locale locale) throws MavenReportException {
-        if (!canGenerateReport()) {
-            getLog().info("This report cannot be generated as part of the 
current build. "
-                    + "The report name should be referenced in this line of 
output.");
-            return;
-        }
-
-        this.sink = sink;
-
-        this.sinkFactory = sinkFactory;
-
-        executeReport(locale);
-
-        closeReport();
-    }
-
     /**
      * @return CATEGORY_PROJECT_REPORTS
      */
@@ -387,7 +436,7 @@ public class RatReportMojo extends AbstractRatMojo 
implements MavenMultiPageRepo
         sink.paragraph_();
 
         sink.paragraph();
-        sink.verbatim(SinkEventAttributeSet.BOXED);
+        sink.verbatim(new SinkEventAttributeSet());
         try {
             ReportConfiguration config = getConfiguration();
             config.setFrom(getDefaultsBuilder().build());
diff --git 
a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java 
b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java
index bb42d11e..cc8ba9d3 100644
--- a/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java
+++ b/apache-rat-plugin/src/test/java/org/apache/rat/mp/RatTestHelpers.java
@@ -17,8 +17,8 @@ import org.apache.commons.io.FileUtils;
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
+ * (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
  *
  *      http://www.apache.org/licenses/LICENSE-2.0
  *
@@ -97,7 +97,7 @@ public final class RatTestHelpers {
             }
         } else if (pSource.isFile()) {
             try (final FileInputStream fis = new FileInputStream(pSource);
-                    final FileOutputStream fos = new 
FileOutputStream(pTarget)) {
+                 final FileOutputStream fos = new FileOutputStream(pTarget)) {
                 final byte[] buffer = new byte[8192];
                 for (;;) {
                     int res = fis.read(buffer);
@@ -122,7 +122,8 @@ public final class RatTestHelpers {
      * @throws Exception Creating the object failed.
      */
     public static Renderer newSiteRenderer(PlexusContainer container) throws 
Exception {
-        return (Renderer) container.lookup(Renderer.ROLE, "default");
+        // Replaced deprecated ROLE-based lookup with type+hint lookup.
+        return container.lookup(Renderer.class, "default");
     }
 
     /**
@@ -205,4 +206,4 @@ public final class RatTestHelpers {
         }
     }
 
-}
+}
\ No newline at end of file
diff --git a/apache-rat-tools/src/main/resources/Maven.tpl 
b/apache-rat-tools/src/main/resources/Maven.tpl
index 0d5d420e..13d9453e 100644
--- a/apache-rat-tools/src/main/resources/Maven.tpl
+++ b/apache-rat-tools/src/main/resources/Maven.tpl
@@ -20,7 +20,7 @@
 ${package}
 
 import org.apache.commons.cli.Option;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.rat.commandline.Arg;
diff --git a/src/site/markdown/development/ui/generator.md 
b/src/site/markdown/development/ui/generator.md
index 195aa231..b08559b7 100644
--- a/src/site/markdown/development/ui/generator.md
+++ b/src/site/markdown/development/ui/generator.md
@@ -83,7 +83,7 @@ The `MavenGenerator` uses a template called "Maven.tpl" that 
looks like:
 ${package}
 
 import org.apache.commons.cli.Option;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.rat.commandline.Arg;

Reply via email to