From 438b40f6d7ef830accdd6f216faec6a18c5f7ca2 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 31 Jul 2019 23:48:14 +0200 Subject: [PATCH 1/2] Consistent ordering of WebClient.Builder methods --- .../client/DefaultWebClientBuilder.java | 54 +++++++++---------- .../reactive/function/client/WebClient.java | 17 +++--- 2 files changed, 34 insertions(+), 37 deletions(-) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClientBuilder.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClientBuilder.java index be242c2aff..c8796e91f7 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClientBuilder.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultWebClientBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 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. @@ -66,11 +66,11 @@ final class DefaultWebClientBuilder implements WebClient.Builder { @Nullable private ClientHttpConnector connector; + private ExchangeStrategies exchangeStrategies; + @Nullable private ExchangeFunction exchangeFunction; - private ExchangeStrategies exchangeStrategies; - public DefaultWebClientBuilder() { this.exchangeStrategies = ExchangeStrategies.withDefaults(); @@ -80,8 +80,8 @@ final class DefaultWebClientBuilder implements WebClient.Builder { Assert.notNull(other, "DefaultWebClientBuilder must not be null"); this.baseUrl = other.baseUrl; - this.defaultUriVariables = - other.defaultUriVariables != null ? new LinkedHashMap<>(other.defaultUriVariables) : null; + this.defaultUriVariables = (other.defaultUriVariables != null ? + new LinkedHashMap<>(other.defaultUriVariables) : null); this.uriBuilderFactory = other.uriBuilderFactory; if (other.defaultHeaders != null) { this.defaultHeaders = new HttpHeaders(); @@ -90,13 +90,13 @@ final class DefaultWebClientBuilder implements WebClient.Builder { else { this.defaultHeaders = null; } - this.defaultCookies = - other.defaultCookies != null ? new LinkedMultiValueMap<>(other.defaultCookies) : null; + this.defaultCookies = (other.defaultCookies != null ? + new LinkedMultiValueMap<>(other.defaultCookies) : null); this.defaultRequest = other.defaultRequest; this.filters = other.filters != null ? new ArrayList<>(other.filters) : null; this.connector = other.connector; - this.exchangeFunction = other.exchangeFunction; this.exchangeStrategies = other.exchangeStrategies; + this.exchangeFunction = other.exchangeFunction; } @@ -163,12 +163,6 @@ final class DefaultWebClientBuilder implements WebClient.Builder { return this; } - @Override - public WebClient.Builder clientConnector(ClientHttpConnector connector) { - this.connector = connector; - return this; - } - @Override public WebClient.Builder filter(ExchangeFilterFunction filter) { Assert.notNull(filter, "ExchangeFilterFunction must not be null"); @@ -190,8 +184,8 @@ final class DefaultWebClientBuilder implements WebClient.Builder { } @Override - public WebClient.Builder exchangeFunction(ExchangeFunction exchangeFunction) { - this.exchangeFunction = exchangeFunction; + public WebClient.Builder clientConnector(ClientHttpConnector connector) { + this.connector = connector; return this; } @@ -202,6 +196,23 @@ final class DefaultWebClientBuilder implements WebClient.Builder { return this; } + @Override + public WebClient.Builder exchangeFunction(ExchangeFunction exchangeFunction) { + this.exchangeFunction = exchangeFunction; + return this; + } + + @Override + public WebClient.Builder apply(Consumer builderConsumer) { + builderConsumer.accept(this); + return this; + } + + @Override + public WebClient.Builder clone() { + return new DefaultWebClientBuilder(this); + } + @Override public WebClient build() { ExchangeFunction exchange = initExchangeFunction(); @@ -245,15 +256,4 @@ final class DefaultWebClientBuilder implements WebClient.Builder { return CollectionUtils.unmodifiableMultiValueMap(new LinkedMultiValueMap<>(map)); } - @Override - public WebClient.Builder clone() { - return new DefaultWebClientBuilder(this); - } - - @Override - public WebClient.Builder apply(Consumer builderConsumer) { - builderConsumer.accept(this); - return this; - } - } diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java index 72eb9fc97a..8dc2a17c01 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java @@ -303,11 +303,6 @@ public interface WebClient { */ Builder exchangeFunction(ExchangeFunction exchangeFunction); - /** - * Clone this {@code WebClient.Builder}. - */ - Builder clone(); - /** * Apply the given {@code Consumer} to this builder instance. *

This can be useful for applying pre-packaged customizations. @@ -315,17 +310,20 @@ public interface WebClient { */ Builder apply(Consumer builderConsumer); + /** + * Clone this {@code WebClient.Builder}. + */ + Builder clone(); + /** * Builder the {@link WebClient} instance. */ WebClient build(); - } /** * Contract for specifying the URI for a request. - * * @param a self reference to the spec type */ interface UriSpec> { @@ -359,7 +357,6 @@ public interface WebClient { /** * Contract for specifying request headers leading up to the exchange. - * * @param a self reference to the spec type */ interface RequestHeadersSpec> { @@ -525,9 +522,9 @@ public interface WebClient { * {@linkplain BodyInserters#fromPublisher Publisher inserter}. * For example: *

-		 * Mono personMono = ... ;
+		 * Mono<Person> personMono = ... ;
 		 *
-		 * Mono result = client.post()
+		 * Mono<Void> result = client.post()
 		 *     .uri("/persons/{id}", id)
 		 *     .contentType(MediaType.APPLICATION_JSON)
 		 *     .body(personMono, Person.class)

From ea4f7d365f87d3a8e2d1da239c5c8bf0bdba0f31 Mon Sep 17 00:00:00 2001
From: Juergen Hoeller 
Date: Wed, 31 Jul 2019 23:48:21 +0200
Subject: [PATCH 2/2] Deprecate logger field in
 HandlerMethodArgumentResolverComposite

---
 ...andlerMethodArgumentResolverComposite.java | 21 ++++++++++---------
 ...andlerMethodArgumentResolverComposite.java | 18 +++++++++-------
 2 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java
index 89ecd7b525..937befe33e 100644
--- a/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java
+++ b/spring-messaging/src/main/java/org/springframework/messaging/handler/invocation/HandlerMethodArgumentResolverComposite.java
@@ -28,8 +28,8 @@ import org.springframework.messaging.Message;
 
 /**
  * Resolves method parameters by delegating to a list of registered
- * {@link HandlerMethodArgumentResolver}. Previously resolved method parameters are cached
- * for faster lookups.
+ * {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}.
+ * Previously resolved method parameters are cached for faster lookups.
  *
  * @author Rossen Stoyanchev
  * @author Juergen Hoeller
@@ -46,8 +46,8 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	/**
 	 * Add the given {@link HandlerMethodArgumentResolver}.
 	 */
-	public HandlerMethodArgumentResolverComposite addResolver(HandlerMethodArgumentResolver argumentResolver) {
-		this.argumentResolvers.add(argumentResolver);
+	public HandlerMethodArgumentResolverComposite addResolver(HandlerMethodArgumentResolver resolver) {
+		this.argumentResolvers.add(resolver);
 		return this;
 	}
 
@@ -55,7 +55,9 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	 * Add the given {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}.
 	 * @since 4.3
 	 */
-	public HandlerMethodArgumentResolverComposite addResolvers(@Nullable HandlerMethodArgumentResolver... resolvers) {
+	public HandlerMethodArgumentResolverComposite addResolvers(
+			@Nullable HandlerMethodArgumentResolver... resolvers) {
+
 		if (resolvers != null) {
 			Collections.addAll(this.argumentResolvers, resolvers);
 		}
@@ -66,10 +68,10 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	 * Add the given {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}.
 	 */
 	public HandlerMethodArgumentResolverComposite addResolvers(
-			@Nullable List argumentResolvers) {
+			@Nullable List resolvers) {
 
-		if (argumentResolvers != null) {
-			this.argumentResolvers.addAll(argumentResolvers);
+		if (resolvers != null) {
+			this.argumentResolvers.addAll(resolvers);
 		}
 		return this;
 	}
@@ -102,8 +104,7 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	 * Iterate over registered
 	 * {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}
 	 * and invoke the one that supports it.
-	 * @throws IllegalStateException if no suitable
-	 * {@link HandlerMethodArgumentResolver} is found.
+	 * @throws IllegalArgumentException if no suitable argument resolver is found
 	 */
 	@Override
 	@Nullable
diff --git a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java
index 1f56786575..ea6de1a45a 100644
--- a/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java
+++ b/spring-web/src/main/java/org/springframework/web/method/support/HandlerMethodArgumentResolverComposite.java
@@ -41,6 +41,7 @@ import org.springframework.web.context.request.NativeWebRequest;
  */
 public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgumentResolver {
 
+	@Deprecated
 	protected final Log logger = LogFactory.getLog(getClass());
 
 	private final List argumentResolvers = new LinkedList<>();
@@ -61,7 +62,9 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	 * Add the given {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}.
 	 * @since 4.3
 	 */
-	public HandlerMethodArgumentResolverComposite addResolvers(@Nullable HandlerMethodArgumentResolver... resolvers) {
+	public HandlerMethodArgumentResolverComposite addResolvers(
+			@Nullable HandlerMethodArgumentResolver... resolvers) {
+
 		if (resolvers != null) {
 			Collections.addAll(this.argumentResolvers, resolvers);
 		}
@@ -107,10 +110,9 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 
 	/**
 	 * Iterate over registered
-	 * {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers} and
-	 * invoke the one that supports it.
-	 * @throws IllegalStateException if no suitable
-	 * {@link HandlerMethodArgumentResolver} is found.
+	 * {@link HandlerMethodArgumentResolver HandlerMethodArgumentResolvers}
+	 * and invoke the one that supports it.
+	 * @throws IllegalArgumentException if no suitable argument resolver is found
 	 */
 	@Override
 	@Nullable
@@ -133,9 +135,9 @@ public class HandlerMethodArgumentResolverComposite implements HandlerMethodArgu
 	private HandlerMethodArgumentResolver getArgumentResolver(MethodParameter parameter) {
 		HandlerMethodArgumentResolver result = this.argumentResolverCache.get(parameter);
 		if (result == null) {
-			for (HandlerMethodArgumentResolver methodArgumentResolver : this.argumentResolvers) {
-				if (methodArgumentResolver.supportsParameter(parameter)) {
-					result = methodArgumentResolver;
+			for (HandlerMethodArgumentResolver resolver : this.argumentResolvers) {
+				if (resolver.supportsParameter(parameter)) {
+					result = resolver;
 					this.argumentResolverCache.put(parameter, result);
 					break;
 				}