This is an automated email from the ASF dual-hosted git repository. sjaranowski pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven-pmd-plugin.git
The following commit(s) were added to refs/heads/master by this push: new 2954317 Allow plugin execute with Maven 4 (#209) 2954317 is described below commit 29543178ae61cd678fb1b869b33b63a4a5b7f602 Author: Slawomir Jaranowski <s.jaranow...@gmail.com> AuthorDate: Sat May 31 09:22:04 2025 +0200 Allow plugin execute with Maven 4 (#209) * Allow building ITs by Maven 4 * Drop manual configuration of slf4j by Maven3 classes --- .github/workflows/maven-verify.yml | 2 ++ pom.xml | 1 + .../invoker.properties | 4 ++++ .../pom.xml | 7 ++++++- .../maven/plugins/pmd/AbstractPmdReport.java | 12 ----------- .../org/apache/maven/plugins/pmd/CpdReport.java | 1 - .../org/apache/maven/plugins/pmd/PmdReport.java | 1 - .../apache/maven/plugins/pmd/exec/CpdExecutor.java | 1 - .../apache/maven/plugins/pmd/exec/CpdRequest.java | 10 ---------- .../apache/maven/plugins/pmd/exec/Executor.java | 23 ++-------------------- .../apache/maven/plugins/pmd/exec/PmdExecutor.java | 1 - 11 files changed, 15 insertions(+), 48 deletions(-) diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml index 932827c..ce4b500 100644 --- a/.github/workflows/maven-verify.yml +++ b/.github/workflows/maven-verify.yml @@ -25,3 +25,5 @@ jobs: build: name: Verify uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4 + with: + maven4-enabled: true diff --git a/pom.xml b/pom.xml index 4596f97..47ec8c8 100644 --- a/pom.xml +++ b/pom.xml @@ -396,6 +396,7 @@ under the License. <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath> <debug>false</debug> <showErrors>true</showErrors> + <showVersion>true</showVersion> <goals> <goal>clean</goal> <goal>site</goal> diff --git a/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties b/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties index 7f2402b..cff8998 100644 --- a/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties +++ b/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties @@ -17,3 +17,7 @@ invoker.goals = clean verify invoker.java.version = 11+ + +# TODO investigate on Maven 4 +# [ERROR] detection of jgitver old setting mechanism: jgitver must now use maven core extensions only -> [Help 1] +invoker.maven.version=!4+ diff --git a/src/it/MPMD-335-aggregate-classpath-repositories/pom.xml b/src/it/MPMD-335-aggregate-classpath-repositories/pom.xml index a5533b5..b422dd4 100644 --- a/src/it/MPMD-335-aggregate-classpath-repositories/pom.xml +++ b/src/it/MPMD-335-aggregate-classpath-repositories/pom.xml @@ -57,7 +57,12 @@ under the License. <repositories> <repository> <id>corp1</id> - <url>file://${user.dir}/private-repo</url> + <!-- we need a absolute path to repo --> + <url>@baseurl@/target/it/MPMD-335-aggregate-classpath-repositories/private-repo</url> + <snapshots> + <!-- required by Maven 4 --> + <checksumPolicy>ignore</checksumPolicy> + </snapshots> </repository> </repositories> </project> diff --git a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java index 3c3164a..3176dad 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/AbstractPmdReport.java @@ -453,18 +453,6 @@ public abstract class AbstractPmdReport extends AbstractMavenReport { return true; } - protected String determineCurrentRootLogLevel() { - String logLevel = System.getProperty("org.slf4j.simpleLogger.defaultLogLevel"); - if (logLevel == null) { - logLevel = System.getProperty("maven.logging.root.level"); - } - if (logLevel == null) { - // TODO: logback level - logLevel = "info"; - } - return logLevel; - } - static String getPmdVersion() { return PMDVersion.VERSION; } 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 d117f3d..463652a 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/CpdReport.java @@ -184,7 +184,6 @@ public class CpdReport extends AbstractPmdReport { request.setIgnoreLiterals(ignoreLiterals); request.setSourceEncoding(getInputEncoding()); request.addFiles(filesToProcess.keySet()); - request.setLogLevel(determineCurrentRootLogLevel()); request.setExcludeFromFailureFile(excludeFromFailureFile); request.setTargetDirectory(targetDirectory.getAbsolutePath()); request.setOutputEncoding(getOutputEncoding()); 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 d16845d..ecdc78f 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java +++ b/src/main/java/org/apache/maven/plugins/pmd/PmdReport.java @@ -367,7 +367,6 @@ public class PmdReport extends AbstractPmdReport { request.setSkipPmdError(skipPmdError); request.setIncludeXmlInReports(includeXmlInReports); request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath()); - request.setLogLevel(determineCurrentRootLogLevel()); request.setJdkToolchain(getJdkToolchain()); getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion()); diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java index f84162e..de7ddc9 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java +++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdExecutor.java @@ -101,7 +101,6 @@ public class CpdExecutor extends Executor { try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(requestFile))) { CpdRequest request = (CpdRequest) in.readObject(); CpdExecutor cpdExecutor = new CpdExecutor(request); - cpdExecutor.setupLogLevel(request.getLogLevel()); cpdExecutor.run(); System.exit(0); } catch (IOException | ClassNotFoundException | MavenReportException e) { diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java index f972bbf..efcff60 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java +++ b/src/main/java/org/apache/maven/plugins/pmd/exec/CpdRequest.java @@ -45,8 +45,6 @@ public class CpdRequest implements Serializable { private String sourceEncoding; private List<File> files = new ArrayList<>(); - private String logLevel; - private String excludeFromFailureFile; private String targetDirectory; private String outputEncoding; @@ -105,10 +103,6 @@ public class CpdRequest implements Serializable { this.reportOutputDirectory = reportOutputDirectory; } - public void setLogLevel(String logLevel) { - this.logLevel = logLevel; - } - public Map<String, String> getJdkToolchain() { return jdkToolchain; } @@ -157,10 +151,6 @@ public class CpdRequest implements Serializable { return reportOutputDirectory; } - public String getLogLevel() { - return logLevel; - } - public boolean isIgnoreAnnotations() { return ignoreAnnotations; } diff --git a/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java b/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java index e128f7c..f92630a 100644 --- a/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java +++ b/src/main/java/org/apache/maven/plugins/pmd/exec/Executor.java @@ -30,28 +30,9 @@ import java.net.URLClassLoader; import java.net.URLDecoder; import java.nio.charset.StandardCharsets; -import org.apache.maven.cli.logging.Slf4jConfiguration; -import org.apache.maven.cli.logging.Slf4jConfigurationFactory; import org.codehaus.plexus.logging.console.ConsoleLogger; -import org.slf4j.ILoggerFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; abstract class Executor { - private static final Logger LOG = LoggerFactory.getLogger(Executor.class); - - protected void setupLogLevel(String logLevel) { - ILoggerFactory slf4jLoggerFactory = LoggerFactory.getILoggerFactory(); - Slf4jConfiguration slf4jConfiguration = Slf4jConfigurationFactory.getConfiguration(slf4jLoggerFactory); - if ("debug".equals(logLevel)) { - slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.DEBUG); - } else if ("info".equals(logLevel)) { - slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.INFO); - } else { - slf4jConfiguration.setRootLoggerLevel(Slf4jConfiguration.Level.ERROR); - } - slf4jConfiguration.activate(); - } protected static String buildClasspath() { StringBuilder classpath = new StringBuilder(); @@ -74,7 +55,7 @@ abstract class Executor { String filename = URLDecoder.decode(url.getPath(), StandardCharsets.UTF_8.name()); classpath.append(new File(filename).getPath()).append(File.pathSeparatorChar); } catch (UnsupportedEncodingException e) { - LOG.warn("Ignoring " + url + " in classpath due to UnsupportedEncodingException", e); + // skip as we provide the correct standard encoding } } } @@ -109,7 +90,7 @@ abstract class Executor { } out.flush(); } catch (IOException e) { - LOG.error(e.getMessage(), e); + e.printStackTrace(); } } } 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 09a3ca2..d2a0002 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 @@ -117,7 +117,6 @@ public class PmdExecutor extends Executor { try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(requestFile))) { PmdRequest request = (PmdRequest) in.readObject(); PmdExecutor pmdExecutor = new PmdExecutor(request); - pmdExecutor.setupLogLevel(request.getLogLevel()); pmdExecutor.run(); System.exit(0); } catch (IOException | ClassNotFoundException | MavenReportException e) {