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) {

Reply via email to