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 2024/01/02 15:22:49 UTC

(maven-surefire) branch doxia-2.0.0 updated (e7a1a9e60 -> 26d0677ce)

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

michaelo pushed a change to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git


 discard e7a1a9e60 [SUREFIRE-2227] Dynamically calculate xrefTestLocation
 discard b2dc5dc7c Prepare for Doxia 2.0.0
     add 988e1ed37 Correct incomplete incompat notice
     add d1aec0284 [SUREFIRE-2161] Align Mojo class names and output names
     new c6a3efb04 [SUREFIRE-2228] Upgrade to Doxia 2.0.0 Milestone Stack
     new 26d0677ce [SUREFIRE-2227] Dynamically calculate xrefTestLocation

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (e7a1a9e60)
            \
             N -- N -- N   refs/heads/doxia-2.0.0 (26d0677ce)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../plugin/surefire/AbstractSurefireMojo.java      |  1 -
 .../{SurefirePlugin.java => SurefireMojo.java}     |  2 +-
 ...refirePluginTest.java => SurefireMojoTest.java} | 52 +++++++++++-----------
 .../src/site/apt/index.apt                         | 22 ++++-----
 .../resources/unit/surefire-1183/plugin-config.xml | 30 ++++++-------
 5 files changed, 52 insertions(+), 55 deletions(-)
 rename maven-surefire-plugin/src/main/java/org/apache/maven/plugin/surefire/{SurefirePlugin.java => SurefireMojo.java} (99%)
 rename maven-surefire-plugin/src/test/java/org/apache/maven/plugin/surefire/{SurefirePluginTest.java => SurefireMojoTest.java} (68%)


(maven-surefire) 02/02: [SUREFIRE-2227] Dynamically calculate xrefTestLocation

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git

commit 26d0677ce77a53ea65d5ba096a6d9d2aba2b188b
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Thu Nov 16 21:39:41 2023 +0100

    [SUREFIRE-2227] Dynamically calculate xrefTestLocation
---
 .../surefire/report/AbstractSurefireReport.java    | 43 ++++++++++++++--------
 .../surefire/report/SurefireReportTest.java        |  4 +-
 .../surefire/report/stubs/EnclosedStub.java        | 33 +++++++++++++++++
 .../report/stubs/EnclosedTrimStackTraceStub.java   | 33 +++++++++++++++++
 .../surefire/report/stubs/NestedClassStub.java     | 33 +++++++++++++++++
 .../stubs/NestedClassTrimStackTraceStub.java       | 33 +++++++++++++++++
 .../surefire/report/stubs/SingleErrorStub.java     | 33 +++++++++++++++++
 .../stubs/SurefireReportMavenProjectStub.java      | 16 --------
 .../plugin-config.xml                              |  2 +-
 .../plugin-config.xml                              | 10 ++++-
 .../plugin-config.xml                              | 10 ++++-
 .../plugin-config.xml                              | 10 ++++-
 .../basic-surefire-report-test/plugin-config.xml   | 10 ++++-
 .../plugin-config.xml                              | 10 ++++-
 .../surefire-report-enclosed/plugin-config.xml     | 10 ++++-
 .../plugin-config.xml                              | 10 ++++-
 .../surefire-report-nestedClass/plugin-config.xml  | 10 ++++-
 .../surefire-report-single-error/plugin-config.xml | 10 ++++-
 18 files changed, 276 insertions(+), 44 deletions(-)

diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
index d402b6975..2a68f8467 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
@@ -25,6 +25,7 @@ import java.net.URL;
 import java.net.URLClassLoader;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
@@ -32,6 +33,7 @@ import java.util.MissingResourceException;
 import java.util.ResourceBundle;
 
 import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.Reporting;
 import org.apache.maven.plugin.surefire.log.api.ConsoleLogger;
 import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
@@ -77,16 +79,19 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
     private File reportsDirectory;
 
     /**
-     * Location of the Xrefs to link.
+     * Link the violation line numbers to the (Test) Source XRef. Links will be created automatically if the JXR plugin is
+     * being used.
      */
-    @Parameter(defaultValue = "${project.reporting.outputDirectory}/xref-test")
-    private File xrefLocation;
+    @Parameter(property = "linkXRef", defaultValue = "true")
+    private boolean linkXRef;
 
     /**
-     * Whether to link the XRef if found.
+     * Location where Test Source XRef is generated for this project.
+     * <br>
+     * <strong>Default</strong>: {@link #getReportOutputDirectory()} + {@code /xref-test}
      */
