From e3fae2716e9d70903e9790efa0bdc312fda39615 Mon Sep 17 00:00:00 2001 From: Sebastien Deleuze Date: Thu, 13 Apr 2017 15:30:21 +0200 Subject: [PATCH] Rename Mono#otherwise[Empty] to switch[onError/IfEmpty] Issue: SPR-15318 --- .../http/server/reactive/ReactorHttpHandlerAdapter.java | 2 +- .../http/server/reactive/RxNettyHttpHandlerAdapter.java | 2 +- .../web/server/adapter/DefaultServerWebExchange.java | 2 +- .../web/server/adapter/HttpWebHandlerAdapter.java | 2 +- .../web/server/handler/ExceptionHandlingWebHandler.java | 2 +- .../web/server/session/DefaultWebSessionManager.java | 2 +- .../http/server/reactive/ServerHttpResponseTests.java | 2 +- .../org/springframework/web/reactive/DispatcherHandler.java | 4 ++-- .../function/server/DefaultRenderingResponseBuilder.java | 2 +- .../web/reactive/function/server/RouterFunction.java | 4 ++-- .../web/reactive/function/server/RouterFunctions.java | 2 +- .../web/reactive/resource/ResourceWebHandler.java | 2 +- .../web/reactive/resource/VersionResourceResolver.java | 2 +- .../web/reactive/resource/WebJarsResourceResolver.java | 4 ++-- .../annotation/AbstractMessageReaderArgumentResolver.java | 4 ++-- .../method/annotation/AbstractNamedValueArgumentResolver.java | 2 +- .../method/annotation/RequestMappingHandlerAdapter.java | 2 +- .../web/reactive/result/view/ViewResolutionResultHandler.java | 2 +- src/docs/asciidoc/web/web-flux-functional.adoc | 2 +- 19 files changed, 23 insertions(+), 23 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java index 027a4351cf..cf010ae21a 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java @@ -57,7 +57,7 @@ public class ReactorHttpHandlerAdapter ReactorServerHttpResponse resp = new ReactorServerHttpResponse(response, bufferFactory); return this.httpHandler.handle(req, resp) - .otherwise(ex -> { + .switchOnError(ex -> { logger.error("Could not complete request", ex); response.status(HttpResponseStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java index 72ccd41c52..57978cb50e 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/RxNettyHttpHandlerAdapter.java @@ -66,7 +66,7 @@ public class RxNettyHttpHandlerAdapter implements RequestHandler result = this.httpHandler.handle(request, response) - .otherwise(ex -> { + .switchOnError(ex -> { logger.error("Could not complete request", ex); nativeResponse.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java b/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java index 3cf1842cf7..9d51754304 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/DefaultServerWebExchange.java @@ -106,7 +106,7 @@ public class DefaultServerWebExchange implements ServerWebExchange { if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(contentType)) { return FORM_READER .readMono(FORM_DATA_VALUE_TYPE, request, Collections.emptyMap()) - .otherwiseIfEmpty(EMPTY_FORM_DATA) + .switchIfEmpty(EMPTY_FORM_DATA) .cache(); } } diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java index b218a78312..ffae11f5fd 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java @@ -76,7 +76,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa public Mono handle(ServerHttpRequest request, ServerHttpResponse response) { ServerWebExchange exchange = createExchange(request, response); return getDelegate().handle(exchange) - .otherwise(ex -> { + .switchOnError(ex -> { if (logger.isDebugEnabled()) { logger.debug("Could not complete request", ex); } diff --git a/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java b/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java index 1d1774b7b6..084ee00c4e 100644 --- a/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java +++ b/spring-web/src/main/java/org/springframework/web/server/handler/ExceptionHandlingWebHandler.java @@ -99,7 +99,7 @@ public class ExceptionHandlingWebHandler extends WebHandlerDecorator { } for (WebExceptionHandler handler : this.exceptionHandlers) { - completion = completion.otherwise(ex -> handler.handle(exchange, ex)); + completion = completion.switchOnError(ex -> handler.handle(exchange, ex)); } return completion; diff --git a/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java b/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java index 723bce3a2e..88ac17dc0a 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java @@ -105,7 +105,7 @@ public class DefaultWebSessionManager implements WebSessionManager { .concatMap(this.sessionStore::retrieveSession) .next() .flatMap(session -> validateSession(exchange, session)) - .otherwiseIfEmpty(createSession(exchange)) + .switchIfEmpty(createSession(exchange)) .map(session -> extendSession(exchange, session))); } diff --git a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java index 8bb3b2238b..6d22304bb8 100644 --- a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpResponseTests.java @@ -96,7 +96,7 @@ public class ServerHttpResponseTests { public void writeWithError() throws Exception { TestServerHttpResponse response = new TestServerHttpResponse(); IllegalStateException error = new IllegalStateException("boo"); - response.writeWith(Flux.error(error)).otherwise(ex -> Mono.empty()).block(); + response.writeWith(Flux.error(error)).switchOnError(ex -> Mono.empty()).block(); assertFalse(response.statusCodeWritten); assertFalse(response.headersWritten); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java index fe45719fee..08c42e5ad9 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatcherHandler.java @@ -125,7 +125,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { return Flux.fromIterable(this.handlerMappings) .concatMap(mapping -> mapping.getHandler(exchange)) .next() - .otherwiseIfEmpty(Mono.error(HANDLER_NOT_FOUND_EXCEPTION)) + .switchIfEmpty(Mono.error(HANDLER_NOT_FOUND_EXCEPTION)) .flatMap(handler -> invokeHandler(exchange, handler)) .flatMap(result -> handleResult(exchange, result)); } @@ -141,7 +141,7 @@ public class DispatcherHandler implements WebHandler, ApplicationContextAware { private Mono handleResult(ServerWebExchange exchange, HandlerResult result) { return getResultHandler(result).handleResult(exchange, result) - .otherwise(ex -> result.applyExceptionHandler(ex).flatMap(exceptionResult -> + .switchOnError(ex -> result.applyExceptionHandler(ex).flatMap(exceptionResult -> getResultHandler(exceptionResult).handleResult(exchange, exceptionResult))); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseBuilder.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseBuilder.java index 6955e69a8f..2af7e5bfe2 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseBuilder.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseBuilder.java @@ -168,7 +168,7 @@ class DefaultRenderingResponseBuilder implements RenderingResponse.Builder { return Flux.fromStream(viewResolverStream) .concatMap(viewResolver -> viewResolver.resolveViewName(name(), locale)) .next() - .otherwiseIfEmpty(Mono.error(new IllegalArgumentException("Could not resolve view with name '" + + .switchIfEmpty(Mono.error(new IllegalArgumentException("Could not resolve view with name '" + name() +"'"))) .flatMap(view -> view.render(model(), contentType, exchange)); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunction.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunction.java index 73f3ca1cd0..4f7c012300 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunction.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunction.java @@ -48,7 +48,7 @@ public interface RouterFunction { */ default RouterFunction and(RouterFunction other) { return request -> this.route(request) - .otherwiseIfEmpty(Mono.defer(() -> other.route(request))); + .switchIfEmpty(Mono.defer(() -> other.route(request))); } /** @@ -63,7 +63,7 @@ public interface RouterFunction { default RouterFunction andOther(RouterFunction other) { return request -> this.route(request) .map(RouterFunctions::cast) - .otherwiseIfEmpty( + .switchIfEmpty( Mono.defer(() -> other.route(request).map(RouterFunctions::cast))); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java index 78bb16b0f3..eca10d5b0d 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RouterFunctions.java @@ -234,7 +234,7 @@ public abstract class RouterFunctions { .defaultIfEmpty(notFound()) .flatMap(handlerFunction -> wrapException(() -> handlerFunction.handle(request))) .flatMap(response -> wrapException(() -> response.writeTo(exchange, strategies))) - .otherwise(ResponseStatusException.class, + .switchOnError(ResponseStatusException.class, ex -> { exchange.getResponse().setStatusCode(ex.getStatus()); if (ex.getMessage() != null) { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceWebHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceWebHandler.java index 9009ed2015..405d7f64b5 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceWebHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/ResourceWebHandler.java @@ -276,7 +276,7 @@ public class ResourceWebHandler public Mono handle(ServerWebExchange exchange) { return getResource(exchange) - .otherwiseIfEmpty(Mono.defer(() -> { + .switchIfEmpty(Mono.defer(() -> { logger.trace("No matching resource found - returning 404"); exchange.getResponse().setStatusCode(HttpStatus.NOT_FOUND); return Mono.empty(); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/VersionResourceResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/VersionResourceResolver.java index 6d6d459c44..a4c2634302 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/VersionResourceResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/VersionResourceResolver.java @@ -159,7 +159,7 @@ public class VersionResourceResolver extends AbstractResourceResolver { List locations, ResourceResolverChain chain) { return chain.resolveResource(exchange, requestPath, locations) - .otherwiseIfEmpty(Mono.defer(() -> + .switchIfEmpty(Mono.defer(() -> resolveVersionedResource(exchange, requestPath, locations, chain))); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java index 7fa1422728..710ba37ec2 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java @@ -75,7 +75,7 @@ public class WebJarsResourceResolver extends AbstractResourceResolver { List locations, ResourceResolverChain chain) { return chain.resolveResource(exchange, requestPath, locations) - .otherwiseIfEmpty(Mono.defer(() -> { + .switchIfEmpty(Mono.defer(() -> { String webJarsResourcePath = findWebJarResourcePath(requestPath); if (webJarsResourcePath != null) { return chain.resolveResource(exchange, webJarsResourcePath, locations); @@ -91,7 +91,7 @@ public class WebJarsResourceResolver extends AbstractResourceResolver { List locations, ResourceResolverChain chain) { return chain.resolveUrlPath(resourceUrlPath, locations) - .otherwiseIfEmpty(Mono.defer(() -> { + .switchIfEmpty(Mono.defer(() -> { String webJarResourcePath = findWebJarResourcePath(resourceUrlPath); if (webJarResourcePath != null) { return chain.resolveUrlPath(webJarResourcePath, locations); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java index 451d497aa5..c90b074f8c 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractMessageReaderArgumentResolver.java @@ -130,9 +130,9 @@ public abstract class AbstractMessageReaderArgumentResolver extends HandlerMetho } else { Mono mono = reader.readMono(bodyType, elementType, request, response, readHints); - mono = mono.otherwise(ex -> Mono.error(getReadError(bodyParameter, ex))); + mono = mono.switchOnError(ex -> Mono.error(getReadError(bodyParameter, ex))); if (isBodyRequired || (adapter != null && !adapter.supportsEmpty())) { - mono = mono.otherwiseIfEmpty(Mono.error(getRequiredBodyError(bodyParameter))); + mono = mono.switchIfEmpty(Mono.error(getRequiredBodyError(bodyParameter))); } Object[] hints = extractValidationHints(bodyParameter); if (hints != null) { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java index 8f9374f53a..28eb13e067 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/AbstractNamedValueArgumentResolver.java @@ -103,7 +103,7 @@ public abstract class AbstractNamedValueArgumentResolver extends HandlerMethodAr handleResolvedValue(arg, namedValueInfo.name, parameter, model, exchange); return arg; }) - .otherwiseIfEmpty(getDefaultValue( + .switchIfEmpty(getDefaultValue( namedValueInfo, parameter, bindingContext, model, exchange)); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java index 844a985a6a..0a24e04f5a 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/method/annotation/RequestMappingHandlerAdapter.java @@ -189,7 +189,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Application .then(() -> this.methodResolver.getRequestMappingMethod(handlerMethod) .invoke(exchange, bindingContext) .doOnNext(result -> result.setExceptionHandler(exceptionHandler)) - .otherwise(exceptionHandler)); + .switchOnError(exceptionHandler)); } private Mono handleException(Throwable ex, HandlerMethod handlerMethod, diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandler.java index 50545a10b4..b1502b065f 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/ViewResolutionResultHandler.java @@ -193,7 +193,7 @@ public class ViewResolutionResultHandler extends HandlerResultHandlerSupport } return valueMono - .otherwiseIfEmpty(exchange.isNotModified() ? Mono.empty() : NO_VALUE_MONO) + .switchIfEmpty(exchange.isNotModified() ? Mono.empty() : NO_VALUE_MONO) .flatMap(returnValue -> { Mono> viewsMono; diff --git a/src/docs/asciidoc/web/web-flux-functional.adoc b/src/docs/asciidoc/web/web-flux-functional.adoc index c706a83d22..093c0d0280 100644 --- a/src/docs/asciidoc/web/web-flux-functional.adoc +++ b/src/docs/asciidoc/web/web-flux-functional.adoc @@ -95,7 +95,7 @@ public class PersonHandler { Mono personMono = this.repository.getPerson(personId); return personMono .then(person -> ServerResponse.ok().contentType(APPLICATION_JSON).body(fromObject(person))) - .otherwiseIfEmpty(notFound); + .switchIfEmpty(notFound); } } ----