diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java index cc143cbfcd..7b37bf23a7 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/DispatcherHandler.java @@ -33,7 +33,7 @@ import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Central dispatcher for HTTP request handlers/controllers. Dispatches to registered @@ -112,7 +112,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { if (logger.isDebugEnabled()) { ServerHttpRequest request = exchange.getRequest(); logger.debug("Processing " + request.getMethod() + " request for [" + request.getURI() + "]"); @@ -125,7 +125,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { .otherwise(ex -> Mono.error(this.errorMapper.apply(ex))); } - private Mono invokeHandler(WebServerExchange exchange, Object handler) { + private Mono invokeHandler(ServerWebExchange exchange, Object handler) { for (HandlerAdapter handlerAdapter : this.handlerAdapters) { if (handlerAdapter.supports(handler)) { return handlerAdapter.handle(exchange, handler); @@ -134,7 +134,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { return Mono.error(new IllegalStateException("No HandlerAdapter: " + handler)); } - private Mono handleResult(WebServerExchange exchange, HandlerResult result) { + private Mono handleResult(ServerWebExchange exchange, HandlerResult result) { return getResultHandler(result).handleResult(exchange, result) .otherwise(ex -> result.applyExceptionHandler(ex).then(exceptionResult -> getResultHandler(result).handleResult(exchange, exceptionResult))); @@ -157,7 +157,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { @Override - public Mono getHandler(WebServerExchange exchange) { + public Mono getHandler(ServerWebExchange exchange) { return Mono.error(HANDLER_NOT_FOUND_EXCEPTION); } } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerAdapter.java index a8056ee3d7..18672faac0 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerAdapter.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerAdapter.java @@ -20,7 +20,7 @@ import java.util.function.Function; import reactor.core.publisher.Mono; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Contract that decouples the {@link DispatcherHandler} from the details of @@ -58,6 +58,6 @@ public interface HandlerAdapter { * @return {@link Mono} that emits a single {@code HandlerResult} or none if * the request has been fully handled and doesn't require further handling. */ - Mono handle(WebServerExchange exchange, Object handler); + Mono handle(ServerWebExchange exchange, Object handler); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerMapping.java index bc7f1bc06f..9dd0ccb072 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerMapping.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerMapping.java @@ -18,7 +18,7 @@ package org.springframework.web.reactive; import reactor.core.publisher.Mono; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Interface to be implemented by objects that define a mapping between @@ -35,6 +35,6 @@ public interface HandlerMapping { * @return A {@link Mono} that emits one value or none in case the request * cannot be resolved to a handler */ - Mono getHandler(WebServerExchange exchange); + Mono getHandler(ServerWebExchange exchange); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerResultHandler.java index cbbfae5c76..c2038b3e3c 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/HandlerResultHandler.java @@ -18,7 +18,7 @@ package org.springframework.web.reactive; import reactor.core.publisher.Mono; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Process the {@link HandlerResult}, usually returned by an {@link HandlerAdapter}. @@ -44,6 +44,6 @@ public interface HandlerResultHandler { * @param result the result from the handling * @return {@code Mono} to indicate when request handling is complete. */ - Mono handleResult(WebServerExchange exchange, HandlerResult result); + Mono handleResult(ServerWebExchange exchange, HandlerResult result); } \ No newline at end of file diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/ResponseStatusExceptionHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/ResponseStatusExceptionHandler.java index f60ebbd464..add1da9fdc 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/ResponseStatusExceptionHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/ResponseStatusExceptionHandler.java @@ -19,7 +19,7 @@ import reactor.core.publisher.Mono; import org.springframework.web.ResponseStatusException; import org.springframework.web.server.WebExceptionHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Handle {@link ResponseStatusException} by setting the response status. @@ -30,7 +30,7 @@ public class ResponseStatusExceptionHandler implements WebExceptionHandler { @Override - public Mono handle(WebServerExchange exchange, Throwable ex) { + public Mono handle(ServerWebExchange exchange, Throwable ex) { if (ex instanceof ResponseStatusException) { exchange.getResponse().setStatusCode(((ResponseStatusException) ex).getHttpStatus()); return Mono.empty(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/HttpHandlerHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/HttpHandlerHandlerAdapter.java index 51212539b1..bfe32fae98 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/HttpHandlerHandlerAdapter.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/HttpHandlerHandlerAdapter.java @@ -24,7 +24,7 @@ import org.springframework.web.reactive.DispatcherHandler; import org.springframework.web.reactive.HandlerAdapter; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Support use of {@link org.springframework.web.server.WebHandler} through the @@ -45,7 +45,7 @@ public class HttpHandlerHandlerAdapter implements HandlerAdapter { } @Override - public Mono handle(WebServerExchange exchange, Object handler) { + public Mono handle(ServerWebExchange exchange, Object handler) { WebHandler webHandler = (WebHandler) handler; Mono completion = webHandler.handle(exchange); return Mono.just(new HandlerResult(webHandler, completion, PUBLISHER_VOID)); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleHandlerResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleHandlerResultHandler.java index cfaa7066fa..ed3c513f8a 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleHandlerResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleHandlerResultHandler.java @@ -25,7 +25,7 @@ import org.springframework.core.convert.ConversionService; import org.springframework.util.Assert; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.HandlerResultHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Supports {@link HandlerResult} with a {@code void} or {@code Publisher} value. @@ -74,7 +74,7 @@ public class SimpleHandlerResultHandler implements Ordered, HandlerResultHandler @SuppressWarnings("unchecked") @Override - public Mono handleResult(WebServerExchange exchange, HandlerResult result) { + public Mono handleResult(ServerWebExchange exchange, HandlerResult result) { Object value = result.getResult(); if (Void.TYPE.equals(result.getResultType().getRawClass())) { return Mono.empty(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMapping.java index 1bca0d78ff..0f1709ad85 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMapping.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMapping.java @@ -23,7 +23,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import org.springframework.web.reactive.HandlerMapping; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * @author Rossen Stoyanchev @@ -42,7 +42,7 @@ public class SimpleUrlHandlerMapping implements HandlerMapping { @Override - public Mono getHandler(WebServerExchange exchange) { + public Mono getHandler(ServerWebExchange exchange) { return Flux.create(subscriber -> { String path = exchange.getRequest().getURI().getPath(); Object handler = this.handlerMap.get(path); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/HandlerMethodArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/HandlerMethodArgumentResolver.java index 628d4380f1..defc46ea64 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/HandlerMethodArgumentResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/HandlerMethodArgumentResolver.java @@ -19,7 +19,7 @@ package org.springframework.web.reactive.method; import reactor.core.publisher.Mono; import org.springframework.core.MethodParameter; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** @@ -35,6 +35,6 @@ public interface HandlerMethodArgumentResolver { * does not resolve to any value, which will result in {@code null} passed * as the argument value. */ - Mono resolveArgument(MethodParameter parameter, WebServerExchange exchange); + Mono resolveArgument(MethodParameter parameter, ServerWebExchange exchange); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/InvocableHandlerMethod.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/InvocableHandlerMethod.java index 855d6dc5ca..47d84dfc6c 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/InvocableHandlerMethod.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/InvocableHandlerMethod.java @@ -36,7 +36,7 @@ import org.springframework.util.ObjectUtils; import org.springframework.util.ReflectionUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerResult; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** @@ -82,7 +82,7 @@ public class InvocableHandlerMethod extends HandlerMethod { * @return Publisher that produces a single HandlerResult or an error signal; * never throws an exception */ - public Mono invokeForRequest(WebServerExchange exchange, Object... providedArgs) { + public Mono invokeForRequest(ServerWebExchange exchange, Object... providedArgs) { return resolveArguments(exchange, providedArgs).then(args -> { try { Object value = doInvoke(args); @@ -100,7 +100,7 @@ public class InvocableHandlerMethod extends HandlerMethod { }); } - private Mono resolveArguments(WebServerExchange exchange, Object... providedArgs) { + private Mono resolveArguments(ServerWebExchange exchange, Object... providedArgs) { if (ObjectUtils.isEmpty(getMethodParameters())) { return NO_ARGS; } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestBodyArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestBodyArgumentResolver.java index 3f0bff5c98..d7bbf50149 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestBodyArgumentResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestBodyArgumentResolver.java @@ -31,7 +31,7 @@ import org.springframework.http.MediaType; import org.springframework.util.Assert; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.reactive.method.HandlerMethodArgumentResolver; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * @author Sebastien Deleuze @@ -58,7 +58,7 @@ public class RequestBodyArgumentResolver implements HandlerMethodArgumentResolve } @Override - public Mono resolveArgument(MethodParameter parameter, WebServerExchange exchange) { + public Mono resolveArgument(MethodParameter parameter, ServerWebExchange exchange) { MediaType mediaType = exchange.getRequest().getHeaders().getContentType(); if (mediaType == null) { mediaType = MediaType.APPLICATION_OCTET_STREAM; diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerAdapter.java index acc907ce7d..9457a395fb 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerAdapter.java @@ -45,7 +45,7 @@ import org.springframework.web.reactive.HandlerAdapter; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.method.HandlerMethodArgumentResolver; import org.springframework.web.reactive.method.InvocableHandlerMethod; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** @@ -114,7 +114,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Initializin } @Override - public Mono handle(WebServerExchange exchange, Object handler) { + public Mono handle(ServerWebExchange exchange, Object handler) { HandlerMethod handlerMethod = (HandlerMethod) handler; InvocableHandlerMethod invocable = new InvocableHandlerMethod(handlerMethod); invocable.setHandlerMethodArgumentResolvers(this.argumentResolvers); @@ -125,7 +125,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Initializin } private Mono handleException(Throwable ex, HandlerMethod handlerMethod, - WebServerExchange exchange) { + ServerWebExchange exchange) { if (ex instanceof Exception) { InvocableHandlerMethod invocable = findExceptionHandler(handlerMethod, (Exception) ex); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMapping.java index 3d5761f4b8..d2d86dc76c 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMapping.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMapping.java @@ -41,7 +41,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethodSelector; import org.springframework.web.reactive.HandlerMapping; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** @@ -93,7 +93,7 @@ public class RequestMappingHandlerMapping implements HandlerMapping, } @Override - public Mono getHandler(WebServerExchange exchange) { + public Mono getHandler(ServerWebExchange exchange) { return Flux.create(subscriber -> { for (Map.Entry entry : this.methodMap.entrySet()) { RequestMappingInfo info = entry.getKey(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestParamArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestParamArgumentResolver.java index 3b09b36330..0bbc40906f 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestParamArgumentResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/RequestParamArgumentResolver.java @@ -21,7 +21,7 @@ import reactor.core.publisher.Mono; import org.springframework.core.MethodParameter; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.reactive.method.HandlerMethodArgumentResolver; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.util.UriComponents; import org.springframework.web.util.UriComponentsBuilder; @@ -41,7 +41,7 @@ public class RequestParamArgumentResolver implements HandlerMethodArgumentResolv @Override - public Mono resolveArgument(MethodParameter param, WebServerExchange exchange) { + public Mono resolveArgument(MethodParameter param, ServerWebExchange exchange) { RequestParam annotation = param.getParameterAnnotation(RequestParam.class); String name = (annotation.value().length() != 0 ? annotation.value() : param.getParameterName()); UriComponents uriComponents = UriComponentsBuilder.fromUri(exchange.getRequest().getURI()).build(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/ResponseBodyResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/ResponseBodyResultHandler.java index 1d6a5dd201..da7d4a01cc 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/ResponseBodyResultHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/method/annotation/ResponseBodyResultHandler.java @@ -45,7 +45,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.HandlerResultHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** @@ -130,7 +130,7 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered @Override @SuppressWarnings("unchecked") - public Mono handleResult(WebServerExchange exchange, HandlerResult result) { + public Mono handleResult(ServerWebExchange exchange, HandlerResult result) { Object value = result.getResult(); if (value == null) { diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/WebServerExchange.java b/spring-web-reactive/src/main/java/org/springframework/web/server/ServerWebExchange.java similarity index 77% rename from spring-web-reactive/src/main/java/org/springframework/web/server/WebServerExchange.java rename to spring-web-reactive/src/main/java/org/springframework/web/server/ServerWebExchange.java index 53d1006e0a..144cc81953 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/WebServerExchange.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/ServerWebExchange.java @@ -29,7 +29,7 @@ import org.springframework.http.server.reactive.ServerHttpResponse; * * @author Rossen Stoyanchev */ -public interface WebServerExchange { +public interface ServerWebExchange { /** * Return the current HTTP request. @@ -47,7 +47,12 @@ public interface WebServerExchange { Map getAttributes(); /** - * + * Return the web session for the current request. Always guaranteed to + * return an instance either matching to the session id requested by the + * client, or with a new session id either because the client did not + * specify one or because the underlying session had expired. Use of this + * method does not automatically create a session. See {@link WebSession} + * for more details. */ Mono getSession(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/WebExceptionHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/server/WebExceptionHandler.java index 438c9df82e..e189498d02 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/WebExceptionHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/WebExceptionHandler.java @@ -33,6 +33,6 @@ public interface WebExceptionHandler { * @param ex the exception to handle * @return {@code Mono} to indicate when exception handling is complete */ - Mono handle(WebServerExchange exchange, Throwable ex); + Mono handle(ServerWebExchange exchange, Throwable ex); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilter.java b/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilter.java index 2c003db3a6..6b65e7c6b0 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilter.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilter.java @@ -35,6 +35,6 @@ public interface WebFilter { * @param chain provides a way to delegate to the next filter * @return {@code Mono} to indicate when request processing is complete */ - Mono filter(WebServerExchange exchange, WebFilterChain chain); + Mono filter(ServerWebExchange exchange, WebFilterChain chain); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilterChain.java b/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilterChain.java index e7ea8668b6..54863f668e 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilterChain.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/WebFilterChain.java @@ -30,6 +30,6 @@ public interface WebFilterChain { * @param exchange the current server exchange * @return {@code Mono} to indicate when request handling is complete */ - Mono filter(WebServerExchange exchange); + Mono filter(ServerWebExchange exchange); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/WebHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/server/WebHandler.java index c5cd2883f7..b2c8045b19 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/WebHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/WebHandler.java @@ -18,19 +18,19 @@ package org.springframework.web.server; import reactor.core.publisher.Mono; -import org.springframework.web.server.adapter.WebToHttpHandlerAdapter; -import org.springframework.web.server.adapter.WebToHttpHandlerBuilder; +import org.springframework.web.server.adapter.WebHttpHandlerAdapter; +import org.springframework.web.server.adapter.WebHttpHandlerBuilder; /** * Contract to handle a web server exchange. * - *

Use {@link WebToHttpHandlerAdapter} to adapt a {@code WebHandler} to an + *

Use {@link WebHttpHandlerAdapter} to adapt a {@code WebHandler} to an * {@link org.springframework.http.server.reactive.HttpHandler HttpHandler}. - * The {@link WebToHttpHandlerBuilder} provides a convenient way to do that while + * The {@link WebHttpHandlerBuilder} provides a convenient way to do that while * also optionally configuring one or more filters and/or exception handlers. * * @author Rossen Stoyanchev - * @see WebToHttpHandlerBuilder + * @see WebHttpHandlerBuilder */ public interface WebHandler { @@ -40,6 +40,6 @@ public interface WebHandler { * @param exchange the current server exchange * @return {@code Mono} to indicate when request handling is complete */ - Mono handle(WebServerExchange exchange); + Mono handle(ServerWebExchange exchange); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultWebServerExchange.java b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java similarity index 91% rename from spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultWebServerExchange.java rename to spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java index e0aa538652..99e1f641dd 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultWebServerExchange.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java @@ -25,16 +25,16 @@ import reactor.core.publisher.Processors; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.util.Assert; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebSession; import org.springframework.web.server.session.WebSessionManager; /** - * Default implementation of {@link WebServerExchange}. + * Default implementation of {@link ServerWebExchange}. * * @author Rossen Stoyanchev */ -public class DefaultWebServerExchange implements WebServerExchange { +public class DefaultServerWebExchange implements ServerWebExchange { private final ServerHttpRequest request; @@ -51,7 +51,7 @@ public class DefaultWebServerExchange implements WebServerExchange { - public DefaultWebServerExchange(ServerHttpRequest request, ServerHttpResponse response, + public DefaultServerWebExchange(ServerHttpRequest request, ServerHttpResponse response, WebSessionManager sessionManager) { Assert.notNull(request, "'request' is required."); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerAdapter.java similarity index 68% rename from spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerAdapter.java rename to spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerAdapter.java index bb67feab84..fab3ffcdcb 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerAdapter.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerAdapter.java @@ -26,32 +26,37 @@ import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.util.Assert; import org.springframework.web.server.WebHandler; import org.springframework.web.server.handler.WebHandlerDecorator; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.session.DefaultWebSessionManager; import org.springframework.web.server.session.WebSessionManager; /** - * Adapt {@link WebHandler} to {@link HttpHandler} also creating the - * {@link WebServerExchange} before invoking the target {@code WebHandler}. + * Default adapter of {@link WebHandler} to the {@link HttpHandler} contract. + * + *

By default creates and configures a {@link DefaultServerWebExchange} and + * then invokes the target {@code WebHandler}. * * @author Rossen Stoyanchev */ -public class WebToHttpHandlerAdapter extends WebHandlerDecorator implements HttpHandler { +public class WebHttpHandlerAdapter extends WebHandlerDecorator implements HttpHandler { - private static Log logger = LogFactory.getLog(WebToHttpHandlerAdapter.class); + private static Log logger = LogFactory.getLog(WebHttpHandlerAdapter.class); private WebSessionManager sessionManager = new DefaultWebSessionManager(); - public WebToHttpHandlerAdapter(WebHandler delegate) { + public WebHttpHandlerAdapter(WebHandler delegate) { super(delegate); } /** - * - * @param sessionManager + * Configure a custom {@link WebSessionManager} to use for managing web + * sessions. The provided instance is set on each created + * {@link DefaultServerWebExchange}. + *

By default this is set to {@link DefaultWebSessionManager}. + * @param sessionManager the session manager to use */ public void setSessionManager(WebSessionManager sessionManager) { Assert.notNull(sessionManager, "'sessionManager' must not be null."); @@ -68,7 +73,7 @@ public class WebToHttpHandlerAdapter extends WebHandlerDecorator implements Http @Override public Mono handle(ServerHttpRequest request, ServerHttpResponse response) { - WebServerExchange exchange = createWebServerExchange(request, response); + ServerWebExchange exchange = createExchange(request, response); return getDelegate().handle(exchange) .otherwise(ex -> { if (logger.isDebugEnabled()) { @@ -80,8 +85,8 @@ public class WebToHttpHandlerAdapter extends WebHandlerDecorator implements Http .after(response::setComplete); } - protected WebServerExchange createWebServerExchange(ServerHttpRequest request, ServerHttpResponse response) { - return new DefaultWebServerExchange(request, response, this.sessionManager); + protected ServerWebExchange createExchange(ServerHttpRequest request, ServerHttpResponse response) { + return new DefaultServerWebExchange(request, response, this.sessionManager); } } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java new file mode 100644 index 0000000000..38dfda1b54 --- /dev/null +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebHttpHandlerBuilder.java @@ -0,0 +1,158 @@ +/* + * Copyright 2002-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.web.server.adapter; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.springframework.http.server.reactive.HttpHandler; +import org.springframework.util.Assert; +import org.springframework.util.ObjectUtils; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.WebExceptionHandler; +import org.springframework.web.server.WebFilter; +import org.springframework.web.server.WebHandler; +import org.springframework.web.server.handler.ExceptionHandlingWebHandler; +import org.springframework.web.server.handler.FilteringWebHandler; +import org.springframework.web.server.session.WebSessionManager; + +/** + * Build an {@link org.springframework.http.server.reactive.HttpHandler HttpHandler} + * to handle requests with a chain of {@link #filters(WebFilter...) web filters}, + * a target {@link #webHandler(WebHandler) web handler}, and apply one or more + * {@link #exceptionHandlers(WebExceptionHandler...) exception handlers}. + * + *

Effective this sets up the following {@code WebHandler} delegation:
+ * {@link WebHttpHandlerAdapter} {@code -->} + * {@link ExceptionHandlingWebHandler} {@code -->} + * {@link FilteringWebHandler} {@code -->} + * {@link WebHandler} + * + *

Example usage: + *

+ * WebFilter myFilter = ... ;
+ * WebHandler myHandler = ... ;
+ *
+ * HttpHandler httpHandler = WebToHttpHandlerBuilder.webHandler(myHandler)
+ *         .filters(myFilter)
+ *         .exceptionHandlers(new ResponseStatusExceptionHandler())
+ *         .build();
+ *
+ * // Configure the HttpServer with the created httpHandler
+ * 
+ * + * @author Rossen Stoyanchev + */ +public class WebHttpHandlerBuilder { + + private final WebHandler targetHandler; + + private final List filters = new ArrayList<>(); + + private final List exceptionHandlers = new ArrayList<>(); + + private WebSessionManager sessionManager; + + + /** + * Private constructor. + * See static factory method {@link #webHandler(WebHandler)}. + */ + private WebHttpHandlerBuilder(WebHandler targetHandler) { + Assert.notNull(targetHandler, "'targetHandler' must not be null"); + this.targetHandler = targetHandler; + } + + + /** + * Factory method to create a new builder instance. + * @param targetHandler the target handler to process requests with + */ + public static WebHttpHandlerBuilder webHandler(WebHandler targetHandler) { + return new WebHttpHandlerBuilder(targetHandler); + } + + + /** + * Add the given filters to use for processing requests. + * @param filters the filters to add + */ + public WebHttpHandlerBuilder filters(WebFilter... filters) { + if (!ObjectUtils.isEmpty(filters)) { + this.filters.addAll(Arrays.asList(filters)); + } + return this; + } + + /** + * Add the given exception handler to apply at the end of request processing. + * @param exceptionHandlers the exception handlers + */ + public WebHttpHandlerBuilder exceptionHandlers(WebExceptionHandler... exceptionHandlers) { + if (!ObjectUtils.isEmpty(exceptionHandlers)) { + this.exceptionHandlers.addAll(Arrays.asList(exceptionHandlers)); + } + return this; + } + + /** + * Configure the {@link WebSessionManager} to set on the + * {@link ServerWebExchange WebServerExchange} + * created for each HTTP request. + * @param sessionManager the session manager + */ + public WebHttpHandlerBuilder sessionManager(WebSessionManager sessionManager) { + this.sessionManager = sessionManager; + return this; + } + + /** + * Build the {@link HttpHandler}. + */ + public HttpHandler build() { + WebHandler handler = createWebHandler(); + return adaptWebHandler(handler); + } + + /** + * Create the final (decorated) {@link WebHandler} to use. + */ + protected WebHandler createWebHandler() { + WebHandler webHandler = this.targetHandler; + if (!this.exceptionHandlers.isEmpty()) { + WebExceptionHandler[] array = new WebExceptionHandler[this.exceptionHandlers.size()]; + webHandler = new ExceptionHandlingWebHandler(webHandler, this.exceptionHandlers.toArray(array)); + } + if (!this.filters.isEmpty()) { + WebFilter[] array = new WebFilter[this.filters.size()]; + webHandler = new FilteringWebHandler(webHandler, this.filters.toArray(array)); + } + return webHandler; + } + + /** + * Adapt the {@link WebHandler} to {@link HttpHandler}. + */ + protected WebHttpHandlerAdapter adaptWebHandler(WebHandler handler) { + WebHttpHandlerAdapter adapter = new WebHttpHandlerAdapter(handler); + if (this.sessionManager != null) { + adapter.setSessionManager(this.sessionManager); + } + return adapter; + } + +} diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerBuilder.java b/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerBuilder.java deleted file mode 100644 index 97ca700f23..0000000000 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/adapter/WebToHttpHandlerBuilder.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2002-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.web.server.adapter; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.springframework.http.server.reactive.HttpHandler; -import org.springframework.util.Assert; -import org.springframework.util.ObjectUtils; -import org.springframework.web.server.WebExceptionHandler; -import org.springframework.web.server.WebFilter; -import org.springframework.web.server.WebHandler; -import org.springframework.web.server.handler.ExceptionHandlingWebHandler; -import org.springframework.web.server.handler.FilteringWebHandler; -import org.springframework.web.server.session.WebSessionManager; - -/** - * Assist with building an - * {@link org.springframework.http.server.reactive.HttpHandler HttpHandler} to - * invoke a target {@link WebHandler} with an optional chain of - * {@link WebFilter}s and one or more {@link WebExceptionHandler}s. - * - *

Effective this sets up the following {@code WebHandler} delegation:
- * {@link WebToHttpHandlerAdapter} {@code -->} - * {@link ExceptionHandlingWebHandler} {@code -->} - * {@link FilteringWebHandler} - * - * @author Rossen Stoyanchev - */ -public class WebToHttpHandlerBuilder { - - private final WebHandler targetHandler; - - private final List filters = new ArrayList<>(); - - private final List exceptionHandlers = new ArrayList<>(); - - private WebSessionManager sessionManager; - - - private WebToHttpHandlerBuilder(WebHandler targetHandler) { - Assert.notNull(targetHandler, "'targetHandler' must not be null"); - this.targetHandler = targetHandler; - } - - - public static WebToHttpHandlerBuilder webHandler(WebHandler webHandler) { - return new WebToHttpHandlerBuilder(webHandler); - } - - public WebToHttpHandlerBuilder filters(WebFilter... filters) { - if (!ObjectUtils.isEmpty(filters)) { - this.filters.addAll(Arrays.asList(filters)); - } - return this; - } - - public WebToHttpHandlerBuilder exceptionHandlers(WebExceptionHandler... exceptionHandlers) { - if (!ObjectUtils.isEmpty(exceptionHandlers)) { - this.exceptionHandlers.addAll(Arrays.asList(exceptionHandlers)); - } - return this; - } - - public WebToHttpHandlerBuilder sessionManager(WebSessionManager sessionManager) { - this.sessionManager = sessionManager; - return this; - } - - public HttpHandler build() { - WebHandler handler = this.targetHandler; - if (!this.exceptionHandlers.isEmpty()) { - WebExceptionHandler[] array = new WebExceptionHandler[this.exceptionHandlers.size()]; - handler = new ExceptionHandlingWebHandler(handler, this.exceptionHandlers.toArray(array)); - } - if (!this.filters.isEmpty()) { - WebFilter[] array = new WebFilter[this.filters.size()]; - handler = new FilteringWebHandler(handler, this.filters.toArray(array)); - } - WebToHttpHandlerAdapter adapter = new WebToHttpHandlerAdapter(handler); - if (this.sessionManager != null) { - adapter.setSessionManager(this.sessionManager); - } - return adapter; - } - -} diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java index 5f75c3a8dc..a21433f33d 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java @@ -26,11 +26,11 @@ import reactor.core.publisher.Mono; import org.springframework.http.HttpStatus; import org.springframework.web.server.WebExceptionHandler; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** - * {@code WebHandler} that decorates another with exception handling using one - * or more instances of {@link WebExceptionHandler}. + * WebHandler that can invoke a target {@link WebHandler} and then apply + * exception handling with one or more {@link WebExceptionHandler} instances. * * @author Rossen Stoyanchev */ @@ -53,7 +53,7 @@ public class ExceptionHandlingWebHandler extends WebHandlerDecorator { /** - * @return a read-only list of the configured exception handlers. + * Return a read-only list of the configured exception handlers. */ public List getExceptionHandlers() { return this.exceptionHandlers; @@ -61,7 +61,7 @@ public class ExceptionHandlingWebHandler extends WebHandlerDecorator { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { Mono mono; try { mono = getDelegate().handle(exchange); @@ -75,7 +75,7 @@ public class ExceptionHandlingWebHandler extends WebHandlerDecorator { return mono.otherwise(ex -> handleUnresolvedException(exchange, ex)); } - private Mono handleUnresolvedException(WebServerExchange exchange, Throwable ex) { + private Mono handleUnresolvedException(ServerWebExchange exchange, Throwable ex) { if (logger.isDebugEnabled()) { logger.debug("Could not complete request", ex); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/FilteringWebHandler.java b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/FilteringWebHandler.java index 9b55bf98ba..8dc1d7396a 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/FilteringWebHandler.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/FilteringWebHandler.java @@ -24,10 +24,11 @@ import reactor.core.publisher.Mono; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** - * {@code WebHandler} that decorates another with a chain of {@link WebFilter}s. + * WebHandler that delegates to a chain of {@link WebFilter} instances followed + * by a target {@link WebHandler}. * * @author Rossen Stoyanchev */ @@ -47,14 +48,14 @@ public class FilteringWebHandler extends WebHandlerDecorator { /** - * @return a read-only list of the configured filters. + * Return a read-only list of the configured filters. */ public List getFilters() { return this.filters; } @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { return new DefaultWebFilterChain().filter(exchange); } @@ -65,7 +66,7 @@ public class FilteringWebHandler extends WebHandlerDecorator { @Override - public Mono filter(WebServerExchange exchange) { + public Mono filter(ServerWebExchange exchange) { if (this.index < filters.size()) { WebFilter filter = filters.get(this.index++); return filter.filter(exchange, this); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/WebHandlerDecorator.java b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/WebHandlerDecorator.java index 151ce5b115..5fa614af59 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/handler/WebHandlerDecorator.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/handler/WebHandlerDecorator.java @@ -19,10 +19,10 @@ import reactor.core.publisher.Mono; import org.springframework.util.Assert; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** - * Base class for a {@link WebHandler} that decorates and delegates to another. + * {@link WebHandler} that decorates and delegates to another. * * @author Rossen Stoyanchev */ @@ -43,7 +43,7 @@ public class WebHandlerDecorator implements WebHandler { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { return this.delegate.handle(exchange); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java index 2584487c2b..f325be9e67 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java @@ -25,7 +25,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; /** * Cookie-based {@link WebSessionIdResolver}. @@ -75,7 +75,7 @@ public class CookieWebSessionIdResolver implements WebSessionIdResolver { @Override - public Optional resolveSessionId(WebServerExchange exchange) { + public Optional resolveSessionId(ServerWebExchange exchange) { HttpHeaders headers = exchange.getRequest().getHeaders(); List cookies = headers.getCookies().get(getCookieName()); return (CollectionUtils.isEmpty(cookies) ? @@ -83,7 +83,7 @@ public class CookieWebSessionIdResolver implements WebSessionIdResolver { } @Override - public void setSessionId(WebServerExchange exchange, String id) { + public void setSessionId(ServerWebExchange exchange, String id) { Duration maxAge = (StringUtils.hasText(id) ? getCookieMaxAge() : Duration.ofSeconds(0)); HttpCookie cookie = HttpCookie.serverCookie(getCookieName(), id).maxAge(maxAge).build(); HttpHeaders headers = exchange.getResponse().getHeaders(); diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java b/spring-web-reactive/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java index f374449215..8c1756c313 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java @@ -23,7 +23,7 @@ import java.util.UUID; import reactor.core.publisher.Mono; import org.springframework.util.Assert; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebSession; @@ -97,7 +97,7 @@ public class DefaultWebSessionManager implements WebSessionManager { @Override - public Mono getSession(WebServerExchange exchange) { + public Mono getSession(ServerWebExchange exchange) { return Mono.fromCallable(() -> getSessionIdResolver().resolveSessionId(exchange)) .where(Optional::isPresent) .map(Optional::get) @@ -107,7 +107,7 @@ public class DefaultWebSessionManager implements WebSessionManager { .map(session -> extendSession(exchange, session)); } - protected Mono validateSession(WebServerExchange exchange, WebSession session) { + protected Mono validateSession(ServerWebExchange exchange, WebSession session) { if (session.isExpired()) { this.sessionIdResolver.setSessionId(exchange, ""); return this.sessionStore.removeSession(session.getId()).after(Mono::empty); @@ -117,13 +117,13 @@ public class DefaultWebSessionManager implements WebSessionManager { } } - protected Mono createSession(WebServerExchange exchange) { + protected Mono createSession(ServerWebExchange exchange) { String sessionId = UUID.randomUUID().toString(); WebSession session = new DefaultWebSession(sessionId, getClock()); return Mono.just(session); } - protected WebSession extendSession(WebServerExchange exchange, WebSession session) { + protected WebSession extendSession(ServerWebExchange exchange, WebSession session) { if (session instanceof ConfigurableWebSession) { ConfigurableWebSession managed = (ConfigurableWebSession) session; managed.setSaveOperation(() -> saveSession(exchange, session)); @@ -133,7 +133,7 @@ public class DefaultWebSessionManager implements WebSessionManager { return session; } - protected Mono saveSession(WebServerExchange exchange, WebSession session) { + protected Mono saveSession(ServerWebExchange exchange, WebSession session) { Assert.isTrue(!session.isExpired(), "Sessions are checked for expiration and have their " + "access time updated when first accessed during request processing. " + diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java b/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java index 61c28260f2..151952716b 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java @@ -17,8 +17,7 @@ package org.springframework.web.server.session; import java.util.Optional; -import org.springframework.web.server.WebServerExchange; -import org.springframework.web.server.WebSession; +import org.springframework.web.server.ServerWebExchange; /** @@ -36,7 +35,7 @@ public interface WebSessionIdResolver { * @param exchange the current exchange * @return the session id if present */ - Optional resolveSessionId(WebServerExchange exchange); + Optional resolveSessionId(ServerWebExchange exchange); /** * Send the given session id to the client or if the session id is "null" @@ -44,6 +43,6 @@ public interface WebSessionIdResolver { * @param exchange the current exchange * @param sessionId the session id */ - void setSessionId(WebServerExchange exchange, String sessionId); + void setSessionId(ServerWebExchange exchange, String sessionId); } diff --git a/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionManager.java b/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionManager.java index 63909b072e..f0ad012150 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionManager.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/server/session/WebSessionManager.java @@ -17,7 +17,7 @@ package org.springframework.web.server.session; import reactor.core.publisher.Mono; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebSession; /** @@ -43,6 +43,6 @@ public interface WebSessionManager { * @param exchange the current exchange * @return {@code Mono} for async access to the session */ - Mono getSession(WebServerExchange exchange); + Mono getSession(ServerWebExchange exchange); } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/DispatcherHandlerErrorTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/DispatcherHandlerErrorTests.java index b9d1dda3f7..776277fbb6 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/DispatcherHandlerErrorTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/DispatcherHandlerErrorTests.java @@ -49,14 +49,14 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.reactive.method.annotation.RequestMappingHandlerAdapter; import org.springframework.web.reactive.method.annotation.RequestMappingHandlerMapping; import org.springframework.web.reactive.method.annotation.ResponseBodyResultHandler; -import org.springframework.web.server.adapter.DefaultWebServerExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; import org.springframework.web.server.handler.ExceptionHandlingWebHandler; import org.springframework.web.server.handler.FilteringWebHandler; import org.springframework.web.server.WebExceptionHandler; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.session.WebSessionManager; import static org.hamcrest.CoreMatchers.startsWith; @@ -81,7 +81,7 @@ public class DispatcherHandlerErrorTests { private MockServerHttpResponse response; - private WebServerExchange exchange; + private ServerWebExchange exchange; @Before @@ -97,7 +97,7 @@ public class DispatcherHandlerErrorTests { this.request = new MockServerHttpRequest(HttpMethod.GET, new URI("/")); this.response = new MockServerHttpResponse(); - this.exchange = new DefaultWebServerExchange(this.request, this.response, sessionManager); + this.exchange = new DefaultServerWebExchange(this.request, this.response, sessionManager); } @@ -280,7 +280,7 @@ public class DispatcherHandlerErrorTests { private static class ServerError500ExceptionHandler implements WebExceptionHandler { @Override - public Mono handle(WebServerExchange exchange, Throwable ex) { + public Mono handle(ServerWebExchange exchange, Throwable ex) { exchange.getResponse().setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); } @@ -289,7 +289,7 @@ public class DispatcherHandlerErrorTests { private static class TestWebFilter implements WebFilter { @Override - public Mono filter(WebServerExchange exchange, WebFilterChain chain) { + public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { return chain.filter(exchange); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/ResponseStatusExceptionHandlerTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/ResponseStatusExceptionHandlerTests.java index 0bd90168d2..4257499747 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/ResponseStatusExceptionHandlerTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/ResponseStatusExceptionHandlerTests.java @@ -29,8 +29,8 @@ import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.MockServerHttpRequest; import org.springframework.http.server.reactive.MockServerHttpResponse; import org.springframework.web.ResponseStatusException; -import org.springframework.web.server.adapter.DefaultWebServerExchange; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.session.WebSessionManager; import static org.junit.Assert.assertEquals; @@ -47,7 +47,7 @@ public class ResponseStatusExceptionHandlerTests { private MockServerHttpResponse response; - private WebServerExchange exchange; + private ServerWebExchange exchange; @Before @@ -56,7 +56,7 @@ public class ResponseStatusExceptionHandlerTests { MockServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, new URI("/path")); WebSessionManager sessionManager = mock(WebSessionManager.class); this.response = new MockServerHttpResponse(); - this.exchange = new DefaultWebServerExchange(request, this.response, sessionManager); + this.exchange = new DefaultServerWebExchange(request, this.response, sessionManager); } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMappingIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMappingIntegrationTests.java index 859201d754..a8fdd8b0aa 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMappingIntegrationTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/handler/SimpleUrlHandlerMappingIntegrationTests.java @@ -39,8 +39,8 @@ import org.springframework.web.client.RestTemplate; import org.springframework.web.reactive.DispatcherHandler; import org.springframework.web.reactive.ResponseStatusExceptionHandler; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; -import org.springframework.web.server.adapter.WebToHttpHandlerBuilder; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -66,7 +66,7 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler DispatcherHandler webHandler = new DispatcherHandler(); webHandler.setApplicationContext(wac); - return WebToHttpHandlerBuilder.webHandler(webHandler) + return WebHttpHandlerBuilder.webHandler(webHandler) .exceptionHandlers(new ResponseStatusExceptionHandler()) .build(); } @@ -140,7 +140,7 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler private static class FooHandler implements WebHandler { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { DataBuffer buffer = new DefaultDataBufferAllocator().allocateBuffer() .write("foo".getBytes(StandardCharsets.UTF_8)); return exchange.getResponse().setBody(Flux.just(buffer)); @@ -150,7 +150,7 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler private static class BarHandler implements WebHandler { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { DataBuffer buffer = new DefaultDataBufferAllocator().allocateBuffer() .write("bar".getBytes(StandardCharsets.UTF_8)); return exchange.getResponse().setBody(Flux.just(buffer)); @@ -160,7 +160,7 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler private static class HeaderSettingHandler implements WebHandler { @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { exchange.getResponse().getHeaders().add("foo", "bar"); return Mono.empty(); } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/InvocableHandlerMethodTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/InvocableHandlerMethodTests.java index c9da12c17a..892d554e2a 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/InvocableHandlerMethodTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/InvocableHandlerMethodTests.java @@ -35,8 +35,8 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.method.HandlerMethod; import org.springframework.web.reactive.HandlerResult; import org.springframework.web.reactive.method.annotation.RequestParamArgumentResolver; -import org.springframework.web.server.adapter.DefaultWebServerExchange; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.session.WebSessionManager; import static org.junit.Assert.assertEquals; @@ -52,14 +52,14 @@ public class InvocableHandlerMethodTests { private ServerHttpRequest request; - private WebServerExchange exchange; + private ServerWebExchange exchange; @Before public void setUp() throws Exception { WebSessionManager sessionManager = mock(WebSessionManager.class); this.request = mock(ServerHttpRequest.class); - this.exchange = new DefaultWebServerExchange(request, mock(ServerHttpResponse.class), sessionManager); + this.exchange = new DefaultServerWebExchange(request, mock(ServerHttpResponse.class), sessionManager); } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMappingTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMappingTests.java index bd2d143dca..d29d0d7f2e 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMappingTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingHandlerMappingTests.java @@ -34,8 +34,8 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.method.HandlerMethod; -import org.springframework.web.server.adapter.DefaultWebServerExchange; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.session.WebSessionManager; import static java.util.stream.Collectors.toList; @@ -66,7 +66,7 @@ public class RequestMappingHandlerMappingTests { ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, new URI("boo")); MockServerHttpResponse response = new MockServerHttpResponse(); WebSessionManager sessionManager = mock(WebSessionManager.class); - WebServerExchange exchange = new DefaultWebServerExchange(request, response, sessionManager); + ServerWebExchange exchange = new DefaultServerWebExchange(request, response, sessionManager); Publisher handlerPublisher = this.mapping.getHandler(exchange); HandlerMethod handlerMethod = toHandlerMethod(handlerPublisher); assertEquals(TestController.class.getMethod("boo"), handlerMethod.getMethod()); @@ -77,13 +77,13 @@ public class RequestMappingHandlerMappingTests { ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.POST, new URI("foo")); MockServerHttpResponse response = new MockServerHttpResponse(); WebSessionManager sessionManager = mock(WebSessionManager.class); - WebServerExchange exchange = new DefaultWebServerExchange(request, response, sessionManager); + ServerWebExchange exchange = new DefaultServerWebExchange(request, response, sessionManager); Publisher handlerPublisher = this.mapping.getHandler(exchange); HandlerMethod handlerMethod = toHandlerMethod(handlerPublisher); assertEquals(TestController.class.getMethod("postFoo"), handlerMethod.getMethod()); request = new MockServerHttpRequest(HttpMethod.GET, new URI("foo")); - exchange = new DefaultWebServerExchange(request, new MockServerHttpResponse(), sessionManager); + exchange = new DefaultServerWebExchange(request, new MockServerHttpResponse(), sessionManager); handlerPublisher = this.mapping.getHandler(exchange); handlerMethod = toHandlerMethod(handlerPublisher); assertEquals(TestController.class.getMethod("getFoo"), handlerMethod.getMethod()); diff --git a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingIntegrationTests.java index d0331c8c23..2ec5b58d94 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingIntegrationTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/reactive/method/annotation/RequestMappingIntegrationTests.java @@ -64,7 +64,7 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import org.springframework.web.reactive.DispatcherHandler; import org.springframework.web.reactive.handler.SimpleHandlerResultHandler; -import org.springframework.web.server.adapter.WebToHttpHandlerBuilder; +import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; @@ -88,7 +88,7 @@ public class RequestMappingIntegrationTests extends AbstractHttpHandlerIntegrati DispatcherHandler webHandler = new DispatcherHandler(); webHandler.setApplicationContext(this.wac); - return WebToHttpHandlerBuilder.webHandler(webHandler).build(); + return WebHttpHandlerBuilder.webHandler(webHandler).build(); } @Test diff --git a/spring-web-reactive/src/test/java/org/springframework/web/server/handler/ExceptionHandlingHttpHandlerTests.java b/spring-web-reactive/src/test/java/org/springframework/web/server/handler/ExceptionHandlingHttpHandlerTests.java index ef9e3cafaa..0e1c0240bd 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/server/handler/ExceptionHandlingHttpHandlerTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/server/handler/ExceptionHandlingHttpHandlerTests.java @@ -28,9 +28,8 @@ import org.springframework.http.server.reactive.MockServerHttpRequest; import org.springframework.http.server.reactive.MockServerHttpResponse; import org.springframework.web.server.WebExceptionHandler; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; -import org.springframework.web.server.handler.ExceptionHandlingWebHandler; -import org.springframework.web.server.adapter.DefaultWebServerExchange; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; import org.springframework.web.server.session.WebSessionManager; import static org.junit.Assert.assertEquals; @@ -44,7 +43,7 @@ public class ExceptionHandlingHttpHandlerTests { private MockServerHttpResponse response; - private WebServerExchange exchange; + private ServerWebExchange exchange; private WebHandler targetHandler; @@ -55,7 +54,7 @@ public class ExceptionHandlingHttpHandlerTests { WebSessionManager sessionManager = mock(WebSessionManager.class); MockServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, uri); this.response = new MockServerHttpResponse(); - this.exchange = new DefaultWebServerExchange(request, this.response, sessionManager); + this.exchange = new DefaultServerWebExchange(request, this.response, sessionManager); this.targetHandler = new StubWebHandler(new IllegalStateException("boo")); } @@ -119,7 +118,7 @@ public class ExceptionHandlingHttpHandlerTests { } @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { if (this.raise) { throw this.exception; } @@ -130,7 +129,7 @@ public class ExceptionHandlingHttpHandlerTests { private static class BadRequestExceptionHandler implements WebExceptionHandler { @Override - public Mono handle(WebServerExchange exchange, Throwable ex) { + public Mono handle(ServerWebExchange exchange, Throwable ex) { exchange.getResponse().setStatusCode(HttpStatus.BAD_REQUEST); return Mono.empty(); } @@ -140,7 +139,7 @@ public class ExceptionHandlingHttpHandlerTests { private static class UnresolvedExceptionHandler implements WebExceptionHandler { @Override - public Mono handle(WebServerExchange exchange, Throwable ex) { + public Mono handle(ServerWebExchange exchange, Throwable ex) { return Mono.error(ex); } } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/server/handler/FilteringWebHandlerTests.java b/spring-web-reactive/src/test/java/org/springframework/web/server/handler/FilteringWebHandlerTests.java index 0deeb1f7d3..3ba4e6966d 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/server/handler/FilteringWebHandlerTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/server/handler/FilteringWebHandlerTests.java @@ -33,8 +33,8 @@ import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; -import org.springframework.web.server.adapter.WebToHttpHandlerBuilder; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -109,7 +109,7 @@ public class FilteringWebHandlerTests { } private HttpHandler createHttpHandler(StubWebHandler webHandler, WebFilter... filters) { - return WebToHttpHandlerBuilder.webHandler(webHandler).filters(filters).build(); + return WebHttpHandlerBuilder.webHandler(webHandler).filters(filters).build(); } @@ -123,12 +123,12 @@ public class FilteringWebHandlerTests { } @Override - public Mono filter(WebServerExchange exchange, WebFilterChain chain) { + public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { this.invoked = true; return doFilter(exchange, chain); } - public Mono doFilter(WebServerExchange exchange, WebFilterChain chain) { + public Mono doFilter(ServerWebExchange exchange, WebFilterChain chain) { return chain.filter(exchange); } } @@ -136,7 +136,7 @@ public class FilteringWebHandlerTests { private static class ShortcircuitingFilter extends TestFilter { @Override - public Mono doFilter(WebServerExchange exchange, WebFilterChain chain) { + public Mono doFilter(ServerWebExchange exchange, WebFilterChain chain) { return Mono.empty(); } } @@ -144,7 +144,7 @@ public class FilteringWebHandlerTests { private static class AsyncFilter extends TestFilter { @Override - public Mono doFilter(WebServerExchange exchange, WebFilterChain chain) { + public Mono doFilter(ServerWebExchange exchange, WebFilterChain chain) { return doAsyncWork().then(asyncResult -> { logger.debug("Async result: " + asyncResult); return chain.filter(exchange); @@ -166,7 +166,7 @@ public class FilteringWebHandlerTests { } @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { logger.trace("StubHandler invoked."); this.invoked = true; return Mono.empty(); diff --git a/spring-web-reactive/src/test/java/org/springframework/web/server/session/DefaultWebSessionManagerTests.java b/spring-web-reactive/src/test/java/org/springframework/web/server/session/DefaultWebSessionManagerTests.java index 8bae6455d3..5342f97f1a 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/server/session/DefaultWebSessionManagerTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/server/session/DefaultWebSessionManagerTests.java @@ -27,8 +27,8 @@ import org.junit.Test; import org.springframework.http.HttpMethod; import org.springframework.http.server.reactive.MockServerHttpRequest; import org.springframework.http.server.reactive.MockServerHttpResponse; -import org.springframework.web.server.adapter.DefaultWebServerExchange; -import org.springframework.web.server.WebServerExchange; +import org.springframework.web.server.adapter.DefaultServerWebExchange; +import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebSession; import static org.junit.Assert.assertEquals; @@ -47,7 +47,7 @@ public class DefaultWebSessionManagerTests { private TestWebSessionIdResolver idResolver; - private DefaultWebServerExchange exchange; + private DefaultServerWebExchange exchange; @Before @@ -58,7 +58,7 @@ public class DefaultWebSessionManagerTests { MockServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, new URI("/path")); MockServerHttpResponse response = new MockServerHttpResponse(); - this.exchange = new DefaultWebServerExchange(request, response, this.manager); + this.exchange = new DefaultServerWebExchange(request, response, this.manager); } @@ -140,12 +140,12 @@ public class DefaultWebSessionManagerTests { } @Override - public Optional resolveSessionId(WebServerExchange exchange) { + public Optional resolveSessionId(ServerWebExchange exchange) { return this.idToResolve; } @Override - public void setSessionId(WebServerExchange exchange, String sessionId) { + public void setSessionId(ServerWebExchange exchange, String sessionId) { this.id = sessionId; } } diff --git a/spring-web-reactive/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java index 9c25fd9619..cc5cfdf437 100644 --- a/spring-web-reactive/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java +++ b/spring-web-reactive/src/test/java/org/springframework/web/server/session/WebSessionIntegrationTests.java @@ -36,8 +36,8 @@ import org.springframework.http.server.reactive.HttpHandler; import org.springframework.util.StringUtils; import org.springframework.web.client.RestTemplate; import org.springframework.web.server.WebHandler; -import org.springframework.web.server.WebServerExchange; -import org.springframework.web.server.adapter.WebToHttpHandlerBuilder; +import org.springframework.web.server.ServerWebExchange; +import org.springframework.web.server.adapter.WebHttpHandlerBuilder; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -72,7 +72,7 @@ public class WebSessionIntegrationTests extends AbstractHttpHandlerIntegrationTe protected HttpHandler createHttpHandler() { this.sessionManager = new DefaultWebSessionManager(); this.handler = new TestWebHandler(); - return WebToHttpHandlerBuilder.webHandler(this.handler).sessionManager(this.sessionManager).build(); + return WebHttpHandlerBuilder.webHandler(this.handler).sessionManager(this.sessionManager).build(); } @Test @@ -152,7 +152,7 @@ public class WebSessionIntegrationTests extends AbstractHttpHandlerIntegrationTe } @Override - public Mono handle(WebServerExchange exchange) { + public Mono handle(ServerWebExchange exchange) { return exchange.getSession().map(session -> { Map map = session.getAttributes(); int value = (map.get("counter") != null ? (int) map.get("counter") : 0);