Skip to content

Commit 2814175

Browse files
committed
Polish "Add auto-configuration for JdkClientHttpConnector"
See gh-31709
1 parent e16734f commit 2814175

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
@AutoConfiguration
4242
@ConditionalOnClass(WebClient.class)
4343
@Import({ ClientHttpConnectorConfiguration.ReactorNetty.class, ClientHttpConnectorConfiguration.JettyClient.class,
44-
ClientHttpConnectorConfiguration.HttpClient5.class, ClientHttpConnectorConfiguration.JdkClient.class})
44+
ClientHttpConnectorConfiguration.HttpClient5.class, ClientHttpConnectorConfiguration.JdkClient.class })
4545
public class ClientHttpConnectorAutoConfiguration {
4646

4747
@Bean

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorConfiguration.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import org.springframework.context.annotation.Lazy;
3232
import org.springframework.http.client.reactive.ClientHttpConnector;
3333
import org.springframework.http.client.reactive.HttpComponentsClientHttpConnector;
34-
import org.springframework.http.client.reactive.JettyClientHttpConnector;
3534
import org.springframework.http.client.reactive.JdkClientHttpConnector;
35+
import org.springframework.http.client.reactive.JettyClientHttpConnector;
3636
import org.springframework.http.client.reactive.JettyResourceFactory;
3737
import org.springframework.http.client.reactive.ReactorClientHttpConnector;
3838
import org.springframework.http.client.reactive.ReactorResourceFactory;
@@ -109,14 +109,16 @@ HttpComponentsClientHttpConnector httpComponentsClientHttpConnector() {
109109
}
110110

111111
@Configuration(proxyBeanMethods = false)
112-
@ConditionalOnClass(JdkClientHttpConnector.class)
112+
@ConditionalOnClass(java.net.http.HttpClient.class)
113113
@ConditionalOnMissingBean(ClientHttpConnector.class)
114114
static class JdkClient {
115+
115116
@Bean
116117
@Lazy
117118
JdkClientHttpConnector jdkClientHttpConnector() {
118119
return new JdkClientHttpConnector();
119120
}
121+
120122
}
121123

122124
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/ClientHttpConnectorAutoConfigurationTests.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,10 @@ void whenReactorAndJettyAreUnavailableThenHttpClientBeansAreDefined() {
8787
}
8888

8989
@Test
90-
void whenReactorAndJettyAndHttpClientBeansAreUnavailableThenJdkClientAreDefined() {
91-
this.contextRunner.withClassLoader(new FilteredClassLoader(HttpClient.class, ReactiveRequest.class, HttpAsyncClients.class))
90+
void whenReactorJettyAndHttpClientBeansAreUnavailableThenJdkClientBeansAreDefined() {
91+
this.contextRunner
92+
.withClassLoader(
93+
new FilteredClassLoader(HttpClient.class, ReactiveRequest.class, HttpAsyncClients.class))
9294
.run((context) -> {
9395
BeanDefinition customizerDefinition = context.getBeanFactory()
9496
.getBeanDefinition("clientConnectorCustomizer");

spring-boot-project/spring-boot-docs/src/docs/asciidoc/io/rest-client.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ include::code:MyService[]
6363
[[io.rest-client.webclient.runtime]]
6464
==== WebClient Runtime
6565
Spring Boot will auto-detect which `ClientHttpConnector` to use to drive `WebClient`, depending on the libraries available on the application classpath.
66-
For now, Reactor Netty, Jetty RS client and Apache HttpClient are supported.
66+
For now, Reactor Netty, Jetty RS client, Apache HttpClient, and the JDK's HttpClient are supported.
6767

6868
The `spring-boot-starter-webflux` starter depends on `io.projectreactor.netty:reactor-netty` by default, which brings both server and client implementations.
6969
If you choose to use Jetty as a reactive server instead, you should add a dependency on the Jetty Reactive HTTP client library, `org.eclipse.jetty:jetty-reactive-httpclient`.

0 commit comments

Comments
 (0)