From aa220a9a022c5a8443edcfbf38406b87806a2669 Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 21 Aug 2019 11:20:37 +0300 Subject: [PATCH] Polish --- .../client/DefaultWebClientBuilder.java | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 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 c3aef0520e..db699ddaae 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 @@ -43,18 +43,18 @@ import org.springframework.web.util.UriBuilderFactory; * @since 5.0 */ final class DefaultWebClientBuilder implements WebClient.Builder { - private static final boolean jettyHttpClientPresent; - private static final boolean reactorNettyHttpClientPresent; + private static final boolean reactorClientPresent; + + private static final boolean jettyClientPresent; static { - ClassLoader classLoader = DefaultWebClientBuilder.class.getClassLoader(); - jettyHttpClientPresent = ClassUtils.isPresent( - "org.eclipse.jetty.client.HttpClient", classLoader); - reactorNettyHttpClientPresent = ClassUtils.isPresent( - "reactor.netty.http.client.HttpClient", classLoader); + ClassLoader loader = DefaultWebClientBuilder.class.getClassLoader(); + reactorClientPresent = ClassUtils.isPresent("reactor.netty.http.client.HttpClient", loader); + jettyClientPresent = ClassUtils.isPresent("org.eclipse.jetty.client.HttpClient", loader); } + @Nullable private String baseUrl; @@ -228,7 +228,9 @@ final class DefaultWebClientBuilder implements WebClient.Builder { @Override public WebClient build() { - ExchangeFunction exchange = initExchangeFunction(); + ExchangeFunction exchange = (this.exchangeFunction == null ? + ExchangeFunctions.create(getOrInitConnector(), this.exchangeStrategies) : + this.exchangeFunction); ExchangeFunction filteredExchange = (this.filters != null ? this.filters.stream() .reduce(ExchangeFilterFunction::andThen) .map(filter -> filter.apply(exchange)) @@ -239,23 +241,14 @@ final class DefaultWebClientBuilder implements WebClient.Builder { this.defaultRequest, new DefaultWebClientBuilder(this)); } - private ExchangeFunction initExchangeFunction() { - if (this.exchangeFunction != null) { - return this.exchangeFunction; + private ClientHttpConnector getOrInitConnector() { + if (this.connector != null) { + return this.connector; } - else if (this.connector != null) { - return ExchangeFunctions.create(this.connector, this.exchangeStrategies); - } - else { - return ExchangeFunctions.create(createDefaultClientHttpConnector(), this.exchangeStrategies); - } - } - - private ClientHttpConnector createDefaultClientHttpConnector() { - if (reactorNettyHttpClientPresent) { + else if (reactorClientPresent) { return new ReactorClientHttpConnector(); } - else if (jettyHttpClientPresent) { + else if (jettyClientPresent) { return new JettyClientHttpConnector(); } throw new IllegalStateException("No suitable default ClientHttpConnector found");