diff --git a/.github/workflows/maven-verify.yml b/.github/workflows/maven-verify.yml
index 932827cf..ce4b500d 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 4596f97c..47ec8c84 100644
--- a/pom.xml
+++ b/pom.xml
@@ -396,6 +396,7 @@ under the License.
${project.build.directory}/local-repo
false
true
+ true
clean
site
diff --git a/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties b/src/it/MPMD-323-ruleset-basedir-jgitver/invoker.properties
index 7f2402bc..cff89989 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 a5533b5d..b422dd42 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.
corp1
- file://${user.dir}/private-repo
+
+ @baseurl@/target/it/MPMD-335-aggregate-classpath-repositories/private-repo
+
+
+ ignore
+
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 3c3164af..3176dadf 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 @@ protected boolean canGenerateReportInternal() throws MavenReportException {
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 d117f3dc..463652a4 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 @@ private void executeCpd() throws MavenReportException {
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 d16845d4..ecdc78f9 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 @@ private void executePmd() throws MavenReportException {
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 f84162e4..de7ddc93 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 static void main(String[] args) {
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 f972bbfa..efcff60f 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 files = new ArrayList<>();
- private String logLevel;
-
private String excludeFromFailureFile;
private String targetDirectory;
private String outputEncoding;
@@ -105,10 +103,6 @@ public void setReportOutputDirectory(String reportOutputDirectory) {
this.reportOutputDirectory = reportOutputDirectory;
}
- public void setLogLevel(String logLevel) {
- this.logLevel = logLevel;
- }
-
public Map getJdkToolchain() {
return jdkToolchain;
}
@@ -157,10 +151,6 @@ public String getReportOutputDirectory() {
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 e128f7c1..f92630ad 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.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 @@ static void buildClasspath(StringBuilder classpath, ClassLoader cl) {
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 @@ public void run() {
}
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 09a3ca2b..d2a0002a 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 static void main(String[] args) {
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) {