This is an automated email from the ASF dual-hosted git repository. adangel pushed a commit to branch pmd7 in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
commit 98539a1975b471882c02a29043635e2f7c2befaa Author: Andreas Dangel <adan...@apache.org> AuthorDate: Thu Jun 9 18:50:10 2022 +0200 Upgrade to PMD 7 --- pom.xml | 14 +++++++++-- .../maven/plugins/pmd/PmdCollectingRenderer.java | 28 +++++----------------- .../apache/maven/plugins/pmd/exec/PmdExecutor.java | 2 +- .../apache/maven/plugins/pmd/PmdReportTest.java | 12 ++++------ .../def/configuration/App.java | 2 +- .../def/configuration/AppSample.java | 2 +- 6 files changed, 26 insertions(+), 34 deletions(-) diff --git a/pom.xml b/pom.xml index f0f7a11..56d0640 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ under the License. </parent> <artifactId>maven-pmd-plugin</artifactId> - <version>3.20.1-SNAPSHOT</version> + <version>3.20.1-pmd-7-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>Apache Maven PMD Plugin</name> @@ -89,7 +89,7 @@ under the License. <doxiaVersion>1.11.1</doxiaVersion> <doxiaSitetoolsVersion>1.11.1</doxiaSitetoolsVersion> <javaVersion>8</javaVersion><!-- Because PMD 6.35.0+ requires Java 8 --> - <pmdVersion>6.53.0</pmdVersion> + <pmdVersion>7.0.0-SNAPSHOT</pmdVersion> <slf4jVersion>1.7.36</slf4jVersion> <aetherVersion>1.0.0.v20140518</aetherVersion> <sitePluginVersion>3.12.1</sitePluginVersion> @@ -304,6 +304,16 @@ under the License. </dependency> </dependencies> + <repositories> + <repository> + <id>ossrh</id> + <releases> + <enabled>false</enabled> + </releases> + <url>https://oss.sonatype.org/content/repositories/snapshots</url> + </repository> + </repositories> + <build> <pluginManagement> <plugins> diff --git a/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java b/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java index d95f54c..2f712cd 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java +++ b/src/main/java/org/apache/maven/plugins/pmd/PmdCollectingRenderer.java @@ -19,21 +19,18 @@ package org.apache.maven.plugins.pmd; * under the License. */ -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.codehaus.plexus.util.StringUtils; - import net.sourceforge.pmd.Report; import net.sourceforge.pmd.Report.ProcessingError; import net.sourceforge.pmd.Report.SuppressedViolation; import net.sourceforge.pmd.RuleViolation; import net.sourceforge.pmd.renderers.AbstractRenderer; import net.sourceforge.pmd.util.datasource.DataSource; +import org.codehaus.plexus.util.StringUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; /** @@ -136,19 +133,6 @@ public class PmdCollectingRenderer extends AbstractRenderer { report.addError( e ); } - Map<Integer, String> suppressedLines = new HashMap<Integer, String>(); - for ( SuppressedViolation s : suppressed ) - { - if ( s.suppressedByNOPMD() ) - { - suppressedLines.put( s.getRuleViolation().getBeginLine(), s.getUserMessage() ); - } - } - report.suppress( suppressedLines ); - for ( SuppressedViolation s : suppressed ) - { - report.addRuleViolation( s.getRuleViolation() ); - } return report; } diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java index cc25c80..2c036bd 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java +++ b/src/main/java/org/apache/maven/plugins/pmd/exec/PmdExecutor.java @@ -31,6 +31,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.function.Predicate; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.pmd.ExcludeViolationsFromFile; @@ -58,7 +59,6 @@ import net.sourceforge.pmd.renderers.HTMLRenderer; import net.sourceforge.pmd.renderers.Renderer; import net.sourceforge.pmd.renderers.TextRenderer; import net.sourceforge.pmd.renderers.XMLRenderer; -import net.sourceforge.pmd.util.Predicate; /** * Executes PMD with the configuration provided via {@link PmdRequest}. 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 d53ba48..159da40 100644 --- a/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java +++ b/src/test/java/org/apache/maven/plugins/pmd/PmdReportTest.java @@ -468,7 +468,7 @@ public class PmdReportTest // check that there is no violation reported for "unusedVar2" - as it is suppressed assertFalse( str.contains( "Avoid unused private fields such as 'unusedVar2'.\n </violation>" ) ); // but it appears as suppressed - assertTrue( str.contains( "suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" )); + assertTrue( str.contains( "suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" )); // check if there's a link to the JXR files str = readFile( generatedReport ); @@ -493,7 +493,7 @@ public class PmdReportTest // check that there is no violation reported for "unusedVar2" - as it is suppressed assertFalse( str.contains( "Avoid unused private fields such as 'unusedVar2'.\n </violation>" ) ); // but it appears as suppressed - assertTrue( str.contains( "suppressiontype=\"nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" )); + assertTrue( str.contains( "suppressiontype=\"//nopmd\" msg=\"Avoid unused private fields such as 'unusedVar2'.\"" )); // check if there's a link to the JXR files str = readFile( generatedReport ); @@ -558,13 +558,12 @@ public class PmdReportTest File generatedFile = new File( getBasedir(), "target/test/unit/parse-error/target/pmd.xml" ); assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) ); String str = readFile( generatedFile ); - assertTrue( str.contains( "Error while parsing" ) ); // The parse exception must be in the XML report - assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) ); + assertTrue( str.contains( "ParseException: Encountered at line 23, column 5." ) ); str = readFile( generatedReport ); // The parse exception must also be in the HTML report - assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) ); + assertTrue( str.contains( "ParseException: Encountered at line 23, column 5." ) ); } public void testPMDProcessingErrorWithDetailsNoReport() @@ -579,9 +578,8 @@ public class PmdReportTest File generatedFile = new File( getBasedir(), "target/test/unit/parse-error/target/pmd.xml" ); assertTrue( FileUtils.fileExists( generatedFile.getAbsolutePath() ) ); String str = readFile( generatedFile ); - assertTrue( str.contains( "Error while parsing" ) ); // The parse exception must be in the XML report - assertTrue( str.contains( "ParseException: Encountered \"\" at line 23, column 5." ) ); + assertTrue( str.contains( "ParseException: Encountered at line 23, column 5." ) ); str = readFile( generatedReport ); // The parse exception must NOT be in the HTML report, since reportProcessingErrors is false diff --git a/src/test/resources/unit/default-configuration/def/configuration/App.java b/src/test/resources/unit/default-configuration/def/configuration/App.java index da53df0..04025d5 100644 --- a/src/test/resources/unit/default-configuration/def/configuration/App.java +++ b/src/test/resources/unit/default-configuration/def/configuration/App.java @@ -77,7 +77,7 @@ public class App for( int i = 0; i < str.length(); i++ ) { - if ( i != ( str.length() -1 ) ) + if ( i != ( ( str.length() -1 ) ) ) { tmp = tmp + str.substring( i, i + 1); } diff --git a/src/test/resources/unit/default-configuration/def/configuration/AppSample.java b/src/test/resources/unit/default-configuration/def/configuration/AppSample.java index 201bf19..6d67d27 100644 --- a/src/test/resources/unit/default-configuration/def/configuration/AppSample.java +++ b/src/test/resources/unit/default-configuration/def/configuration/AppSample.java @@ -55,7 +55,7 @@ public class AppSample for( int i = 0; i < str.length(); i++ ) { - if ( i != ( str.length() -1 ) ) + if ( i != ( ( str.length() -1 ) ) ) { tmp = tmp + str.substring( i, i + 1); }