From 510c0c5ef718f6220cd8674619199634b0c27ba2 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Sat, 6 Apr 2019 11:18:25 +0200 Subject: [PATCH] Return Set from AbstractHandlerMethodMapping.getMappingPathPatterns This commit revises the signature of getMappingPathPatterns() in AbstractHandlerMethodMapping to return a set of PathPatterns instead of a set of Strings. See gh-22543 --- .../result/method/AbstractHandlerMethodMapping.java | 6 ++++-- .../method/annotation/RequestMappingHandlerMapping.java | 4 ++-- .../reactive/result/method/HandlerMethodMappingTests.java | 2 +- .../method/RequestMappingInfoHandlerMappingTests.java | 5 ++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/AbstractHandlerMethodMapping.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/AbstractHandlerMethodMapping.java index cd16ed962b..9cbd20e4c1 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/AbstractHandlerMethodMapping.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/AbstractHandlerMethodMapping.java @@ -48,6 +48,7 @@ import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerMapping; import org.springframework.web.reactive.handler.AbstractHandlerMapping; import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.util.pattern.PathPattern; /** * Abstract base class for {@link HandlerMapping} implementations that define @@ -418,7 +419,7 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap * Extract and return the URL paths contained in the supplied mapping. * @since 5.2 */ - protected abstract Set getMappingPathPatterns(T mapping); + protected abstract Set getMappingPathPatterns(T mapping); /** * Check if a mapping matches the current request and return a (potentially @@ -508,7 +509,8 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap private void validateMethodMapping(HandlerMethod handlerMethod, T mapping) { // Log a warning if the supplied mapping maps the supplied HandlerMethod // only to empty paths. - if (logger.isWarnEnabled() && getMappingPathPatterns(mapping).stream().noneMatch(StringUtils::hasText)) { + if (logger.isWarnEnabled() && getMappingPathPatterns(mapping).stream() + .map(PathPattern::getPatternString).noneMatch(StringUtils::hasText)) { logger.warn(String.format( "Handler method '%s' in bean '%s' is not mapped to an explicit path. " + "If you wish to map to all paths, please map explicitly to \"/**\" or \"**\".", diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java index ef6d4435bd..7a212528ba 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerMapping.java @@ -170,8 +170,8 @@ public class RequestMappingHandlerMapping extends RequestMappingInfoHandlerMappi * @since 5.2 */ @Override - protected Set getMappingPathPatterns(RequestMappingInfo info) { - return info.getPatternsCondition().getPatterns().stream().map(PathPattern::getPatternString).collect(Collectors.toSet()); + protected Set getMappingPathPatterns(RequestMappingInfo info) { + return info.getPatternsCondition().getPatterns(); } /** diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/HandlerMethodMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/HandlerMethodMappingTests.java index 0f2cfa3215..ad9c8a5286 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/HandlerMethodMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/HandlerMethodMappingTests.java @@ -159,7 +159,7 @@ public class HandlerMethodMappingTests { } @Override - protected Set getMappingPathPatterns(String mapping) { + protected Set getMappingPathPatterns(String mapping) { return Collections.emptySet(); } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java index 2d268956be..6b6f8decf7 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/RequestMappingInfoHandlerMappingTests.java @@ -26,7 +26,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Consumer; -import java.util.stream.Collectors; import org.junit.Before; import org.junit.Test; @@ -480,8 +479,8 @@ public class RequestMappingInfoHandlerMappingTests { } @Override - protected Set getMappingPathPatterns(RequestMappingInfo info) { - return info.getPatternsCondition().getPatterns().stream().map(PathPattern::getPatternString).collect(Collectors.toSet()); + protected Set getMappingPathPatterns(RequestMappingInfo info) { + return info.getPatternsCondition().getPatterns(); } }