This is an automated email from the ASF dual-hosted git repository.

smolnar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 42715c20e KNOX-3236 - Bump Maven PMD plugin to 3.28.0 (#1135)
42715c20e is described below

commit 42715c20e4812258d9b1d4c2dcf8ec95161bd34d
Author: Sandor Molnar <[email protected]>
AuthorDate: Tue Jan 6 21:14:29 2026 +0100

    KNOX-3236 - Bump Maven PMD plugin to 3.28.0 (#1135)
---
 .../main/resources/build-tools/pmd/pmd-ruleset.xml |  4 ++++
 .../cm/ClouderaManagerServiceDiscoveryTest.java    |  1 +
 .../messages/loggers/log4j/Log4jMessageLogger.java | 17 ++++++++-------
 .../messages/loggers/sl4j/Sl4jMessageLogger.java   | 16 +++++++--------
 .../messages/loggers/jdk/JdkMessageLogger.java     | 16 +++++++--------
 .../test/knoxtoken/KnoxTokenWorkerThread.java      | 17 ++++-----------
 .../impl/InboundUrlFunctionProcessor.java          | 12 ++++-------
 .../knox/gateway/database/DataSourceFactory.java   |  1 +
 .../knox/gateway/util/TokenMigrationTool.java      | 12 +++++------
 .../knoxtoken/TokenServiceResourceTest.java        | 19 ++++++-----------
 .../service/metadata/TopologyInformation.java      |  1 +
 .../gateway/shell/alias/AbstractAliasRequest.java  | 24 ++++++----------------
 .../knox/gateway/shell/table/KnoxShellTable.java   |  1 +
 .../gateway/shell/table/KnoxShellTableCell.java    |  1 +
 .../gateway/shell/table/KnoxShellTableTest.java    |  3 ---
 .../gateway/services/security/token/KnoxToken.java |  1 +
 pom.xml                                            |  2 +-
 17 files changed, 58 insertions(+), 90 deletions(-)

diff --git a/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml 
b/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
index 815f49ea9..730989aa0 100644
--- a/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
+++ b/build-tools/src/main/resources/build-tools/pmd/pmd-ruleset.xml
@@ -58,6 +58,8 @@ limitations under the License.
         <exclude name="SimplifiableTestAssertion" />
         <exclude name="DoubleBraceInitialization" />
         <exclude name="UseCollectionIsEmpty" />
+        <exclude name="ImplicitFunctionalInterface" />
+        <exclude name="UnnecessaryWarningSuppression" />
     </rule>
 
     <!--<rule ref="category/java/codestyle.xml" />-->
@@ -98,6 +100,8 @@ limitations under the License.
         <exclude name="CloneMethodReturnTypeMustMatchClassName" />
         <exclude name="CloseResource" />
         <exclude name="CompareObjectsWithEquals" />
+        <exclude name="ReplaceJavaUtilCalendar" />
+        <exclude name="ReplaceJavaUtilDate" />
     </rule>
     <rule ref="category/java/multithreading.xml">
         <exclude name="AvoidSynchronizedAtMethodLevel" />
diff --git 
a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
 
b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
index 7a2d66627..3830a51e9 100644
--- 
a/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
+++ 
b/gateway-discovery-cm/src/test/java/org/apache/knox/gateway/topology/discovery/cm/ClouderaManagerServiceDiscoveryTest.java
@@ -1656,6 +1656,7 @@ public class ClouderaManagerServiceDiscoveryTest {
       super(gatewayConfig, sdConfig, aliasService);
     }
 
+    @SuppressWarnings("PMD.UselessPureMethodCall")
     @Override
     public <T> ApiResponse<T> execute(Call call, Type returnType) throws 
ApiException {
       if (executeCount.get() == 0) {
diff --git 
a/gateway-i18n-logging-log4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/log4j/Log4jMessageLogger.java
 
b/gateway-i18n-logging-log4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/log4j/Log4jMessageLogger.java
index cae68ea6d..781afd99f 100644
--- 
a/gateway-i18n-logging-log4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/log4j/Log4jMessageLogger.java
+++ 
b/gateway-i18n-logging-log4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/log4j/Log4jMessageLogger.java
@@ -42,15 +42,14 @@ public class Log4jMessageLogger implements MessageLogger {
   }
 
   private static Level toLevel(final MessageLevel level ) {
-    switch( level ) {
-      case FATAL: return Level.FATAL;
-      case ERROR: return Level.ERROR;
-      case WARN: return Level.WARN;
-      case INFO: return Level.INFO;
-      case DEBUG: return Level.DEBUG;
-      case TRACE: return Level.TRACE;
-      default: return Level.OFF;
-    }
+      return switch (level) {
+          case FATAL -> Level.FATAL;
+          case ERROR -> Level.ERROR;
+          case WARN -> Level.WARN;
+          case INFO -> Level.INFO;
+          case DEBUG -> Level.DEBUG;
+          case TRACE -> Level.TRACE;
+      };
   }
 
 }
diff --git 
a/gateway-i18n-logging-sl4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/sl4j/Sl4jMessageLogger.java
 
b/gateway-i18n-logging-sl4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/sl4j/Sl4jMessageLogger.java
index 777cb5310..c6d24f2cd 100644
--- 
a/gateway-i18n-logging-sl4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/sl4j/Sl4jMessageLogger.java
+++ 
b/gateway-i18n-logging-sl4j/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/sl4j/Sl4jMessageLogger.java
@@ -31,15 +31,13 @@ public class Sl4jMessageLogger implements MessageLogger {
 
   @Override
   public boolean isLoggable( MessageLevel level ) {
-    switch( level ) {
-      case FATAL: return logger.isErrorEnabled();
-      case ERROR: return logger.isErrorEnabled();
-      case WARN: return logger.isWarnEnabled();
-      case INFO: return logger.isInfoEnabled();
-      case DEBUG: return logger.isDebugEnabled();
-      case TRACE: return logger.isTraceEnabled();
-      default: return false;
-    }
+      return switch (level) {
+          case FATAL, ERROR -> logger.isErrorEnabled();
+          case WARN -> logger.isWarnEnabled();
+          case INFO -> logger.isInfoEnabled();
+          case DEBUG -> logger.isDebugEnabled();
+          case TRACE -> logger.isTraceEnabled();
+      };
   }
 
   @Override
diff --git 
a/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/jdk/JdkMessageLogger.java
 
b/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/jdk/JdkMessageLogger.java
index 7f6f08d10..26c61baf9 100644
--- 
a/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/jdk/JdkMessageLogger.java
+++ 
b/gateway-i18n/src/main/java/org/apache/knox/gateway/i18n/messages/loggers/jdk/JdkMessageLogger.java
@@ -50,15 +50,13 @@ final class JdkMessageLogger implements MessageLogger {
   }
 
   private static Level toLevel( final MessageLevel level ) {
-    switch( level ) {
-      case FATAL: return Level.SEVERE;
-      case ERROR: return Level.SEVERE;
-      case WARN: return Level.WARNING;
-      case INFO: return Level.INFO;
-      case DEBUG: return Level.FINE;
-      case TRACE: return Level.FINEST;
-      default: return Level.OFF;
-    }
+      return switch (level) {
+          case FATAL, ERROR -> Level.SEVERE;
+          case WARN -> Level.WARNING;
+          case INFO -> Level.INFO;
+          case DEBUG -> Level.FINE;
+          case TRACE -> Level.FINEST;
+      };
   }
 
 }
diff --git 
a/gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/knoxtoken/KnoxTokenWorkerThread.java
 
b/gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/knoxtoken/KnoxTokenWorkerThread.java
index 893a200d0..327921023 100644
--- 
a/gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/knoxtoken/KnoxTokenWorkerThread.java
+++ 
b/gateway-performance-test/src/main/java/org/apache/knox/gateway/performance/test/knoxtoken/KnoxTokenWorkerThread.java
@@ -93,19 +93,10 @@ public class KnoxTokenWorkerThread implements Runnable {
 
   private void executeAction(final KnoxSession gatewayKnoxSession, final 
KnoxSession tokenBasedKnoxSession) {
     try {
-      switch (this.action) {
-      case ACQUIRE:
-        knoxTokenCache.saveKnoxToken(acquireKnoxToken(gatewayKnoxSession));
-        break;
-      case RENEW:
-        renewKnoxToken(gatewayKnoxSession);
-        break;
-      case USE_TOKEN:
-        useKnoxToken(tokenBasedKnoxSession);
-        break;
-      default:
-        // NOP
-        break;
+      switch (action) {
+        case ACQUIRE -> 
knoxTokenCache.saveKnoxToken(acquireKnoxToken(gatewayKnoxSession));
+        case RENEW -> renewKnoxToken(gatewayKnoxSession);
+        case USE_TOKEN -> useKnoxToken(tokenBasedKnoxSession);
       }
     } catch (Exception e) {
       LOG.failedToExecuteKnoxTokenAction(action, e.getMessage(), e);
diff --git 
a/gateway-provider-rewrite-func-inbound-query-param/src/main/java/org/apache/knox/gateway/inboundurl/impl/InboundUrlFunctionProcessor.java
 
b/gateway-provider-rewrite-func-inbound-query-param/src/main/java/org/apache/knox/gateway/inboundurl/impl/InboundUrlFunctionProcessor.java
index bd7f9876e..90b98c587 100644
--- 
a/gateway-provider-rewrite-func-inbound-query-param/src/main/java/org/apache/knox/gateway/inboundurl/impl/InboundUrlFunctionProcessor.java
+++ 
b/gateway-provider-rewrite-func-inbound-query-param/src/main/java/org/apache/knox/gateway/inboundurl/impl/InboundUrlFunctionProcessor.java
@@ -47,14 +47,10 @@ public class InboundUrlFunctionProcessor
       if( parameters == null || parameters.isEmpty()) {
         return Collections.emptyList();
       } else {
-        switch( context.getDirection() ) {
-          case IN:
-            return Collections.emptyList();
-          case OUT:
-            return context.getParameters().resolve( 
UrlRewriteResponse.INBOUND_QUERY_PARAM_PREFIX + parameters.get( 0 ));
-          default:
-            return Collections.emptyList();
-        }
+          return switch (context.getDirection()) {
+              case IN -> Collections.emptyList();
+              case OUT -> 
context.getParameters().resolve(UrlRewriteResponse.INBOUND_QUERY_PARAM_PREFIX + 
parameters.get(0));
+          };
       }
   }
 }
diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/database/DataSourceFactory.java
 
b/gateway-server/src/main/java/org/apache/knox/gateway/database/DataSourceFactory.java
index f30c2b211..63d2aae15 100644
--- 
a/gateway-server/src/main/java/org/apache/knox/gateway/database/DataSourceFactory.java
+++ 
b/gateway-server/src/main/java/org/apache/knox/gateway/database/DataSourceFactory.java
@@ -26,6 +26,7 @@ import java.sql.SQLException;
 
 public class DataSourceFactory {
 
+    @SuppressWarnings("PMD.ExhaustiveSwitchHasDefault")
     public static DataSource getDataSource(GatewayConfig gatewayConfig, 
AliasService aliasService) throws AliasServiceException, SQLException {
         DatabaseType dbType = 
DatabaseType.fromString(gatewayConfig.getDatabaseType());
         AbstractDataSource dsFactory;
diff --git 
a/gateway-server/src/main/java/org/apache/knox/gateway/util/TokenMigrationTool.java
 
b/gateway-server/src/main/java/org/apache/knox/gateway/util/TokenMigrationTool.java
index 472bdede9..78dda075e 100644
--- 
a/gateway-server/src/main/java/org/apache/knox/gateway/util/TokenMigrationTool.java
+++ 
b/gateway-server/src/main/java/org/apache/knox/gateway/util/TokenMigrationTool.java
@@ -184,13 +184,11 @@ public class TokenMigrationTool {
       log("Archiving token aliases in the " + cluster + " credential 
store...");
       final long start = System.currentTimeMillis();
       final Map<String, String> tokenAliasesToArchive = new HashMap<>();
-      tokenDataMap.entrySet().forEach(tokenDataMapEntry -> {
-        String tokenId = tokenDataMapEntry.getKey();
-        tokenDataMapEntry.getValue();
-        tokenAliasesToArchive.put(tokenId, 
String.valueOf(tokenDataMapEntry.getValue().expiration));
-        tokenAliasesToArchive.put(tokenId + TOKEN_MAX_LIFETIME_POSTFIX, 
String.valueOf(tokenDataMapEntry.getValue().maxLifeTime));
-        tokenAliasesToArchive.put(tokenId + TOKEN_ISSUE_TIME_POSTFIX, 
String.valueOf(tokenDataMapEntry.getValue().issueTime));
-        tokenAliasesToArchive.put(tokenId + TOKEN_META_POSTFIX, 
tokenDataMapEntry.getValue().metadata.toJSON());
+      tokenDataMap.forEach((tokenId, value) -> {
+          tokenAliasesToArchive.put(tokenId, String.valueOf(value.expiration));
+          tokenAliasesToArchive.put(tokenId + TOKEN_MAX_LIFETIME_POSTFIX, 
String.valueOf(value.maxLifeTime));
+          tokenAliasesToArchive.put(tokenId + TOKEN_ISSUE_TIME_POSTFIX, 
String.valueOf(value.issueTime));
+          tokenAliasesToArchive.put(tokenId + TOKEN_META_POSTFIX, 
value.metadata.toJSON());
       });
       aliasService.addAliasesForCluster(cluster, tokenAliasesToArchive);
       log("Archived token related aliases in the " + cluster + " credential 
store in " + (System.currentTimeMillis() - start) + " millsieconds ");
diff --git 
a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
 
b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
index 8f6572ef9..66e89580f 100644
--- 
a/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
+++ 
b/gateway-service-knoxtoken/src/test/java/org/apache/knox/gateway/service/knoxtoken/TokenServiceResourceTest.java
@@ -1689,19 +1689,12 @@ public class TokenServiceResourceTest {
     final TokenResource tr = new TokenResource();
     final String accessToken = getAccessToken(tr);
 
-    Response response;
-    switch (operation) {
-      case Renew:
-        response = requestTokenRenewal(tr, accessToken, caller);
-        break;
-      case Revoke:
-        response = requestTokenRevocation(tr, accessToken, caller);
-        break;
-      default:
-        throw new Exception("Invalid operation: " + operation);
-    }
-
-    return new AbstractMap.SimpleEntry<>(tss, response);
+    Response response = switch (operation) {
+        case Renew -> requestTokenRenewal(tr, accessToken, caller);
+        case Revoke -> requestTokenRevocation(tr, accessToken, caller);
+    };
+
+      return new AbstractMap.SimpleEntry<>(tss, response);
   }
 
   private String getAccessToken(TokenResource tokenResource) throws 
KeyLengthException, AliasServiceException, ServiceLifecycleException, 
ServletException {
diff --git 
a/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/TopologyInformation.java
 
b/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/TopologyInformation.java
index 39fe4b431..86e3db91d 100644
--- 
a/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/TopologyInformation.java
+++ 
b/gateway-service-metadata/src/main/java/org/apache/knox/gateway/service/metadata/TopologyInformation.java
@@ -23,6 +23,7 @@ import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlElementWrapper;
 import jakarta.xml.bind.annotation.XmlRootElement;
 
+@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable")
 @XmlRootElement(name = "topology")
 public class TopologyInformation implements Comparable<TopologyInformation>{
 
diff --git 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/alias/AbstractAliasRequest.java
 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/alias/AbstractAliasRequest.java
index f19ebb12e..dd899f7af 100644
--- 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/alias/AbstractAliasRequest.java
+++ 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/alias/AbstractAliasRequest.java
@@ -104,24 +104,12 @@ public abstract class AbstractAliasRequest extends 
AbstractRequest<AliasResponse
   }
 
   protected HttpRequestBase createRequest() {
-    HttpRequestBase request;
-
-    switch (getRequestType()) {
-      case POST:
-        request = new HttpPost(requestURI);
-        break;
-      case PUT:
-        request = new HttpPut(requestURI);
-        break;
-      case DELETE:
-        request = new HttpDelete(requestURI);
-        break;
-      case GET:
-      default:
-        request = new HttpGet(requestURI);
-        break;
-    }
-    return request;
+      return switch (getRequestType()) {
+          case POST -> new HttpPost(requestURI);
+          case PUT -> new HttpPut(requestURI);
+          case DELETE -> new HttpDelete(requestURI);
+          default -> new HttpGet(requestURI);
+      };
   }
 
   protected AliasResponse createResponse(HttpResponse response) {
diff --git 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
index 179fbd132..d83fc3a6d 100644
--- 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
+++ 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTable.java
@@ -446,6 +446,7 @@ public class KnoxShellTable {
     return table;
   }
 
+  @SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable")
   private static class RowIndex implements Comparable<RowIndex> {
     Comparable value;
     int index;
diff --git 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCell.java
 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCell.java
index 1fc0e40c9..9ea563fe3 100644
--- 
a/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCell.java
+++ 
b/gateway-shell/src/main/java/org/apache/knox/gateway/shell/table/KnoxShellTableCell.java
@@ -19,6 +19,7 @@ package org.apache.knox.gateway.shell.table;
 
 import java.util.List;
 
+@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable")
 class KnoxShellTableCell<T extends Comparable<T>> implements 
Comparable<KnoxShellTableCell<T>>{
   int rowIndex;
   int colIndex;
diff --git 
a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
 
b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
index 0d32f86f5..5835dbe45 100644
--- 
a/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
+++ 
b/gateway-shell/src/test/java/org/apache/knox/gateway/shell/table/KnoxShellTableTest.java
@@ -122,8 +122,6 @@ public class KnoxShellTableTest {
 
     table.row().value(null).value("456").value("344444444");
     table.row().value("789").value("012").value("844444444");
-
-    table.toString();
   }
 
   @Test
@@ -172,7 +170,6 @@ public class KnoxShellTableTest {
     table.row().value("789").value("012").value("844444444");
 
     assertNull(table.toString());
-    table.toString();
   }
 
   @Test
diff --git 
a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
 
b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
index 57245a377..f0c4275fb 100644
--- 
a/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
+++ 
b/gateway-spi/src/main/java/org/apache/knox/gateway/services/security/token/KnoxToken.java
@@ -24,6 +24,7 @@ import java.util.Comparator;
 import java.util.Date;
 import java.util.Locale;
 
+@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable")
 public class KnoxToken implements Comparable<KnoxToken> {
   private static final Comparator<KnoxToken> COMPARATOR = Comparator
           .comparingLong((KnoxToken kt) -> kt.issueTime)
diff --git a/pom.xml b/pom.xml
index 21b238991..cd762d60a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -254,7 +254,7 @@
         <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
         
<maven-dependency-plugin.version>3.6.1</maven-dependency-plugin.version>
         <maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
-        <maven-pmd-plugin.version>3.26.0</maven-pmd-plugin.version>
+        <maven-pmd-plugin.version>3.28.0</maven-pmd-plugin.version>
         <metrics.version>4.1.16</metrics.version>
         <mina.version>2.2.4</mina.version>
         <netty.version>4.1.127.Final</netty.version>

Reply via email to