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 815f49ea90..730989aa05 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. + + @@ -98,6 +100,8 @@ limitations under the License. + + 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 7a2d666272..3830a51e9e 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 @@ private static class TestFaultyDiscoveryApiClient extends TestDiscoveryApiClient super(gatewayConfig, sdConfig, aliasService); } + @SuppressWarnings("PMD.UselessPureMethodCall") @Override public ApiResponse 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 cae68ea6dd..781afd99fb 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 final void log( final StackTraceElement caller, final MessageLevel messag } 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 777cb53105..c6d24f2cd3 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 7f6f08d108..26c61baf91 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 @@ public void log( final StackTraceElement caller, final MessageLevel level, final } 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 893a200d02..3279210233 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 void run() { 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 bd7f9876e8..90b98c587a 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 List resolve( UrlRewriteContext context, List parameters 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 f30c2b2117..63d2aae15b 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 @@ 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 472bdede99..78dda075e8 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 @@ private void archiveTokens(Map tokenDataMap) throws AliasServ log("Archiving token aliases in the " + cluster + " credential store..."); final long start = System.currentTimeMillis(); final Map 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 8f6572ef99..66e89580f6 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 @@ private Map.Entry doTestTokenLifecyle(final Tok 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 39fe4b431d..86e3db91d4 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.XmlElementWrapper; import jakarta.xml.bind.annotation.XmlRootElement; +@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable") @XmlRootElement(name = "topology") public class TopologyInformation implements Comparable{ 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 f19ebb12e6..dd899f7afe 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 @@ protected List getPathElements() { } 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 179fbd132f..d83fc3a6d7 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 KnoxShellTable sort(List> col, return table; } + @SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable") private static class RowIndex implements Comparable { 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 1fc0e40c94..9ea563fe33 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 @@ import java.util.List; +@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable") class KnoxShellTableCell> implements Comparable>{ 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 0d32f86f55..5835dbe45c 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 void testNullCellRendering() { table.row().value(null).value("456").value("344444444"); table.row().value("789").value("012").value("844444444"); - - table.toString(); } @Test @@ -172,7 +170,6 @@ public void testMultipleRowsTableMismatchedColAndHeadersCountError() { 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 57245a377e..f0c4275fb9 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.Date; import java.util.Locale; +@SuppressWarnings("PMD.OverrideBothEqualsAndHashCodeOnComparable") public class KnoxToken implements Comparable { private static final Comparator COMPARATOR = Comparator .comparingLong((KnoxToken kt) -> kt.issueTime) diff --git a/pom.xml b/pom.xml index 21b238991a..cd762d60a1 100644 --- a/pom.xml +++ b/pom.xml @@ -254,7 +254,7 @@ 3.8.1 3.6.1 3.0.0-M3 - 3.26.0 + 3.28.0 4.1.16 2.2.4 4.1.127.Final