From d0c070c37d2d768e062c8b4b004b18a3f2efd5be Mon Sep 17 00:00:00 2001 From: lucky8987 Date: Wed, 26 Mar 2025 23:07:02 +0800 Subject: [PATCH] Clean up the code to make it cleaner Signed-off-by: longtanfei --- spring-cloud-gateway-server/pom.xml | 5 ----- .../cloud/gateway/handler/AsyncPredicate.java | 3 +-- .../handler/predicate/CookieRoutePredicateFactory.java | 7 +------ .../gateway/handler/predicate/GatewayPredicate.java | 7 +++---- .../gateway/route/RouteDefinitionRouteLocator.java | 10 +++------- 5 files changed, 8 insertions(+), 24 deletions(-) diff --git a/spring-cloud-gateway-server/pom.xml b/spring-cloud-gateway-server/pom.xml index 2a61283f..a13b407a 100644 --- a/spring-cloud-gateway-server/pom.xml +++ b/spring-cloud-gateway-server/pom.xml @@ -212,11 +212,6 @@ spring-cloud-test-support test - - org.springframework.cloud - spring-cloud-starter-stream-rabbit - test - io.projectreactor reactor-test diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/AsyncPredicate.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/AsyncPredicate.java index e15694eb..60277232 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/AsyncPredicate.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/AsyncPredicate.java @@ -77,8 +77,7 @@ public interface AsyncPredicate extends Function>, HasC @Override public void accept(Visitor visitor) { - if (delegate instanceof GatewayPredicate) { - GatewayPredicate gatewayPredicate = (GatewayPredicate) delegate; + if (delegate instanceof GatewayPredicate gatewayPredicate) { gatewayPredicate.accept(visitor); } } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/CookieRoutePredicateFactory.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/CookieRoutePredicateFactory.java index 0f017025..ded55566 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/CookieRoutePredicateFactory.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/CookieRoutePredicateFactory.java @@ -58,12 +58,7 @@ public class CookieRoutePredicateFactory extends AbstractRoutePredicateFactory cookie.getValue().matches(config.regexp)); } @Override diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/GatewayPredicate.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/GatewayPredicate.java index c373296a..40001870 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/GatewayPredicate.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/handler/predicate/GatewayPredicate.java @@ -47,8 +47,8 @@ public interface GatewayPredicate extends Predicate, HasConfi static GatewayPredicate wrapIfNeeded(Predicate other) { GatewayPredicate right; - if (other instanceof GatewayPredicate) { - right = (GatewayPredicate) other; + if (other instanceof GatewayPredicate gatewayPredicate) { + right = gatewayPredicate; } else { right = new GatewayPredicateWrapper(other); @@ -72,8 +72,7 @@ public interface GatewayPredicate extends Predicate, HasConfi @Override public void accept(Visitor visitor) { - if (delegate instanceof GatewayPredicate) { - GatewayPredicate gatewayPredicate = (GatewayPredicate) delegate; + if (delegate instanceof GatewayPredicate gatewayPredicate) { gatewayPredicate.accept(visitor); } } diff --git a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteDefinitionRouteLocator.java b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteDefinitionRouteLocator.java index fce1faee..c8545c68 100644 --- a/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteDefinitionRouteLocator.java +++ b/spring-cloud-gateway-server/src/main/java/org/springframework/cloud/gateway/route/RouteDefinitionRouteLocator.java @@ -201,14 +201,10 @@ public class RouteDefinitionRouteLocator implements RouteLocator { // this is a very rare case, but possible, just match all return AsyncPredicate.from(exchange -> true); } - AsyncPredicate predicate = lookup(routeDefinition, predicates.get(0)); - for (PredicateDefinition andPredicate : predicates.subList(1, predicates.size())) { - AsyncPredicate found = lookup(routeDefinition, andPredicate); - predicate = predicate.and(found); - } - - return predicate; + return predicates.stream() + .map(nextPredicate -> lookup(routeDefinition, nextPredicate)) + .reduce(AsyncPredicate.from(exchange -> true), AsyncPredicate::and); } @SuppressWarnings("unchecked")