-    @Parameter(defaultValue = "true", property = "linkXRef")
-    private boolean linkXRef;
+    @Parameter
+    private File xrefTestLocation;
 
     /**
      * Whether to build an aggregated report at the root, or build individual reports.
@@ -149,7 +154,7 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
                 locale,
                 getConsoleLogger(),
                 getReportsDirectories(),
-                determineXrefLocation(),
+                constructXrefTestLocation(),
                 showSuccess);
         r.render();
     }
@@ -251,25 +256,27 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
         return result;
     }
 
-    private String determineXrefLocation() {
+    private String constructXrefTestLocation() {
         String location = null;
-
         if (linkXRef) {
+            File xrefTestLocation = getXrefTestLocation();
+
             String relativePath = PathTool.getRelativePath(
-                    getReportOutputDirectory().getAbsolutePath(), xrefLocation.getAbsolutePath());
+                    getReportOutputDirectory().getAbsolutePath(), xrefTestLocation.getAbsolutePath());
             if (relativePath == null || relativePath.isEmpty()) {
                 relativePath = ".";
             }
-            relativePath = relativePath + "/" + xrefLocation.getName();
-            if (xrefLocation.exists()) {
+            relativePath = relativePath + "/" + xrefTestLocation.getName();
+            if (xrefTestLocation.exists()) {
                 // XRef was already generated by manual execution of a lifecycle binding
                 location = relativePath;
             } else {
                 // Not yet generated - check if the report is on its way
-                for (Object o : project.getReportPlugins()) {
-                    ReportPlugin report = (ReportPlugin) o;
-
-                    String artifactId = report.getArtifactId();
+                Reporting reporting = project.getModel().getReporting();
+                List<ReportPlugin> reportPlugins =
+                        reporting != null ? reporting.getPlugins() : Collections.<ReportPlugin>emptyList();
+                for (ReportPlugin plugin : reportPlugins) {
+                    String artifactId = plugin.getArtifactId();
                     if ("maven-jxr-plugin".equals(artifactId) || "jxr-maven-plugin".equals(artifactId)) {
                         location = relativePath;
                     }
@@ -283,6 +290,10 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
         return location;
     }
 
+    private File getXrefTestLocation() {
+        return xrefTestLocation != null ? xrefTestLocation : new File(getReportOutputDirectory(), "xref-test");
+    }
+
     /**
      * @param locale The locale
      * @param key The key to search for
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
index 1f42a6076..f84d504b3 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
@@ -90,7 +90,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         File outputDir = (File) getVariableValueFromObject(mojo, "outputDirectory");
         boolean showSuccess = (Boolean) getVariableValueFromObject(mojo, "showSuccess");
         File reportsDir = (File) getVariableValueFromObject(mojo, "reportsDirectory");
-        File xrefLocation = (File) getVariableValueFromObject(mojo, "xrefLocation");
+        File xrefTestLocation = (File) getVariableValueFromObject(mojo, "xrefTestLocation");
         boolean linkXRef = (Boolean) getVariableValueFromObject(mojo, "linkXRef");
 
         assertEquals(new File(getBasedir() + "/target/site/unit/basic-surefire-report-test"), outputDir);
@@ -101,7 +101,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
                 reportsDir.getAbsolutePath());
         assertEquals(
                 new File(getBasedir() + "/target/site/unit/basic-surefire-report-test/xref-test").getAbsolutePath(),
-                xrefLocation.getAbsolutePath());
+                xrefTestLocation.getAbsolutePath());
         assertTrue(linkXRef);
 
         mojo.execute();
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
index bdcce6b04..af41e63ef 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
@@ -18,7 +18,40 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+
 public class EnclosedStub extends SurefireReportMavenProjectStub {
+    private List<ReportPlugin> reportPlugins = new ArrayList<>();
+
+    public EnclosedStub() {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try (InputStream is = new FileInputStream(getFile())) {
+            model = pomReader.read(is);
+            setModel(model);
+        } catch (Exception e) {
+        }
+
+        setReportPlugins(model.getReporting().getPlugins());
+    }
+
+    public void setReportPlugins(List<ReportPlugin> plugins) {
+        this.reportPlugins = plugins;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<ReportPlugin> getReportPlugins() {
+        return reportPlugins;
+    }
 
     @Override
     protected String getProjectDirName() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
index f5ba0e74b..a4fb0169c 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
@@ -18,7 +18,40 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+
 public class EnclosedTrimStackTraceStub extends SurefireReportMavenProjectStub {
+    private List<ReportPlugin> reportPlugins = new ArrayList<>();
+
+    public EnclosedTrimStackTraceStub() {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try (InputStream is = new FileInputStream(getFile())) {
+            model = pomReader.read(is);
+            setModel(model);
+        } catch (Exception e) {
+        }
+
+        setReportPlugins(model.getReporting().getPlugins());
+    }
+
+    public void setReportPlugins(List<ReportPlugin> plugins) {
+        this.reportPlugins = plugins;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<ReportPlugin> getReportPlugins() {
+        return reportPlugins;
+    }
 
     @Override
     protected String getProjectDirName() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
index 6f1547b37..2b80adc72 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
@@ -18,7 +18,40 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+
 public class NestedClassStub extends SurefireReportMavenProjectStub {
+    private List<ReportPlugin> reportPlugins = new ArrayList<>();
+
+    public NestedClassStub() {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try (InputStream is = new FileInputStream(getFile())) {
+            model = pomReader.read(is);
+            setModel(model);
+        } catch (Exception e) {
+        }
+
+        setReportPlugins(model.getReporting().getPlugins());
+    }
+
+    public void setReportPlugins(List<ReportPlugin> plugins) {
+        this.reportPlugins = plugins;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<ReportPlugin> getReportPlugins() {
+        return reportPlugins;
+    }
 
     @Override
     protected String getProjectDirName() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
index 1a30076f5..1cebc2015 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
@@ -18,7 +18,40 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+
 public class NestedClassTrimStackTraceStub extends SurefireReportMavenProjectStub {
+    private List<ReportPlugin> reportPlugins = new ArrayList<>();
+
+    public NestedClassTrimStackTraceStub() {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try (InputStream is = new FileInputStream(getFile())) {
+            model = pomReader.read(is);
+            setModel(model);
+        } catch (Exception e) {
+        }
+
+        setReportPlugins(model.getReporting().getPlugins());
+    }
+
+    public void setReportPlugins(List<ReportPlugin> plugins) {
+        this.reportPlugins = plugins;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<ReportPlugin> getReportPlugins() {
+        return reportPlugins;
+    }
 
     @Override
     protected String getProjectDirName() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
index 60e83182e..8bff72dc4 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
@@ -18,7 +18,40 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.maven.model.Model;
+import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
+
 public class SingleErrorStub extends SurefireReportMavenProjectStub {
+    private List<ReportPlugin> reportPlugins = new ArrayList<>();
+
+    public SingleErrorStub() {
+        MavenXpp3Reader pomReader = new MavenXpp3Reader();
+        Model model = null;
+
+        try (InputStream is = new FileInputStream(getFile())) {
+            model = pomReader.read(is);
+            setModel(model);
+        } catch (Exception e) {
+        }
+
+        setReportPlugins(model.getReporting().getPlugins());
+    }
+
+    public void setReportPlugins(List<ReportPlugin> plugins) {
+        this.reportPlugins = plugins;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    public List<ReportPlugin> getReportPlugins() {
+        return reportPlugins;
+    }
 
     @Override
     protected String getProjectDirName() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
index 952b6ff39..9f5606292 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
@@ -47,22 +47,6 @@ public abstract class SurefireReportMavenProjectStub extends MavenProjectStub {
         return new File(getBasedir(), "plugin-config.xml");
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public List<ReportPlugin> getReportPlugins() {
-        Reporting reporting = new Reporting();
-
-        ReportPlugin reportPlugin = new ReportPlugin();
-        reportPlugin.setGroupId("org.apache.maven.plugins");
-        reportPlugin.setArtifactId("maven-jxr-plugin");
-        reportPlugin.setVersion("2.0-SNAPSHOT");
-        reporting.addPlugin(reportPlugin);
-
-        return reporting.getPlugins();
-    }
-
     @Override
     public List<ArtifactRepository> getRemoteArtifactRepositories() {
         ArtifactRepository repository = new MavenArtifactRepository(
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
index fe0e78d7f..a215e335a 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
@@ -29,7 +29,7 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-anchor-test-cases/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/basic-surefire-report-anchor-test-cases/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/basic-surefire-report-anchor-test-cases/xref-test</xrefTestLocation>
         </configuration>
       </plugin>
     </plugins>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
index 01f10b34a..0307e5d94 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-linkxref-false/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/basic-surefire-report-linkxref-false/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/basic-surefire-report-linkxref-false/xref-test</xrefTestLocation>
           <linkXRef>false</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
index f53e5dfea..c8258fdc5 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-reporting-null/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/basic-surefire-report-test/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/basic-surefire-report-test/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
index 27d6b2e38..982b1f33f 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-success-false/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/basic-surefire-report-success-false/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/basic-surefire-report-success-false/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
index 782c972c8..077c4a93e 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-test/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/basic-surefire-report-test/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/basic-surefire-report-test/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
index d02fe60da..0dcdf7b75 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/surefire-report-enclosed-trimStackTrace/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/surefire-report-enclosed-trimStackTrace/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
index 5bb6b5ab6..bcdeecc9d 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-enclosed/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/surefire-report-enclosed/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/surefire-report-enclosed/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
index 7e6c0a506..2191116b7 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/surefire-report-nestedClass-trimStackTrace/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/surefire-report-nestedClass-trimStackTrace/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
index 5b577227c..f86825f98 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-nestedClass/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/surefire-report-nestedClass/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/surefire-report-nestedClass/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
index cfb5505a2..ab23bae24 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
@@ -29,10 +29,18 @@
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-single-error/surefire-reports
           </reportsDirectory>
           <outputName>surefire-report</outputName>
-          <xrefLocation>${basedir}/target/site/unit/surefire-report-single-error/xref-test</xrefLocation>
+          <xrefTestLocation>${basedir}/target/site/unit/surefire-report-single-error/xref-test</xrefTestLocation>
           <linkXRef>true</linkXRef>
         </configuration>
       </plugin>
     </plugins>
   </build>
+  <reporting>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jxr-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </reporting>
 </project>


(maven-surefire) 01/02: [SUREFIRE-2228] Upgrade to Doxia 2.0.0 Milestone Stack

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch doxia-2.0.0
in repository https://gitbox.apache.org/repos/asf/maven-surefire.git

commit c6a3efb0447513cb8c33256586d361bbcd0800fc
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Sun May 7 01:34:04 2023 +0200

    [SUREFIRE-2228] Upgrade to Doxia 2.0.0 Milestone Stack
    
    This closes #629
---
 maven-surefire-report-plugin/pom.xml               |   7 +-
 .../surefire/report/AbstractSurefireReport.java    |  20 ++--
 .../surefire/report/FailsafeOnlyReport.java        |   2 +-
 .../surefire/report/SurefireReportRenderer.java    |  66 ++++-------
 .../plugins/surefire/report/Surefire597Test.java   |  22 ++--
 .../surefire/report/SurefireReportTest.java        | 124 ++++++++++++---------
 ...nProjectStub2.java => AnchorTestCasesStub.java} |  17 +--
 ...ortMavenProjectStub2.java => EnclosedStub.java} |  17 +--
 ...tStub2.java => EnclosedTrimStackTraceStub.java} |  17 +--
 ...venProjectStub2.java => LinkXrefFalseStub.java} |  17 +--
 ...MavenProjectStub2.java => NestedClassStub.java} |  17 +--
 ...ub2.java => NestedClassTrimStackTraceStub.java} |  17 +--
 ...tMavenProjectStub2.java => ReportTestStub.java} |  17 +--
 ...venProjectStub2.java => ReportingNullStub.java} |   8 +-
 ...MavenProjectStub2.java => SingleErrorStub.java} |  17 +--
 ...avenProjectStub2.java => SuccessFalseStub.java} |  17 +--
 ...avenProjectStub2.java => Surefire1183Stub.java} |  17 +--
 .../stubs/SurefireReportMavenProjectStub.java      |  30 +++--
 .../plugin-config.xml                              |   3 +-
 .../plugin-config.xml                              |   3 +-
 .../plugin-config.xml                              |   3 +-
 .../plugin-config.xml                              |   3 +-
 .../basic-surefire-report-test/plugin-config.xml   |   3 +-
 .../resources/unit/surefire-1183/plugin-config.xml |  31 +++---
 .../plugin-config.xml                              |   3 +-
 .../surefire-report-enclosed/plugin-config.xml     |   3 +-
 .../plugin-config.xml                              |   3 +-
 .../surefire-report-nestedClass/plugin-config.xml  |   3 +-
 .../surefire-report-single-error/plugin-config.xml |   3 +-
 pom.xml                                            |  21 ----
 .../surefire-260-testWithIdenticalNames/pom.xml    |   4 +-
 31 files changed, 196 insertions(+), 339 deletions(-)

diff --git a/maven-surefire-report-plugin/pom.xml b/maven-surefire-report-plugin/pom.xml
index 3655940da..2499d74f4 100644
--- a/maven-surefire-report-plugin/pom.xml
+++ b/maven-surefire-report-plugin/pom.xml
@@ -46,7 +46,7 @@
   </prerequisites>
 
   <properties>
-    <doxiaVersion>1.12.0</doxiaVersion>
+    <doxiaVersion>2.0.0-M8</doxiaVersion>
     <aetherVersion>1.0.0.v20140518</aetherVersion>
   </properties>
 
@@ -86,13 +86,10 @@
       <artifactId>doxia-core</artifactId>
       <version>${doxiaVersion}</version>
     </dependency>
-    <dependency>
-      <groupId>org.apache.maven.reporting</groupId>
-      <artifactId>maven-reporting-api</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.maven.reporting</groupId>
       <artifactId>maven-reporting-impl</artifactId>
+      <version>4.0.0-M13</version>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
index 847c29cb2..d402b6975 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/AbstractSurefireReport.java
@@ -37,7 +37,6 @@ import org.apache.maven.plugins.annotations.Component;
 import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.reporting.AbstractMavenReport;
-import org.apache.maven.reporting.MavenReportException;
 import org.apache.maven.settings.Settings;
 import org.apache.maven.shared.utils.PathTool;
 import org.codehaus.plexus.i18n.I18N;
@@ -77,12 +76,6 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
     @Parameter
     private File reportsDirectory;
 
-    /**
-     * The projects in the reactor for aggregation report.
-     */
-    @Parameter(defaultValue = "${reactorProjects}", readonly = true)
-    private List<MavenProject> reactorProjects;
-
     /**
      * Location of the Xrefs to link.
      */
