Skip to content

Commit

Permalink
Dynamically calculate xrefDir/xrefTestDir
Browse files Browse the repository at this point in the history
  • Loading branch information
michael-o committed Nov 16, 2023
1 parent 1bffca5 commit 922d072
Show file tree
Hide file tree
Showing 22 changed files with 44 additions and 37 deletions.
39 changes: 23 additions & 16 deletions src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java
Expand Up @@ -78,23 +78,25 @@ public abstract class AbstractPmdReport extends AbstractMavenReport {
protected String format = "xml";

/**
* Link the violation line numbers to the source xref. Links will be created automatically if the jxr plugin is
* Link the violation line numbers to the source XRef. Links will be created automatically if the JXR plugin is
* being used.
*/
@Parameter(property = "linkXRef", defaultValue = "true")
private boolean linkXRef;

/**
* Location of the Xrefs to link to.
* Directory where XRef is generated for this project. The default value is calculated from
* {@link #getReportOutputDirectory()} and concatenated with {@code xref}.
*/
@Parameter(defaultValue = "${project.reporting.outputDirectory}/xref")
private File xrefLocation;
@Parameter
private File xrefDir;

/**
* Location of the Test Xrefs to link to.
* Directory where Test XRef is generated for this project. The default value is calculated from
* {@link #getReportOutputDirectory()} and concatenated with {@code xref-test}.
*/
@Parameter(defaultValue = "${project.reporting.outputDirectory}/xref-test")
private File xrefTestLocation;
@Parameter
private File xrefTestDir;

/**
* A list of files to exclude from checking. Can contain Ant-style wildcards and double wildcards. Note that these
Expand Down Expand Up @@ -268,18 +270,18 @@ protected MojoExecution getMojoExecution() {
return mojoExecution;
}

protected String constructXRefLocation(boolean test) {
protected String constructXrefLocation(boolean test) {
String location = null;
if (linkXRef) {
File xrefLoc = test ? xrefTestLocation : xrefLocation;
File xrefDir = getXrefDir(test);

String relativePath =
PathTool.getRelativePath(getReportOutputDirectory().getAbsolutePath(), xrefLoc.getAbsolutePath());
PathTool.getRelativePath(getReportOutputDirectory().getAbsolutePath(), xrefDir.getAbsolutePath());
if (relativePath == null || relativePath.isEmpty()) {
relativePath = ".";
}
relativePath = relativePath + "/" + xrefLoc.getName();
if (xrefLoc.exists()) {
relativePath = relativePath + "/" + xrefDir.getName();
if (xrefDir.exists()) {
// XRef was already generated by manual execution of a lifecycle binding
location = relativePath;
} else {
Expand All @@ -302,6 +304,11 @@ protected String constructXRefLocation(boolean test) {
return location;
}

protected File getXrefDir(boolean test) {
File dir = test ? xrefTestDir : xrefDir;
return dir != null ? dir : new File(getReportOutputDirectory(), test ? "xref-test" : "xref");
}

/**
* Convenience method to get the list of files where the PMD tool will be executed
*
Expand Down Expand Up @@ -335,7 +342,7 @@ protected Map<File, PmdFileInfo> getFilesToProcess() throws IOException {
for (String root : compileSourceRoots) {
File sroot = new File(root);
if (sroot.exists()) {
String sourceXref = constructXRefLocation(false);
String sourceXref = constructXrefLocation(false);
directories.add(new PmdFileInfo(project, sroot, sourceXref));
}
}
Expand All @@ -348,7 +355,7 @@ protected Map<File, PmdFileInfo> getFilesToProcess() throws IOException {
for (String root : testSourceRoots) {
File sroot = new File(root);
if (sroot.exists()) {
String testXref = constructXRefLocation(true);
String testXref = constructXrefLocation(true);
directories.add(new PmdFileInfo(project, sroot, testXref));
}
}
Expand All @@ -359,7 +366,7 @@ protected Map<File, PmdFileInfo> getFilesToProcess() throws IOException {
for (String root : localCompileSourceRoots) {
File sroot = new File(root);
if (sroot.exists()) {
String sourceXref = constructXRefLocation(false);
String sourceXref = constructXrefLocation(false);
directories.add(new PmdFileInfo(localProject, sroot, sourceXref));
}
}
Expand All @@ -368,7 +375,7 @@ protected Map<File, PmdFileInfo> getFilesToProcess() throws IOException {
for (String root : localTestCompileSourceRoots) {
File sroot = new File(root);
if (sroot.exists()) {
String testXref = constructXRefLocation(true);
String testXref = constructXrefLocation(true);
directories.add(new PmdFileInfo(localProject, sroot, testXref));
}
}
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/custom-configuration/target</targetDirectory>
<format>csv</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/custom-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/custom-configuration/target/site/xref</xrefDir>
<minimumTokens>25</minimumTokens>
<excludes>
<exclude>**/Sample.java</exclude>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/custom-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>csv</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/custom-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/custom-configuration/target/site/xref</xrefDir>
<inputEncoding>ISO-8859-1</inputEncoding>
<rulesets>
<ruleset>rulesets/java/maven-pmd-plugin-default.xml</ruleset>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/skip-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>csv</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/skip-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/skip-configuration/target/site/xref</xrefDir>
<inputEncoding>ISO-8859-1</inputEncoding>
<targetJdk>1.4</targetJdk>
<minimumPriority>4</minimumPriority>
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>100</minimumTokens>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>100</minimumTokens>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -37,7 +37,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>10</minimumTokens>
<language>javascript</language>
<includes>
Expand Down
Expand Up @@ -37,7 +37,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>5</minimumTokens>
<language>jsp</language>
<includes>
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>100</minimumTokens>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<format>xml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<minimumTokens>100</minimumTokens>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -42,7 +42,7 @@ under the License.
</rulesets>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -48,7 +48,7 @@ under the License.
</rulesets>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/pmd-with-analysis-cache-plugin-config/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/pmd-with-analysis-cache-plugin-config/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/pmd-with-analysis-cache-plugin-config/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<analysisCache>true</analysisCache>
<analysisCacheLocation>${basedir}/target/test/unit/pmd-with-analysis-cache-plugin-config/target/pmd/pmd.cache</analysisCacheLocation>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<suppressMarker>SUPPRESSME</suppressMarker>
<renderSuppressedViolations>false</renderSuppressedViolations>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/default-configuration/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xml</format>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>UTF-8</inputEncoding>
<suppressMarker>SUPPRESSME</suppressMarker>
<compileSourceRoots>
Expand Down
Expand Up @@ -38,7 +38,7 @@ under the License.
<targetDirectory>${basedir}/target/test/unit/invalid-format/target</targetDirectory>
<format>xhtml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/invalid-format/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/invalid-format/target/site/xref</xrefDir>
<minimumTokens>25</minimumTokens>
</configuration>
</plugin>
Expand Down
Expand Up @@ -39,7 +39,7 @@ under the License.
<rulesetsTargetDirectory>${basedir}/target/test/unit/invalid-format/target/pmd/rulesets</rulesetsTargetDirectory>
<format>xhtml</format>
<linkXRef>false</linkXRef>
<xrefLocation>${basedir}/target/test/unit/invalid-format/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/invalid-format/target/site/xref</xrefDir>
<inputEncoding>ISO-8859-1</inputEncoding>
</configuration>
</plugin>
Expand Down
Expand Up @@ -40,7 +40,7 @@ under the License.
<format>xml</format>
<targetJdk>1.x</targetJdk>
<linkXRef>true</linkXRef>
<xrefLocation>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefLocation>
<xrefDir>${basedir}/target/test/unit/default-configuration/target/site/xref</xrefDir>
<inputEncoding>ISO-8859-1</inputEncoding>
<compileSourceRoots>
<compileSourceRoot>${basedir}/src/test/resources/unit/default-configuration/</compileSourceRoot>
Expand Down

0 comments on commit 922d072

Please sign in to comment.