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>