@@ -148,16 +141,16 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
      * {@inheritDoc}
      */
     @Override
-    public void executeReport(Locale locale) throws MavenReportException {
+    public void executeReport(Locale locale) {
         SurefireReportRenderer r = new SurefireReportRenderer(
                 getSink(),
                 getI18N(locale),
                 getI18Nsection(),
                 locale,
                 getConsoleLogger(),
-                showSuccess,
                 getReportsDirectories(),
-                determineXrefLocation());
+                determineXrefLocation(),
+                showSuccess);
         r.render();
     }
 
@@ -262,7 +255,8 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
         String location = null;
 
         if (linkXRef) {
-            String relativePath = PathTool.getRelativePath(getOutputDirectory(), xrefLocation.getAbsolutePath());
+            String relativePath = PathTool.getRelativePath(
+                    getReportOutputDirectory().getAbsolutePath(), xrefLocation.getAbsolutePath());
             if (relativePath == null || relativePath.isEmpty()) {
                 relativePath = ".";
             }
@@ -345,6 +339,10 @@ public abstract class AbstractSurefireReport extends AbstractMavenReport {
         return project;
     }
 
+    protected List<MavenProject> getReactorProjects() {
+        return reactorProjects;
+    }
+
     // TODO Review, especially Locale.getDefault()
     private static class CustomI18N implements I18N {
         private final MavenProject project;
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/FailsafeOnlyReport.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/FailsafeOnlyReport.java
index 7e6b20840..ae2b62078 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/FailsafeOnlyReport.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/FailsafeOnlyReport.java
@@ -61,7 +61,7 @@ public class FailsafeOnlyReport extends AbstractSurefireReport {
     @Override
     protected File getSurefireReportsDirectory(MavenProject subProject) {
         String buildDir = subProject.getBuild().getDirectory();
-        return new File(buildDir + "/failsafe-reports");
+        return new File(buildDir, "failsafe-reports");
     }
 
     @Override
diff --git a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
index e19c2bca2..c9dafe73f 100644
--- a/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
+++ b/maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java
@@ -50,9 +50,9 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
     private final Locale locale;
 
     private final SurefireReportParser parser;
-    private final boolean showSuccess;
-    private final String xrefLocation;
     private final List<ReportTestSuite> testSuites;
+    private final String xrefLocation;
+    private final boolean showSuccess;
 
     public SurefireReportRenderer(
             Sink sink,
@@ -60,9 +60,9 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
             String i18nSection,
             Locale locale,
             ConsoleLogger consoleLogger,
-            boolean showSuccess,
             List<File> reportsDirectories,
-            String xrefLocation) {
+            String xrefLocation,
+            boolean showSuccess) {
         super(sink);
         this.i18n = i18n;
         this.i18nSection = i18nSection;
@@ -112,11 +112,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
     public void renderBody() {
         javaScript(javascriptToggleDisplayCode());
 
-        sink.section1();
-        sink.sectionTitle1();
-        sink.text(getTitle());
-        sink.sectionTitle1_();
-        sink.section1_();
+        startSection(getTitle());
 
         renderSectionSummary();
 
@@ -125,16 +121,14 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
         renderSectionTestCases();
 
         renderSectionFailureDetails();
+
+        endSection();
     }
 
     private void renderSectionSummary() {
         Map<String, Object> summary = parser.getSummary(testSuites);
 
-        sink.section1();
-        sinkAnchor("Summary");
-        sink.sectionTitle1();
-        sink.text(getI18nString("surefire", "label.summary"));
-        sink.sectionTitle1_();
+        startSection(getI18nString("surefire", "label.summary"), "Summary");
 
         constructHotLinks();
 
@@ -168,7 +162,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
 
         sink.lineBreak();
 
-        sink.section1_();
+        endSection();
     }
 
     private void renderSectionPackages() {
@@ -177,11 +171,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
             return;
         }
 
-        sink.section1();
-        sinkAnchor("Package_List");
-        sink.sectionTitle1();
-        sink.text(getI18nString("surefire", "label.packagelist"));
-        sink.sectionTitle1_();
+        startSection(getI18nString("surefire", "label.packagelist"), "Package_List");
 
         constructHotLinks();
 
@@ -227,11 +217,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
 
             List<ReportTestSuite> testSuiteList = entry.getValue();
 
-            sink.section2();
-            sinkAnchor(packageName);
-            sink.sectionTitle2();
-            sink.text(packageName);
-            sink.sectionTitle2_();
+            startSection(packageName);
 
             boolean showTable = false;
 
@@ -266,12 +252,12 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
                 endTable();
             }
 
-            sink.section2_();
+            endSection();
         }
 
         sink.lineBreak();
 
-        sink.section1_();
+        endSection();
     }
 
     private void renderSectionTestSuite(ReportTestSuite suite) {
@@ -320,11 +306,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
             return;
         }
 
-        sink.section1();
-        sinkAnchor("Test_Cases");
-        sink.sectionTitle1();
-        sink.text(getI18nString("surefire", "label.testcases"));
-        sink.sectionTitle1_();
+        startSection(getI18nString("surefire", "label.testcases"), "Test_Cases");
 
         constructHotLinks();
 
@@ -332,11 +314,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
             List<ReportTestCase> testCases = suite.getTestCases();
 
             if (!testCases.isEmpty()) {
-                sink.section2();
-                sinkAnchor(suite.getPackageName() + '.' + suite.getName());
-                sink.sectionTitle2();
-                sink.text(suite.getName());
-                sink.sectionTitle2_();
+                startSection(suite.getName(), suite.getPackageName() + '.' + suite.getName());
 
                 boolean showTable = false;
 
@@ -360,13 +338,13 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
                     endTable();
                 }
 
-                sink.section2_();
+                endSection();
             }
         }
 
         sink.lineBreak();
 
