Polishing

This commit is contained in:
Juergen Hoeller
2018-07-06 15:18:47 +02:00
parent 6cae0650e6
commit eb3254d2a9
2 changed files with 54 additions and 47 deletions

View File

@@ -67,7 +67,8 @@ public abstract class RouterFunctions {
public static final String URI_TEMPLATE_VARIABLES_ATTRIBUTE =
RouterFunctions.class.getName() + ".uriTemplateVariables";
private static final HandlerFunction<ServerResponse> NOT_FOUND_HANDLER = request -> ServerResponse.notFound().build();
private static final HandlerFunction<ServerResponse> NOT_FOUND_HANDLER =
request -> ServerResponse.notFound().build();
/**
@@ -103,9 +104,8 @@ public abstract class RouterFunctions {
* RouterFunction&lt;ServerResponse&gt; userRoutes =
* RouterFunctions.route(RequestPredicates.method(HttpMethod.GET), this::listUsers)
* .andRoute(RequestPredicates.method(HttpMethod.POST), this::createUser);
*
* RouterFunction&lt;ServerResponse&gt; nestedRoute =
* RouterFunctions.nest(RequestPredicates.path("/user"),userRoutes);
* RouterFunctions.nest(RequestPredicates.path("/user"), userRoutes);
* </pre>
* @param predicate the predicate to test
* @param routerFunction the nested router function to delegate to if the predicate applies
@@ -125,7 +125,7 @@ public abstract class RouterFunctions {
* For instance
* <pre class="code">
* Resource location = new FileSystemResource("public-resources/");
* RoutingFunction&lt;ServerResponse&gt; resources = RouterFunctions.resources("/resources/**", location);
* RouterFunction&lt;ServerResponse&gt; resources = RouterFunctions.resources("/resources/**", location);
* </pre>
* @param pattern the pattern to match
* @param location the location directory relative to which resources should be resolved
@@ -225,12 +225,13 @@ public abstract class RouterFunctions {
};
}
private static <T> Mono<T> wrapException(Supplier<Mono<T>> supplier) {
try {
return supplier.get();
}
catch (Throwable t) {
return Mono.error(t);
catch (Throwable ex) {
return Mono.error(ex);
}
}
@@ -303,6 +304,7 @@ public abstract class RouterFunctions {
}
}
static final class SameComposedRouterFunction<T extends ServerResponse> extends AbstractRouterFunction<T> {
private final RouterFunction<T> first;
@@ -350,9 +352,9 @@ public abstract class RouterFunctions {
this.first.accept(visitor);
this.second.accept(visitor);
}
}
static final class FilteredRouterFunction<T extends ServerResponse, S extends ServerResponse>
implements RouterFunction<S> {
@@ -383,8 +385,8 @@ public abstract class RouterFunctions {
}
}
private static final class DefaultRouterFunction<T extends ServerResponse>
extends AbstractRouterFunction<T> {
private static final class DefaultRouterFunction<T extends ServerResponse> extends AbstractRouterFunction<T> {
private final RequestPredicate predicate;
@@ -414,11 +416,10 @@ public abstract class RouterFunctions {
public void accept(Visitor visitor) {
visitor.route(this.predicate, this.handlerFunction);
}
}
private static final class DefaultNestedRouterFunction<T extends ServerResponse>
extends AbstractRouterFunction<T> {
private static final class DefaultNestedRouterFunction<T extends ServerResponse> extends AbstractRouterFunction<T> {
private final RequestPredicate predicate;
@@ -446,15 +447,15 @@ public abstract class RouterFunctions {
mergeTemplateVariables(serverRequest, nestedRequest.pathVariables());
});
}
)
.orElseGet(Mono::empty);
).orElseGet(Mono::empty);
}
@SuppressWarnings("unchecked")
private void mergeTemplateVariables(ServerRequest request, Map<String, String> variables) {
if (!variables.isEmpty()) {
Map<String, Object> attributes = request.attributes();
Map<String, String> oldVariables = (Map<String, String>)request.attribute(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE)
Map<String, String> oldVariables =
(Map<String, String>) request.attribute(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE)
.orElseGet(LinkedHashMap::new);
Map<String, String> mergedVariables = new LinkedHashMap<>(oldVariables);
mergedVariables.putAll(variables);
@@ -469,9 +470,9 @@ public abstract class RouterFunctions {
this.routerFunction.accept(visitor);
visitor.endNested(this.predicate);
}
}
private static class ResourcesRouterFunction extends AbstractRouterFunction<ServerResponse> {
private final Function<ServerRequest, Mono<Resource>> lookupFunction;
@@ -492,6 +493,7 @@ public abstract class RouterFunctions {
}
}
private static class HandlerStrategiesResponseContext implements ServerResponse.Context {
private final HandlerStrategies strategies;