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 a12949af65..b3ab9b1e2a 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.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.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;
@@ -78,16 +80,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.
+ *
+ * Default: {@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.
@@ -150,7 +155,7 @@ public void executeReport(Locale locale) throws MavenReportException {
locale,
getConsoleLogger(),
getReportsDirectories(),
- determineXrefLocation(),
+ constructXrefTestLocation(),
showSuccess);
r.render();
}
@@ -252,12 +257,13 @@ private List getProjectsWithoutRoot() {
return result;
}
- private String determineXrefLocation() {
+ private String constructXrefTestLocation() {
String location = null;
-
if (linkXRef) {
- String relativePath = PathTool.getRelativePath(
- getReportOutputDirectory().getAbsolutePath(), xrefLocation.getAbsolutePath());
+ File xrefLocation = getXrefTestLocation();
+
+ String relativePath =
+ PathTool.getRelativePath(getReportOutputDirectory().getAbsolutePath(), xrefLocation.getAbsolutePath());
if (relativePath == null || relativePath.isEmpty()) {
relativePath = ".";
}
@@ -267,10 +273,11 @@ private String determineXrefLocation() {
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 reportPlugins =
+ reporting != null ? reporting.getPlugins() : Collections.emptyList();
+ for (ReportPlugin plugin : reportPlugins) {
+ String artifactId = plugin.getArtifactId();
if ("maven-jxr-plugin".equals(artifactId) || "jxr-maven-plugin".equals(artifactId)) {
location = relativePath;
}
@@ -284,6 +291,10 @@ private String determineXrefLocation() {
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 1f42a6076a..f84d504b33 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 void testBasicSurefireReport() throws Exception {
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 void testBasicSurefireReport() throws Exception {
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/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 fe0e78d7f7..a215e335ae 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 @@
${basedir}/src/test/resources/unit/basic-surefire-report-anchor-test-cases/surefire-reports
surefire-report
- ${basedir}/target/site/unit/basic-surefire-report-anchor-test-cases/xref-test
+ ${basedir}/target/site/unit/basic-surefire-report-anchor-test-cases/xref-test
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 01f10b34a3..b1fd94a512 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,7 +29,7 @@
${basedir}/src/test/resources/unit/basic-surefire-report-linkxref-false/surefire-reports
surefire-report
- ${basedir}/target/site/unit/basic-surefire-report-linkxref-false/xref-test
+ ${basedir}/target/site/unit/basic-surefire-report-linkxref-false/xref-test
false
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 f53e5dfea3..ee4e974179 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,7 +29,7 @@
${basedir}/src/test/resources/unit/basic-surefire-report-reporting-null/surefire-reports
surefire-report
- ${basedir}/target/site/unit/basic-surefire-report-test/xref-test
+ ${basedir}/target/site/unit/basic-surefire-report-test/xref-test
true
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 27d6b2e388..452fb05163 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,7 +29,7 @@
${basedir}/src/test/resources/unit/basic-surefire-report-success-false/surefire-reports
surefire-report
- ${basedir}/target/site/unit/basic-surefire-report-success-false/xref-test
+ ${basedir}/target/site/unit/basic-surefire-report-success-false/xref-test
true
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 782c972c84..5a4f3fb56a 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,7 +29,7 @@
${basedir}/src/test/resources/unit/basic-surefire-report-test/surefire-reports
surefire-report
- ${basedir}/target/site/unit/basic-surefire-report-test/xref-test
+ ${basedir}/target/site/unit/basic-surefire-report-test/xref-test
true
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 d02fe60dab..eca42f0215 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,7 +29,7 @@
${basedir}/src/test/resources/unit/surefire-report-enclosed-trimStackTrace/surefire-reports
surefire-report
- ${basedir}/target/site/unit/surefire-report-enclosed-trimStackTrace/xref-test
+ ${basedir}/target/site/unit/surefire-report-enclosed-trimStackTrace/xref-test
true
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 5bb6b5ab64..0424ef127d 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,7 +29,7 @@
${basedir}/src/test/resources/unit/surefire-report-enclosed/surefire-reports
surefire-report
- ${basedir}/target/site/unit/surefire-report-enclosed/xref-test
+ ${basedir}/target/site/unit/surefire-report-enclosed/xref-test
true
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 7e6c0a506c..e1657df724 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,7 +29,7 @@
${basedir}/src/test/resources/unit/surefire-report-nestedClass-trimStackTrace/surefire-reports
surefire-report
- ${basedir}/target/site/unit/surefire-report-nestedClass-trimStackTrace/xref-test
+ ${basedir}/target/site/unit/surefire-report-nestedClass-trimStackTrace/xref-test
true
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 5b577227c5..f8e4752b06 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,7 +29,7 @@
${basedir}/src/test/resources/unit/surefire-report-nestedClass/surefire-reports
surefire-report
- ${basedir}/target/site/unit/surefire-report-nestedClass/xref-test
+ ${basedir}/target/site/unit/surefire-report-nestedClass/xref-test
true
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 cfb5505a25..df3e568991 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,7 +29,7 @@
${basedir}/src/test/resources/unit/surefire-report-single-error/surefire-reports
surefire-report
- ${basedir}/target/site/unit/surefire-report-single-error/xref-test
+ ${basedir}/target/site/unit/surefire-report-single-error/xref-test
true