Merge branch '6.1.x'

# Conflicts:
#	spring-context/src/main/java/org/springframework/scheduling/annotation/Scheduled.java
This commit is contained in:
Juergen Hoeller
2024-08-31 12:04:29 +02:00
6 changed files with 75 additions and 56 deletions

View File

@@ -160,6 +160,7 @@ public abstract class RouterFunctions {
*/
public static RouterFunction<ServerResponse> resource(RequestPredicate predicate, Resource resource,
BiConsumer<Resource, HttpHeaders> headersConsumer) {
return resources(new PredicateResourceLookupFunction(predicate, resource), headersConsumer);
}
@@ -197,6 +198,7 @@ public abstract class RouterFunctions {
*/
public static RouterFunction<ServerResponse> resources(String pattern, Resource location,
BiConsumer<Resource, HttpHeaders> headersConsumer) {
return resources(resourceLookupFunction(pattern, location), headersConsumer);
}
@@ -240,7 +242,9 @@ public abstract class RouterFunctions {
* @return a router function that routes to resources
* @since 6.1
*/
public static RouterFunction<ServerResponse> resources(Function<ServerRequest, Optional<Resource>> lookupFunction, BiConsumer<Resource, HttpHeaders> headersConsumer) {
public static RouterFunction<ServerResponse> resources(Function<ServerRequest, Optional<Resource>> lookupFunction,
BiConsumer<Resource, HttpHeaders> headersConsumer) {
return new ResourcesRouterFunction(lookupFunction, headersConsumer);
}
@@ -250,12 +254,12 @@ public abstract class RouterFunctions {
* can be used to change the {@code PathPatternParser} properties from the defaults, for instance to change
* {@linkplain PathPatternParser#setCaseSensitive(boolean) case sensitivity}.
* @param routerFunction the router function to change the parser in
* @param parser the parser to change to.
* @param parser the parser to change to
* @param <T> the type of response returned by the handler function
* @return the change router function
*/
public static <T extends ServerResponse> RouterFunction<T> changeParser(RouterFunction<T> routerFunction,
PathPatternParser parser) {
public static <T extends ServerResponse> RouterFunction<T> changeParser(
RouterFunction<T> routerFunction, PathPatternParser parser) {
Assert.notNull(routerFunction, "RouterFunction must not be null");
Assert.notNull(parser, "Parser must not be null");
@@ -1151,7 +1155,6 @@ public abstract class RouterFunctions {
public void accept(Visitor visitor) {
visitor.route(this.predicate, this.handlerFunction);
}
}
@@ -1173,13 +1176,10 @@ public abstract class RouterFunctions {
return this.predicate.nest(serverRequest)
.map(nestedRequest -> {
if (logger.isTraceEnabled()) {
logger.trace(
String.format(
"Nested predicate \"%s\" matches against \"%s\"",
this.predicate, serverRequest));
logger.trace(String.format("Nested predicate \"%s\" matches against \"%s\"",
this.predicate, serverRequest));
}
Optional<HandlerFunction<T>> result =
this.routerFunction.route(nestedRequest);
Optional<HandlerFunction<T>> result = this.routerFunction.route(nestedRequest);
if (result.isPresent() && nestedRequest != serverRequest) {
// new attributes map from nestedRequest.attributes() can be composed of the old attributes,
// which means that clearing the old attributes will remove those values from new attributes as well
@@ -1202,7 +1202,6 @@ public abstract class RouterFunctions {
this.routerFunction.accept(visitor);
visitor.endNested(this.predicate);
}
}
@@ -1212,11 +1211,11 @@ public abstract class RouterFunctions {
private final BiConsumer<Resource, HttpHeaders> headersConsumer;
public ResourcesRouterFunction(Function<ServerRequest, Optional<Resource>> lookupFunction,
BiConsumer<Resource, HttpHeaders> headersConsumer) {
Assert.notNull(lookupFunction, "Function must not be null");
Assert.notNull(headersConsumer, "HeadersConsumer must not be null");
Assert.notNull(lookupFunction, "Lookup function must not be null");
Assert.notNull(headersConsumer, "Headers consumer must not be null");
this.lookupFunction = lookupFunction;
this.headersConsumer = headersConsumer;
}
@@ -1284,5 +1283,4 @@ public abstract class RouterFunctions {
}
}
}