You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ad...@apache.org on 2021/09/02 08:22:36 UTC
[maven-pmd-plugin] 03/04: [MPMD-321] Display PMD version that is
being used also for pmd:pmd and pmd:cpd
This is an automated email from the ASF dual-hosted git repository.
adangel pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
commit b8fc018ef11b72bfa1306f0a85eea7370902079e
Author: Andreas Dangel <ad...@apache.org>
AuthorDate: Thu Sep 2 10:13:18 2021 +0200
[MPMD-321] Display PMD version that is being used also for pmd:pmd and
pmd:cpd
---
.../maven/plugins/pmd/AbstractPmdViolationCheckMojo.java | 4 ++--
.../java/org/apache/maven/plugins/pmd/CpdReport.java | 1 +
.../java/org/apache/maven/plugins/pmd/PmdReport.java | 1 +
.../apache/maven/plugins/pmd/PmdViolationCheckMojo.java | 2 +-
.../apache/maven/plugins/pmd/CapturingPrintStream.java | 3 ++-
.../java/org/apache/maven/plugins/pmd/CpdReportTest.java | 4 ++++
.../maven/plugins/pmd/CpdViolationCheckMojoTest.java | 7 ++++++-
.../java/org/apache/maven/plugins/pmd/PmdReportTest.java | 3 +++
.../maven/plugins/pmd/PmdViolationCheckMojoTest.java | 16 +++++++++++++++-
.../pmd-check-default-configuration-plugin-config.xml | 8 ++++----
10 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
index a44591e..6f0b3ea 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdViolationCheckMojo.java
@@ -124,8 +124,6 @@ public abstract class AbstractPmdViolationCheckMojo<D>
final int failurePriority )
throws MojoFailureException, MojoExecutionException
{
- getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
-
if ( aggregate && !project.isExecutionRoot() )
{
return;
@@ -141,6 +139,8 @@ public abstract class AbstractPmdViolationCheckMojo<D>
if ( outputFile.exists() )
{
+ getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
+
try
{
final ViolationDetails<D> violations = getViolations( outputFile, failurePriority );
diff --git a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
index 4b3ad5b..20277f9 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java
@@ -249,6 +249,7 @@ public class CpdReport
request.setJavaExecutable( javaExecutable );
}
+ getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
cpdResult = CpdExecutor.execute( request );
}
catch ( UnsupportedEncodingException e )
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
index 6d65967..12c029b 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java
@@ -398,6 +398,7 @@ public class PmdReport
request.setJavaExecutable( javaExecutable );
}
+ getLog().info( "PMD version: " + AbstractPmdReport.getPmdVersion() );
pmdResult = PmdExecutor.execute( request );
}
diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java b/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
index 43202b8..c4bc9a6 100644
--- a/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
+++ b/src/main/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojo.java
@@ -70,7 +70,7 @@ public class PmdViolationCheckMojo
* Only values from 1 to 5 are valid.
*/
@Parameter( property = "pmd.failurePriority", defaultValue = "5", required = true )
- private int failurePriority;
+ private int failurePriority = 5;
/**
* Skip the PMD checks. Most useful on the command line via "-Dpmd.skip=true".
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java b/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
index 09adfd5..272a302 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CapturingPrintStream.java
@@ -27,7 +27,7 @@ import org.slf4j.impl.MavenSlf4jSimpleFriend;
* Captures log output from simple slf4j for asserting in unit tests.
*/
class CapturingPrintStream extends PrintStream {
- private final boolean quiet;
+ private boolean quiet;
private StringBuilder buffer = new StringBuilder();
private CapturingPrintStream( boolean quiet ) {
@@ -51,6 +51,7 @@ class CapturingPrintStream extends PrintStream {
if ( capture != null )
{
capture.buffer.setLength( 0 );
+ capture.quiet = quiet;
}
else
{
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
index c016283..4970975 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CpdReportTest.java
@@ -79,6 +79,10 @@ public class CpdReportTest
assertTrue( lowerCaseContains( str, "App.java" ) );
assertTrue( lowerCaseContains( str, "public String dup( String str )" ) );
assertTrue( lowerCaseContains( str, "tmp = tmp + str.substring( i, i + 1);" ) );
+
+ // the version should be logged
+ String output = CapturingPrintStream.getOutput();
+ assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
}
/**
diff --git a/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java b/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
index 09c0dd5..081da74 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/CpdViolationCheckMojoTest.java
@@ -36,6 +36,7 @@ public class CpdViolationCheckMojoTest
throws Exception
{
super.setUp();
+ CapturingPrintStream.init( true );
}
public void testDefaultConfiguration()
@@ -53,7 +54,11 @@ public class CpdViolationCheckMojoTest
}
catch ( final Exception e )
{
- assertTrue( true );
+ // the version should be logged
+ String output = CapturingPrintStream.getOutput();
+ assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+
+ assertTrue( e.getMessage().startsWith( "You have 1 CPD duplication." ) );
}
}
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
index 5fa2952..5420ba6 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java
@@ -111,6 +111,9 @@ public class PmdReportTest
assertFalse( output.contains( "deprecated Rule name" ) );
assertFalse( output.contains( "Discontinue using Rule name" ) );
assertFalse( output.contains( "is referenced multiple times" ) );
+
+ // the version should be logged
+ assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
}
public void testDefaultConfigurationNotRenderRuleViolationPriority()
diff --git a/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java b/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
index 940c3f2..0dc6555 100644
--- a/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
+++ b/src/test/java/org/apache/maven/plugins/pmd/PmdViolationCheckMojoTest.java
@@ -39,11 +39,21 @@ public class PmdViolationCheckMojoTest
throws Exception
{
super.setUp();
+ CapturingPrintStream.init( true );
}
public void testDefaultConfiguration()
throws Exception
{
+ File testPomPmd =
+ new File( getBasedir(),
+ "src/test/resources/unit/default-configuration/default-configuration-plugin-config.xml" );
+ final PmdReport pmdMojo = (PmdReport) lookupMojo( "pmd", testPomPmd );
+ pmdMojo.execute();
+
+ // clear the output from previous pmd:pmd execution
+ CapturingPrintStream.init( true );
+
try
{
final File testPom =
@@ -56,7 +66,11 @@ public class PmdViolationCheckMojoTest
}
catch ( final Exception e )
{
- assertTrue( true );
+ // the version should be logged
+ String output = CapturingPrintStream.getOutput();
+ assertTrue ( output.contains( "PMD version: " + AbstractPmdReport.getPmdVersion() ) );
+
+ assertTrue( e.getMessage().startsWith( "You have 8 PMD violations." ) );
}
}
diff --git a/src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml b/src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml
index 0314f40..c1a4e3c 100644
--- a/src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml
+++ b/src/test/resources/unit/default-configuration/pmd-check-default-configuration-plugin-config.xml
@@ -32,12 +32,12 @@ under the License.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
- <configuration>
- <sourceDirectory>${basedir}/src/test/resources/unit/default-configuration</sourceDirectory>
+ <configuration>
+ <project implementation="org.apache.maven.plugins.pmd.stubs.DefaultConfigurationMavenProjectStub"/>
<targetDirectory>${basedir}/target/test/unit/default-configuration/target</targetDirectory>
<failOnViolation>true</failOnViolation>
- <language>java</language>
- <sourceEncoding>UTF-8</sourceEncoding>
+ <printFailingErrors>true</printFailingErrors>
+<!-- <failurePriority>5</failurePriority> -->
</configuration>
</plugin>
</plugins>