From e11bb17aa6fa43f56a6fa392665363b2faf34652 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Tue, 11 Jul 2017 11:24:29 +0200 Subject: [PATCH] Change ServerRequest.attribute(String) to return Object This commit changes `ServerRequest.attribute(String)`` to return `Optional` instead of `Optional`, where `T` was infered from a type parameter. --- .../reactive/function/server/MockServerRequest.java | 6 ------ .../function/server/DefaultServerRequest.java | 5 ----- .../reactive/function/server/RequestPredicates.java | 2 +- .../web/reactive/function/server/ServerRequest.java | 11 +++++++++-- .../function/server/support/ServerRequestWrapper.java | 2 +- .../reactive/function/server/MockServerRequest.java | 6 ------ 6 files changed, 11 insertions(+), 21 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/mock/web/reactive/function/server/MockServerRequest.java b/spring-test/src/main/java/org/springframework/mock/web/reactive/function/server/MockServerRequest.java index 832a8da4f65..e871be13c0d 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/reactive/function/server/MockServerRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/reactive/function/server/MockServerRequest.java @@ -156,12 +156,6 @@ public class MockServerRequest implements ServerRequest { return (Flux) this.body; } - @SuppressWarnings("unchecked") - @Override - public Optional attribute(String name) { - return Optional.ofNullable((S) this.attributes.get(name)); - } - @Override public Map attributes() { return this.attributes; diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java index a6713dd4dee..a395e638a4b 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/DefaultServerRequest.java @@ -145,11 +145,6 @@ class DefaultServerRequest implements ServerRequest { return flux.onErrorMap(UnsupportedMediaTypeException.class, ERROR_MAPPER); } - @Override - public Optional attribute(String name) { - return Optional.ofNullable(this.exchange.getAttribute(name)); - } - @Override public Map attributes() { return this.exchange.getAttributes(); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java index 2dcbcd8e156..e4ed5cebf7f 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/RequestPredicates.java @@ -521,7 +521,7 @@ public abstract class RequestPredicates { } @Override - public Optional attribute(String name) { + public Optional attribute(String name) { return this.request.attribute(name); } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java index 3ccd3c8e893..463a7224358 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java @@ -129,10 +129,17 @@ public interface ServerRequest { /** * Return the request attribute value if present. * @param name the attribute name - * @param the attribute type * @return the attribute value */ - Optional attribute(String name); + default Optional attribute(String name) { + Map attributes = attributes(); + if (attributes.containsKey(name)) { + return Optional.of(attributes.get(name)); + } + else { + return Optional.empty(); + } + } /** * Return a mutable map of request attributes. diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/support/ServerRequestWrapper.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/support/ServerRequestWrapper.java index ba7bacdcd60..8510bb90b0c 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/support/ServerRequestWrapper.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/support/ServerRequestWrapper.java @@ -124,7 +124,7 @@ public class ServerRequestWrapper implements ServerRequest { } @Override - public Optional attribute(String name) { + public Optional attribute(String name) { return this.delegate.attribute(name); } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/MockServerRequest.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/MockServerRequest.java index 644100fa1f7..f49dc02839b 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/MockServerRequest.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/MockServerRequest.java @@ -155,12 +155,6 @@ public class MockServerRequest implements ServerRequest { return (Flux) this.body; } - @SuppressWarnings("unchecked") - @Override - public Optional attribute(String name) { - return Optional.ofNullable((S) this.attributes.get(name)); - } - @Override public Map attributes() { return this.attributes;