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 <adan...@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>