Skip to content

Commit 2d2f050

Browse files
committed
Polish 'Add initial support for RestClient'
See gh-36213
1 parent a1a5acf commit 2d2f050

File tree

3 files changed

+48
-37
lines changed

3 files changed

+48
-37
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright 2012-2023 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package org.springframework.boot.autoconfigure.web.client;
18+
19+
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
20+
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
21+
import org.springframework.boot.autoconfigure.condition.SpringBootCondition;
22+
23+
/**
24+
* {@link SpringBootCondition} that applies only when running in a non-reactive web
25+
* application.
26+
*
27+
* @author Phillip Webb
28+
*/
29+
class NotReactiveWebApplicationCondition extends NoneNestedConditions {
30+
31+
NotReactiveWebApplicationCondition() {
32+
super(ConfigurationPhase.PARSE_CONFIGURATION);
33+
}
34+
35+
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
36+
private static class ReactiveWebApplication {
37+
38+
}
39+
40+
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfiguration.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
24-
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
25-
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
2624
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
25+
import org.springframework.boot.web.client.ClientHttpRequestFactories;
26+
import org.springframework.boot.web.client.ClientHttpRequestFactorySettings;
2727
import org.springframework.boot.web.client.RestClientCustomizer;
2828
import org.springframework.context.annotation.Bean;
2929
import org.springframework.context.annotation.Conditional;
@@ -33,38 +33,26 @@
3333
/**
3434
* {@link EnableAutoConfiguration Auto-configuration} for {@link RestClient}.
3535
* <p>
36-
* This will produce a {@link RestClient.Builder RestClient.Builder} bean with the
37-
* {@code prototype} scope, meaning each injection point will receive a newly cloned
38-
* instance of the builder.
36+
* This will produce a {@link org.springframework.web.client.RestClient.Builder
37+
* RestClient.Builder} bean with the {@code prototype} scope, meaning each injection point
38+
* will receive a newly cloned instance of the builder.
3939
*
4040
* @author Arjen Poutsma
4141
* @since 3.2.0
4242
*/
4343
@AutoConfiguration(after = HttpMessageConvertersAutoConfiguration.class)
4444
@ConditionalOnClass(RestClient.class)
45-
@Conditional(RestClientAutoConfiguration.NotReactiveWebApplicationCondition.class)
45+
@Conditional(NotReactiveWebApplicationCondition.class)
4646
public class RestClientAutoConfiguration {
4747

4848
@Bean
4949
@Scope("prototype")
5050
@ConditionalOnMissingBean
5151
public RestClient.Builder webClientBuilder(ObjectProvider<RestClientCustomizer> customizerProvider) {
52-
RestClient.Builder builder = RestClient.builder();
52+
RestClient.Builder builder = RestClient.builder()
53+
.requestFactory(ClientHttpRequestFactories.get(ClientHttpRequestFactorySettings.DEFAULTS));
5354
customizerProvider.orderedStream().forEach((customizer) -> customizer.customize(builder));
5455
return builder;
5556
}
5657

57-
static class NotReactiveWebApplicationCondition extends NoneNestedConditions {
58-
59-
NotReactiveWebApplicationCondition() {
60-
super(ConfigurationPhase.PARSE_CONFIGURATION);
61-
}
62-
63-
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
64-
private static class ReactiveWebApplication {
65-
66-
}
67-
68-
}
69-
7058
}

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,8 @@
2121
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2323
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
24-
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
25-
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
26-
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;
2724
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
2825
import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
29-
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration.NotReactiveWebApplicationCondition;
3026
import org.springframework.boot.web.client.RestTemplateBuilder;
3127
import org.springframework.boot.web.client.RestTemplateCustomizer;
3228
import org.springframework.boot.web.client.RestTemplateRequestCustomizer;
@@ -69,17 +65,4 @@ public RestTemplateBuilder restTemplateBuilder(RestTemplateBuilderConfigurer res
6965
return restTemplateBuilderConfigurer.configure(builder);
7066
}
7167

72-
static class NotReactiveWebApplicationCondition extends NoneNestedConditions {
73-
74-
NotReactiveWebApplicationCondition() {
75-
super(ConfigurationPhase.PARSE_CONFIGURATION);
76-
}
77-
78-
@ConditionalOnWebApplication(type = Type.REACTIVE)
79-
private static class ReactiveWebApplication {
80-
81-
}
82-
83-
}
84-
8568
}

0 commit comments

Comments
 (0)