-        sink.section1_();
+        endSection();
     }
 
     private void constructTestCaseSection(ReportTestCase testCase) {
@@ -469,7 +447,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
     }
 
     private String toHtmlId(String id) {
-        return DoxiaUtils.isValidId(id) ? id : DoxiaUtils.encodeId(id, true);
+        return DoxiaUtils.isValidId(id) ? id : DoxiaUtils.encodeId(id);
     }
 
     private void renderSectionFailureDetails() {
@@ -478,11 +456,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
             return;
         }
 
-        sink.section1();
-        sinkAnchor("Failure_Details");
-        sink.sectionTitle1();
-        sink.text(getI18nString("surefire", "label.failuredetails"));
-        sink.sectionTitle1_();
+        startSection(getI18nString("surefire", "label.failuredetails"), "Failure_Details");
 
         constructHotLinks();
 
@@ -554,7 +528,7 @@ public class SurefireReportRenderer extends AbstractMavenReportRenderer {
 
         sink.lineBreak();
 
-        sink.section1_();
+        endSection();
     }
 
     private void constructHotLinks() {
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
index 598c91678..b1a9ddb89 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/Surefire597Test.java
@@ -48,12 +48,12 @@ public class Surefire597Test extends TestCase {
         i18n.initialize();
         ConsoleLogger consoleLogger = new NullConsoleLogger();
         SurefireReportRenderer r = new SurefireReportRenderer(
-                sink, i18n, "surefire", SiteTool.DEFAULT_LOCALE, consoleLogger, true, singletonList(report), null);
+                sink, i18n, "surefire", SiteTool.DEFAULT_LOCALE, consoleLogger, singletonList(report), null, true);
         r.render();
         String xml = writer.toString();
         assertThat(
                 xml,
-                containsString(toSystemNewLine("<table border=\"0\" class=\"bodyTable\">\n"
+                containsString(toSystemNewLine("<table class=\"bodyTable\">\n"
                         + "<tr class=\"a\">\n"
                         + "<th>Tests</th>\n"
                         + "<th>Errors</th>\n"
@@ -62,7 +62,7 @@ public class Surefire597Test extends TestCase {
                         + "<th>Success Rate</th>\n"
                         + "<th>Time</th></tr>\n"
                         + "<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -72,7 +72,7 @@ public class Surefire597Test extends TestCase {
                         + "</table>")));
         assertThat(
                 xml,
-                containsString(toSystemNewLine("<table border=\"0\" class=\"bodyTable\">\n"
+                containsString(toSystemNewLine("<table class=\"bodyTable\">\n"
                         + "<tr class=\"a\">\n"
                         + "<th>Package</th>\n"
                         + "<th>Tests</th>\n"
@@ -82,7 +82,7 @@ public class Surefire597Test extends TestCase {
                         + "<th>Success Rate</th>\n"
                         + "<th>Time</th></tr>\n"
                         + "<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -91,7 +91,7 @@ public class Surefire597Test extends TestCase {
                         + "<td>0 s</td></tr></table>")));
         assertThat(
                 xml,
-                containsString(toSystemNewLine("<table border=\"0\" class=\"bodyTable\">\n"
+                containsString(toSystemNewLine("<table class=\"bodyTable\">\n"
                         + "<tr class=\"a\">\n"
                         + "<th>-</th>\n"
                         + "<th>Class</th>\n"
@@ -102,7 +102,7 @@ public class Surefire597Test extends TestCase {
                         + "<th>Success Rate</th>\n"
                         + "<th>Time</th></tr>\n"
                         + "<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire.MyTest\"><img src=\"images/icon_error_sml.gif\" alt=\"\" /></a></td>\n"
+                        + "<td><a href=\"#surefire.MyTest\"><img src=\"images/icon_error_sml.gif\" /></a></td>\n"
                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
@@ -112,15 +112,15 @@ public class Surefire597Test extends TestCase {
                         + "<td>0 s</td></tr></table>")));
         assertThat(
                 xml,
-                containsString(toSystemNewLine("<table border=\"0\" class=\"bodyTable\">\n"
+                containsString(toSystemNewLine("<table class=\"bodyTable\">\n"
                         + "<tr class=\"a\">\n"
-                        + "<td align=\"left\"><img src=\"images/icon_error_sml.gif\" alt=\"\" /></td>\n"
+                        + "<td><img src=\"images/icon_error_sml.gif\" /></td>\n"
                         + "<td><a id=\"surefire.MyTest.test\"></a>test</td></tr>\n"
                         + "<tr class=\"b\">\n"
-                        + "<td align=\"left\">-</td>\n"
+                        + "<td>-</td>\n"
                         + "<td>java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: msg</td></tr>\n"
                         + "<tr class=\"a\">\n"
-                        + "<td align=\"left\">-</td>\n"
+                        + "<td>-</td>\n"
                         + "<td>\n"
                         + "<div id=\"test-error\">surefire.MyTest:13</div></td></tr></table>")));
     }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
index 5d38c0c46..1f42a6076 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/SurefireReportTest.java
@@ -19,16 +19,19 @@
 package org.apache.maven.plugins.surefire.report;
 
 import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.net.URL;
-import java.net.URLDecoder;
-import java.util.Locale;
+import java.util.Collections;
+import java.util.List;
 
+import org.apache.maven.model.Plugin;
 import org.apache.maven.plugin.LegacySupport;
+import org.apache.maven.plugin.MojoExecution;
+import org.apache.maven.plugin.descriptor.MojoDescriptor;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.plugin.testing.ArtifactStubFactory;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 import org.apache.maven.plugins.surefire.report.stubs.DependencyArtifactStubFactory;
+import org.apache.maven.project.MavenProject;
 import org.apache.maven.shared.utils.io.FileUtils;
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
@@ -45,28 +48,20 @@ import static org.hamcrest.MatcherAssert.assertThat;
 public class SurefireReportTest extends AbstractMojoTestCase {
     private ArtifactStubFactory artifactStubFactory;
 
-    // Can be removed with Doxia 2.0.0
-    private Locale origLocale;
-
     @Override
     protected void setUp() throws Exception {
         super.setUp();
         artifactStubFactory = new DependencyArtifactStubFactory(getTestFile("target"), true, false);
         artifactStubFactory.getWorkingDir().mkdirs();
-
-        origLocale = Locale.getDefault();
-        Locale.setDefault(Locale.ROOT);
     }
 
-    @Override
-    protected void tearDown() throws Exception {
-        Locale.setDefault(origLocale);
-        super.tearDown();
+    protected File getPluginXmlFile(String projectDirName) {
+        return new File(getBasedir(), "src/test/resources/unit/" + projectDirName + "/plugin-config.xml");
     }
 
     protected SurefireReport createReportMojo(File pluginXmlFile) throws Exception {
         SurefireReport mojo = (SurefireReport) lookupMojo("report", pluginXmlFile);
-        assertNotNull("Mojo found.", mojo);
+        assertNotNull("Mojo not found.", mojo);
 
         LegacySupport legacySupport = lookup(LegacySupport.class);
         legacySupport.setSession(newMavenSession(new MavenProjectStub()));
@@ -75,18 +70,26 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         repoSession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
                 .newInstance(repoSession, new LocalRepository(artifactStubFactory.getWorkingDir())));
 
-        // setVariableValueToObject( mojo, "session", legacySupport.getSession() );
-        setVariableValueToObject(mojo, "remoteRepositories", mojo.getProject().getRemoteArtifactRepositories());
+        List<MavenProject> reactorProjects =
+                mojo.getReactorProjects() != null ? mojo.getReactorProjects() : Collections.emptyList();
+
+        setVariableValueToObject(mojo, "mojoExecution", getMockMojoExecution());
+        // setVariableValueToObject(mojo, "session", legacySupport.getSession());
+        setVariableValueToObject(mojo, "repoSession", legacySupport.getRepositorySession());
+        setVariableValueToObject(mojo, "reactorProjects", reactorProjects);
+        setVariableValueToObject(
+                mojo, "remoteProjectRepositories", mojo.getProject().getRemoteProjectRepositories());
+        setVariableValueToObject(
+                mojo, "siteDirectory", new File(mojo.getProject().getBasedir(), "src/site"));
         return mojo;
     }
 
     public void testBasicSurefireReport() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "basic-surefire-report-test/plugin-config.xml");
+        File testPom = getPluginXmlFile("basic-surefire-report-test");
         SurefireReport mojo = createReportMojo(testPom);
         File outputDir = (File) getVariableValueFromObject(mojo, "outputDirectory");
         boolean showSuccess = (Boolean) getVariableValueFromObject(mojo, "showSuccess");
         File reportsDir = (File) getVariableValueFromObject(mojo, "reportsDirectory");
-        String outputName = (String) getVariableValueFromObject(mojo, "outputName");
         File xrefLocation = (File) getVariableValueFromObject(mojo, "xrefLocation");
         boolean linkXRef = (Boolean) getVariableValueFromObject(mojo, "linkXRef");
 
@@ -96,7 +99,6 @@ public class SurefireReportTest extends AbstractMojoTestCase {
                 new File(getBasedir() + "/src/test/resources/unit/basic-surefire-report-test/surefire-reports")
                         .getAbsolutePath(),
                 reportsDir.getAbsolutePath());
-        assertEquals("surefire-report", outputName);
         assertEquals(
                 new File(getBasedir() + "/target/site/unit/basic-surefire-report-test/xref-test").getAbsolutePath(),
                 xrefLocation.getAbsolutePath());
@@ -111,14 +113,24 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertTrue(idx >= 0);
     }
 
-    private File getUnitBaseDir() throws UnsupportedEncodingException {
-        URL resource = getClass().getResource("/unit");
-        // URLDecoder.decode necessary for JDK 1.5+, where spaces are escaped to %20
-        return new File(URLDecoder.decode(resource.getPath(), "UTF-8")).getAbsoluteFile();
+    private MojoExecution getMockMojoExecution() {
+        MojoDescriptor md = new MojoDescriptor();
+        md.setGoal("report");
+
+        MojoExecution me = new MojoExecution(md);
+
+        PluginDescriptor pd = new PluginDescriptor();
+        Plugin p = new Plugin();
+        p.setGroupId("org.apache.maven.plugins");
+        p.setArtifactId("maven-surefire-report-plugin");
+        pd.setPlugin(p);
+        md.setPluginDescriptor(pd);
+
+        return me;
     }
 
     public void testBasicSurefireReportIfShowSuccessIsFalse() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "basic-surefire-report-success-false/plugin-config.xml");
+        File testPom = getPluginXmlFile("basic-surefire-report-success-false");
         SurefireReport mojo = createReportMojo(testPom);
         boolean showSuccess = (Boolean) getVariableValueFromObject(mojo, "showSuccess");
         assertFalse(showSuccess);
@@ -133,7 +145,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testBasicSurefireReportIfLinkXrefIsFalse() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "basic-surefire-report-linkxref-false/plugin-config.xml");
+        File testPom = getPluginXmlFile("basic-surefire-report-linkxref-false");
         SurefireReport mojo = createReportMojo(testPom);
         boolean linkXRef = (Boolean) getVariableValueFromObject(mojo, "linkXRef");
         assertFalse(linkXRef);
@@ -148,7 +160,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testBasicSurefireReportIfReportingIsNull() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "basic-surefire-report-reporting-null/plugin-config.xml");
+        File testPom = getPluginXmlFile("basic-surefire-report-reporting-null");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report =
@@ -162,7 +174,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
 
     @SuppressWarnings("checkstyle:methodname")
     public void testBasicSurefireReport_AnchorTestCases() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "basic-surefire-report-anchor-test-cases/plugin-config.xml");
+        File testPom = getPluginXmlFile("basic-surefire-report-anchor-test-cases");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report =
@@ -179,7 +191,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testSurefireReportSingleError() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-report-single-error/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-report-single-error");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report = new File(getBasedir(), "target/site/unit/surefire-report-single-error/surefire-report.html");
@@ -189,7 +201,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -199,7 +211,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -209,9 +221,9 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">"
+                        + "<td>"
                         + "<a href=\"#surefire.MyTest\">"
-                        + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
+                        + "<img src=\"images/icon_error_sml.gif\" />"
                         + "</a>"
                         + "</td>\n"
                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
@@ -266,7 +278,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testSurefireReportNestedClassTrimStackTrace() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-report-nestedClass-trimStackTrace/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-report-nestedClass-trimStackTrace");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report = new File(
@@ -277,7 +289,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -287,7 +299,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -297,9 +309,9 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">"
+                        + "<td>"
                         + "<a href=\"#surefire.MyTest\">"
-                        + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
+                        + "<img src=\"images/icon_error_sml.gif\" />"
                         + "</a>"
                         + "</td>\n"
                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
@@ -330,7 +342,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testSurefireReportNestedClass() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-report-nestedClass/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-report-nestedClass");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report = new File(getBasedir(), "target/site/unit/surefire-report-nestedClass/surefire-report.html");
@@ -340,7 +352,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -350,7 +362,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -360,9 +372,9 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">"
+                        + "<td>"
                         + "<a href=\"#surefire.MyTest\">"
-                        + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
+                        + "<img src=\"images/icon_error_sml.gif\" />"
                         + "</a>"
                         + "</td>\n"
                         + "<td><a href=\"#surefire.MyTest\">MyTest</a></td>\n"
@@ -417,7 +429,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testSurefireReportEnclosedTrimStackTrace() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-report-enclosed-trimStackTrace/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-report-enclosed-trimStackTrace");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report =
@@ -428,7 +440,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -438,7 +450,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -448,9 +460,9 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">"
+                        + "<td>"
                         + "<a href=\"#surefire.MyTest$A\">"
-                        + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
+                        + "<img src=\"images/icon_error_sml.gif\" />"
                         + "</a>"
                         + "</td>\n"
                         + "<td><a href=\"#surefire.MyTest$A\">MyTest$A</a></td>\n"
@@ -481,7 +493,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testSurefireReportEnclosed() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-report-enclosed/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-report-enclosed");
         SurefireReport mojo = createReportMojo(testPom);
         mojo.execute();
         File report = new File(getBasedir(), "target/site/unit/surefire-report-enclosed/surefire-report.html");
@@ -491,7 +503,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">1</td>\n"
+                        + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
                         + "<td>0</td>\n"
@@ -501,7 +513,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\"><a href=\"#surefire\">surefire</a></td>\n"
+                        + "<td><a href=\"#surefire\">surefire</a></td>\n"
                         + "<td>1</td>\n"
                         + "<td>1</td>\n"
                         + "<td>0</td>\n"
@@ -511,9 +523,9 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertThat(
                 htmlContent,
                 containsString(toSystemNewLine("<tr class=\"b\">\n"
-                        + "<td align=\"left\">"
+                        + "<td>"
                         + "<a href=\"#surefire.MyTest$A\">"
-                        + "<img src=\"images/icon_error_sml.gif\" alt=\"\" />"
+                        + "<img src=\"images/icon_error_sml.gif\" />"
                         + "</a>"
                         + "</td>\n"
                         + "<td><a href=\"#surefire.MyTest$A\">MyTest$A</a></td>\n"
@@ -578,7 +590,7 @@ public class SurefireReportTest extends AbstractMojoTestCase {
     }
 
     public void testCustomTitleAndDescriptionReport() throws Exception {
-        File testPom = new File(getUnitBaseDir(), "surefire-1183/plugin-config.xml");
+        File testPom = getPluginXmlFile("surefire-1183");
         SurefireReport mojo = createReportMojo(testPom);
 
         File outputDir = (File) getVariableValueFromObject(mojo, "outputDirectory");
@@ -599,6 +611,8 @@ public class SurefireReportTest extends AbstractMojoTestCase {
         assertTrue(report.exists());
 
         String htmlContent = FileUtils.fileRead(report);
-        assertTrue(htmlContent.contains("<h2><a name=\"Acceptance_Test\"></a>Acceptance Test</h2></section>"));
+        assertThat(
+                htmlContent,
+                containsString(toSystemNewLine("<section><a id=\"Acceptance_Test\"></a>\n<h1>Acceptance Test</h1>")));
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/AnchorTestCasesStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/AnchorTestCasesStub.java
index 1e4a58d6e..3b69f4ba8 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/AnchorTestCasesStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class AnchorTestCasesStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "basic-surefire-report-anchor-test-cases";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
index 1e4a58d6e..bdcce6b04 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class EnclosedStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-report-enclosed";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
index 1e4a58d6e..f5ba0e74b 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/EnclosedTrimStackTraceStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class EnclosedTrimStackTraceStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-report-enclosed-trimStackTrace";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/LinkXrefFalseStub.java
similarity index 68%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/LinkXrefFalseStub.java
index 1e4a58d6e..7bf7cf44b 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/LinkXrefFalseStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class LinkXrefFalseStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "basic-surefire-report-linkxref-false";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
index 1e4a58d6e..6f1547b37 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class NestedClassStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-report-nestedClass";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
index 1e4a58d6e..1a30076f5 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/NestedClassTrimStackTraceStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class NestedClassTrimStackTraceStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-report-nestedClass-trimStackTrace";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportTestStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportTestStub.java
index 1e4a58d6e..d04125a72 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportTestStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class ReportTestStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "basic-surefire-report-test";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportingNullStub.java
similarity index 86%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportingNullStub.java
index 1e4a58d6e..86b557ab0 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/ReportingNullStub.java
@@ -22,12 +22,11 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
 
 /**
  * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
  */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
+public class ReportingNullStub extends SurefireReportMavenProjectStub {
     /**
      * {@inheritDoc}
      */
@@ -35,4 +34,9 @@ public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
     public List<ReportPlugin> getReportPlugins() {
         return new ArrayList<>();
     }
+
+    @Override
+    protected String getProjectDirName() {
+        return "basic-surefire-report-reporting-null";
+    }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
index 1e4a58d6e..60e83182e 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SingleErrorStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class SingleErrorStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-report-single-error";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SuccessFalseStub.java
similarity index 67%
copy from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
copy to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SuccessFalseStub.java
index 1e4a58d6e..afe355951 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SuccessFalseStub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class SuccessFalseStub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "basic-surefire-report-success-false";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/Surefire1183Stub.java
similarity index 67%
rename from maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
rename to maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/Surefire1183Stub.java
index 1e4a58d6e..e39849618 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub2.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/Surefire1183Stub.java
@@ -18,21 +18,10 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
-import java.util.ArrayList;
-import java.util.List;
+public class Surefire1183Stub extends SurefireReportMavenProjectStub {
 
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
-
-/**
- * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
- */
-public class SurefireReportMavenProjectStub2 extends MavenProjectStub {
-    /**
-     * {@inheritDoc}
-     */
     @Override
-    public List<ReportPlugin> getReportPlugins() {
-        return new ArrayList<>();
+    protected String getProjectDirName() {
+        return "surefire-1183";
     }
 }
diff --git a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
index de27f52f8..952b6ff39 100644
--- a/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
+++ b/maven-surefire-report-plugin/src/test/java/org/apache/maven/plugins/surefire/report/stubs/SurefireReportMavenProjectStub.java
@@ -18,22 +18,35 @@
  */
 package org.apache.maven.plugins.surefire.report.stubs;
 
+import java.io.File;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.maven.RepositoryUtils;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
 import org.apache.maven.artifact.repository.MavenArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.model.Model;
-import org.apache.maven.model.ReportPlugin;
-import org.apache.maven.model.Reporting;
 import org.apache.maven.plugin.testing.stubs.MavenProjectStub;
+import org.eclipse.aether.repository.RemoteRepository;
 
 /**
  * @author <a href="mailto:aramirez@apache.org">Allan Ramirez</a>
  */
-public class SurefireReportMavenProjectStub extends MavenProjectStub {
+public abstract class SurefireReportMavenProjectStub extends MavenProjectStub {
+
+    protected abstract String getProjectDirName();
+
+    @Override
+    public File getBasedir() {
+        return new File(super.getBasedir() + "/src/test/resources/unit/" + getProjectDirName());
+    }
+
+    @Override
+    public File getFile() {
+        return new File(getBasedir(), "plugin-config.xml");
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -47,10 +60,6 @@ public class SurefireReportMavenProjectStub extends MavenProjectStub {
         reportPlugin.setVersion("2.0-SNAPSHOT");
         reporting.addPlugin(reportPlugin);
 
-        Model model = new Model();
-
-        model.setReporting(reporting);
-
         return reporting.getPlugins();
     }
 
@@ -65,4 +74,9 @@ public class SurefireReportMavenProjectStub extends MavenProjectStub {
 
         return Collections.singletonList(repository);
     }
+
+    @Override
+    public List<RemoteRepository> getRemoteProjectRepositories() {
+        return RepositoryUtils.toRepos(getRemoteArtifactRepositories());
+    }
 }
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
index de261c2f9..fe0e78d7f 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-anchor-test-cases/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/basic-surefire-report-anchor-test-cases</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.AnchorTestCasesStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-anchor-test-cases/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
index 636d7c296..01f10b34a 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-linkxref-false/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/basic-surefire-report-linkxref-false</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.LinkXrefFalseStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-linkxref-false/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
index 961cf3757..f53e5dfea 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-reporting-null/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/basic-surefire-report-reporting-null</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub2"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.ReportingNullStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-reporting-null/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
index 8301318ff..27d6b2e38 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-success-false/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/basic-surefire-report-success-false</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SuccessFalseStub"/>
           <showSuccess>false</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-success-false/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
index 808387752..782c972c8 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/basic-surefire-report-test/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/basic-surefire-report-test</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.ReportTestStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/basic-surefire-report-test/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-1183/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-1183/plugin-config.xml
index eea0ee279..5d58bfc1b 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-1183/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-1183/plugin-config.xml
@@ -18,21 +18,18 @@
   -->
 
 <project>
-
-    <build>
-        <plugins>
-            <plugin>
-                <artifactId>maven-surefire-report-plugin</artifactId>
-                <configuration>
-                    <project
-                            implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
-                    <outputName>acceptance-test-report</outputName>
-                    <localRepository>${localRepository}</localRepository>
-                    <customBundle>${basedir}/src/test/resources/unit/surefire-1183/src/site/custom/surefire-report.properties</customBundle>
-                    <outputDirectory>${basedir}/target/site/unit/surefire-1183</outputDirectory>
-                    <reportsDirectory>${basedir}/src/test/resources/unit/surefire-1183/acceptancetest-reports</reportsDirectory>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-surefire-report-plugin</artifactId>
+        <configuration>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.Surefire1183Stub"/>
+          <outputName>acceptance-test-report</outputName>
+          <customBundle>${basedir}/src/test/resources/unit/surefire-1183/src/site/custom/surefire-report.properties</customBundle>
+          <outputDirectory>${basedir}/target/site/unit/surefire-1183</outputDirectory>
+          <reportsDirectory>${basedir}/src/test/resources/unit/surefire-1183/acceptancetest-reports</reportsDirectory>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
index 86d893d69..d02fe60da 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/surefire-report-enclosed-trimStackTrace</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.EnclosedTrimStackTraceStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
index 2ee7e9fe5..5bb6b5ab6 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-enclosed/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/surefire-report-enclosed</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.EnclosedStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-enclosed/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
index ac3ee5db9..7e6c0a506 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/surefire-report-nestedClass-trimStackTrace</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.NestedClassTrimStackTraceStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
index 49cd79b7b..5b577227c 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-nestedClass/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/surefire-report-nestedClass</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.NestedClassStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-nestedClass/surefire-reports
           </reportsDirectory>
diff --git a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
index 4dad64907..cfb5505a2 100644
--- a/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
+++ b/maven-surefire-report-plugin/src/test/resources/unit/surefire-report-single-error/plugin-config.xml
@@ -24,8 +24,7 @@
         <artifactId>maven-surefire-report-plugin</artifactId>
         <configuration>
           <outputDirectory>${basedir}/target/site/unit/surefire-report-single-error</outputDirectory>
-          <localRepository>${localRepository}</localRepository>
-          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SurefireReportMavenProjectStub"/>
+          <project implementation="org.apache.maven.plugins.surefire.report.stubs.SingleErrorStub"/>
           <showSuccess>true</showSuccess>
           <reportsDirectory>${basedir}/src/test/resources/unit/surefire-report-single-error/surefire-reports
           </reportsDirectory>
diff --git a/pom.xml b/pom.xml
index b8c85c822..9f0019427 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,11 +124,6 @@
         <artifactId>commons-io</artifactId>
         <version>${commonsIoVersion}</version>
       </dependency>
-      <dependency>
-        <groupId>org.apache.maven.reporting</groupId>
-        <artifactId>maven-reporting-api</artifactId>
-        <version>3.1.1</version>
-      </dependency>
       <dependency>
         <groupId>org.apache.maven</groupId>
         <artifactId>maven-core</artifactId>
@@ -168,22 +163,6 @@
         <version>${mavenSharedUtilsVersion}</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.maven.reporting</groupId>
-        <artifactId>maven-reporting-impl</artifactId>
-        <version>3.2.0</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-core</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.apache.maven</groupId>
-            <artifactId>maven-plugin-api</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
-      <dependency>
-        <!-- Do not upgrade, leads to test failures, needs analysis -->
         <groupId>org.apache.maven.shared</groupId>
         <artifactId>maven-common-artifact-filters</artifactId>
         <version>3.1.1</version>
diff --git a/surefire-its/src/test/resources/surefire-260-testWithIdenticalNames/pom.xml b/surefire-its/src/test/resources/surefire-260-testWithIdenticalNames/pom.xml
index 4aa101ba5..2a0af56a9 100644
--- a/surefire-its/src/test/resources/surefire-260-testWithIdenticalNames/pom.xml
+++ b/surefire-its/src/test/resources/surefire-260-testWithIdenticalNames/pom.xml
@@ -57,7 +57,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-site-plugin</artifactId>
-                <version>3.7.1</version>
+                <version>4.0.0-M13</version>
             </plugin>
         </plugins>
     </build>
@@ -67,7 +67,7 @@
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-project-info-reports-plugin</artifactId>
-                <version>3.0.0</version>
+                <version>4.0.0-M1-SNAPSHOT</version>
                 <configuration>
                     <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                 </configuration>