Browse Source

Create spring-boot-http-client module

See gh-46118
pull/46230/head
Andy Wilkinson 8 months ago
parent
commit
9e1758a3e3
  1. 1
      settings.gradle
  2. 1
      spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
  3. 9
      spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java
  4. 3
      spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java
  5. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java
  6. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java
  7. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java
  8. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java
  9. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java
  10. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java
  11. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java
  12. 2
      spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java
  13. 102
      spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java
  14. 73
      spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java
  15. 2
      spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java
  16. 2
      spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java
  17. 3
      spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java
  18. 4
      spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  19. 6
      spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java
  20. 1
      spring-boot-project/spring-boot-dependencies/build.gradle
  21. 3
      spring-boot-project/spring-boot-docs/build.gradle
  22. 4
      spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc
  23. 2
      spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java
  24. 2
      spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java
  25. 2
      spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt
  26. 2
      spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt
  27. 44
      spring-boot-project/spring-boot-http-client/build.gradle
  28. 76
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/AbstractHttpRequestFactoryProperties.java
  29. 6
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactories.java
  30. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoryBuilderCustomizer.java
  31. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfiguration.java
  32. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientProperties.java
  33. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/NotReactiveWebApplicationCondition.java
  34. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/package-info.java
  35. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSsl.java
  36. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizer.java
  37. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationCondition.java
  38. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java
  39. 6
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfiguration.java
  40. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurer.java
  41. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientSsl.java
  42. 6
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfiguration.java
  43. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateBuilderConfigurer.java
  44. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/package-info.java
  45. 4
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/AbstractHttpClientServiceProperties.java
  46. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServiceProperties.java
  47. 8
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfiguration.java
  48. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/NotReactiveWebApplicationCondition.java
  49. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientCustomizerHttpServiceGroupConfigurer.java
  50. 6
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientPropertiesHttpServiceGroupConfigurer.java
  51. 2
      spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/package-info.java
  52. 4
      spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json
  53. 3
      spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  54. 4
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoriesTests.java
  55. 2
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java
  56. 4
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientPropertiesTests.java
  57. 2
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSslTests.java
  58. 2
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizerTests.java
  59. 4
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfigurationTests.java
  60. 2
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurerTests.java
  61. 4
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfigurationTests.java
  62. 6
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServicePropertiesTests.java
  63. 6
      spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfigurationTests.java
  64. 1
      spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle
  65. 1
      spring-boot-project/spring-boot-test-autoconfigure/build.gradle
  66. 3
      spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java
  67. 8
      spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports
  68. 1
      spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle
  69. 1
      spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle
  70. 2
      spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java

1
settings.gradle

@ -93,6 +93,7 @@ include "spring-boot-project:spring-boot-h2console" @@ -93,6 +93,7 @@ include "spring-boot-project:spring-boot-h2console"
include "spring-boot-project:spring-boot-hateoas"
include "spring-boot-project:spring-boot-hazelcast"
include "spring-boot-project:spring-boot-http"
include "spring-boot-project:spring-boot-http-client"
include "spring-boot-project:spring-boot-http-codec"
include "spring-boot-project:spring-boot-integration"
include "spring-boot-project:spring-boot-integration-tests"

1
spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

@ -57,6 +57,7 @@ dependencies { @@ -57,6 +57,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-flyway"))
optional(project(":spring-boot-project:spring-boot-hazelcast"))
optional(project(":spring-boot-project:spring-boot-http"))
optional(project(":spring-boot-project:spring-boot-http-client"))
optional(project(":spring-boot-project:spring-boot-http-codec"))
optional(project(":spring-boot-project:spring-boot-integration"))
optional(project(":spring-boot-project:spring-boot-jackson"))

9
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/HttpClientObservationsAutoConfiguration.java

@ -31,8 +31,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -31,8 +31,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
@ -52,8 +50,11 @@ import org.springframework.core.annotation.Order; @@ -52,8 +50,11 @@ import org.springframework.core.annotation.Order;
* @author Moritz Halbritter
* @since 3.0.0
*/
@AutoConfiguration(after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class,
RestTemplateAutoConfiguration.class, WebClientAutoConfiguration.class, RestClientAutoConfiguration.class })
@AutoConfiguration(
after = { ObservationAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class,
WebClientAutoConfiguration.class },
afterName = { "org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration",
"org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration" })
@ConditionalOnClass(Observation.class)
@ConditionalOnBean(ObservationRegistry.class)
@Import({ RestTemplateObservationConfiguration.class, WebClientObservationConfiguration.class,

3
spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfiguration.java

@ -25,7 +25,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -25,7 +25,6 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@ -39,7 +38,7 @@ import org.springframework.context.annotation.Import; @@ -39,7 +38,7 @@ import org.springframework.context.annotation.Import;
* @author Moritz Halbritter
* @since 3.0.0
*/
@AutoConfiguration(after = RestTemplateAutoConfiguration.class)
@AutoConfiguration(afterName = "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration")
@ConditionalOnClass(Encoding.class)
@Import({ SenderConfiguration.class, BraveConfiguration.class, OpenTelemetryConfiguration.class })
@EnableConfigurationProperties(ZipkinProperties.class)

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java

@ -40,8 +40,8 @@ import org.springframework.boot.actuate.endpoint.web.WebOperation; @@ -40,8 +40,8 @@ import org.springframework.boot.actuate.endpoint.web.WebOperation;
import org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicate;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration;
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java

@ -31,8 +31,8 @@ import org.springframework.boot.actuate.health.HealthComponent; @@ -31,8 +31,8 @@ import org.springframework.boot.actuate.health.HealthComponent;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java

@ -30,8 +30,8 @@ import org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagem @@ -30,8 +30,8 @@ import org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagem
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.boot.security.autoconfigure.servlet.SecurityAutoConfiguration;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/test/MetricsIntegrationTests.java

@ -47,8 +47,8 @@ import org.springframework.boot.actuate.autoconfigure.observation.web.client.Htt @@ -47,8 +47,8 @@ import org.springframework.boot.actuate.autoconfigure.observation.web.client.Htt
import org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration;
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationTests.java

@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; @@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
import org.springframework.boot.actuate.metrics.web.client.ObservationRestClientCustomizer;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.system.CapturedOutput;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestClientObservationConfigurationWithoutMetricsTests.java

@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.system.OutputCaptureExtension;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationTests.java

@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun; @@ -27,7 +27,7 @@ import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
import org.springframework.boot.actuate.metrics.web.client.ObservationRestTemplateCustomizer;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.system.CapturedOutput;

2
spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/web/client/RestTemplateObservationConfigurationWithoutMetricsTests.java

@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration;
import org.springframework.boot.test.context.assertj.AssertableApplicationContext;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.system.OutputCaptureExtension;

102
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpClientProperties.java

@ -1,102 +0,0 @@ @@ -1,102 +0,0 @@
/*
* Copyright 2012-present 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
import java.time.Duration;
import org.springframework.boot.http.client.HttpClientSettings;
import org.springframework.boot.http.client.HttpRedirects;
/**
* Abstract base class for properties that directly or indirectly make use of a blocking
* or reactive HTTP client.
*
* @author Phillip Webb
* @since 3.5.0
* @see HttpClientSettings
*/
public abstract class AbstractHttpClientProperties {
/**
* Handling for HTTP redirects.
*/
private HttpRedirects redirects;
/**
* Default connect timeout for a client HTTP request.
*/
private Duration connectTimeout;
/**
* Default read timeout for a client HTTP request.
*/
private Duration readTimeout;
/**
* Default SSL configuration for a client HTTP request.
*/
private final Ssl ssl = new Ssl();
public HttpRedirects getRedirects() {
return this.redirects;
}
public void setRedirects(HttpRedirects redirects) {
this.redirects = redirects;
}
public Duration getConnectTimeout() {
return this.connectTimeout;
}
public void setConnectTimeout(Duration connectTimeout) {
this.connectTimeout = connectTimeout;
}
public Duration getReadTimeout() {
return this.readTimeout;
}
public void setReadTimeout(Duration readTimeout) {
this.readTimeout = readTimeout;
}
public Ssl getSsl() {
return this.ssl;
}
/**
* SSL configuration.
*/
public static class Ssl {
/**
* SSL bundle to use.
*/
private String bundle;
public String getBundle() {
return this.bundle;
}
public void setBundle(String bundle) {
this.bundle = bundle;
}
}
}

73
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/AbstractClientHttpConnectorProperties.java

@ -16,10 +16,11 @@ @@ -16,10 +16,11 @@
package org.springframework.boot.autoconfigure.http.client.reactive;
import java.time.Duration;
import java.util.function.Supplier;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder;
import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings;
import org.springframework.http.client.reactive.ClientHttpConnector;
@ -32,13 +33,61 @@ import org.springframework.http.client.reactive.ClientHttpConnector; @@ -32,13 +33,61 @@ import org.springframework.http.client.reactive.ClientHttpConnector;
* @since 3.5.0
* @see ClientHttpConnectorSettings
*/
public abstract class AbstractClientHttpConnectorProperties extends AbstractHttpClientProperties {
public abstract class AbstractClientHttpConnectorProperties {
/**
* Handling for HTTP redirects.
*/
private HttpRedirects redirects;
/**
* Default connect timeout for a client HTTP request.
*/
private Duration connectTimeout;
/**
* Default read timeout for a client HTTP request.
*/
private Duration readTimeout;
/**
* Default SSL configuration for a client HTTP request.
*/
private final Ssl ssl = new Ssl();
/**
* Default connector used for a client HTTP request.
*/
private Connector connector;
public HttpRedirects getRedirects() {
return this.redirects;
}
public void setRedirects(HttpRedirects redirects) {
this.redirects = redirects;
}
public Duration getConnectTimeout() {
return this.connectTimeout;
}
public void setConnectTimeout(Duration connectTimeout) {
this.connectTimeout = connectTimeout;
}
public Duration getReadTimeout() {
return this.readTimeout;
}
public void setReadTimeout(Duration readTimeout) {
this.readTimeout = readTimeout;
}
public Ssl getSsl() {
return this.ssl;
}
public Connector getConnector() {
return this.connector;
}
@ -47,6 +96,26 @@ public abstract class AbstractClientHttpConnectorProperties extends AbstractHttp @@ -47,6 +96,26 @@ public abstract class AbstractClientHttpConnectorProperties extends AbstractHttp
this.connector = connector;
}
/**
* SSL configuration.
*/
public static class Ssl {
/**
* SSL bundle to use.
*/
private String bundle;
public String getBundle() {
return this.bundle;
}
public void setBundle(String bundle) {
this.bundle = bundle;
}
}
/**
* Supported factory types.
*/

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/ClientHttpConnectors.java

@ -22,8 +22,8 @@ import java.util.function.Function; @@ -22,8 +22,8 @@ import java.util.function.Function;
import java.util.function.Predicate;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties.Ssl;
import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Connector;
import org.springframework.boot.autoconfigure.http.client.reactive.AbstractClientHttpConnectorProperties.Ssl;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder;
import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/HttpReactiveClientProperties.java

@ -24,7 +24,7 @@ import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings @@ -24,7 +24,7 @@ import org.springframework.boot.http.client.reactive.ClientHttpConnectorSettings
* apply to Spring's reactive client HTTP connectors.
*
* @author Phillip Webb
* @since 3.5.0
* @since 4.0.0
* @see ClientHttpConnectorSettings
*/
@ConfigurationProperties("spring.http.reactiveclient")

3
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/reactive/service/WebClientPropertiesHttpServiceGroupConfigurer.java

@ -21,7 +21,6 @@ import java.util.Map; @@ -21,7 +21,6 @@ import java.util.Map;
import java.util.function.Consumer;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.http.client.HttpClientProperties;
import org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectors;
import org.springframework.boot.autoconfigure.http.client.reactive.HttpReactiveClientProperties;
import org.springframework.boot.context.properties.PropertyMapper;
@ -39,7 +38,7 @@ import org.springframework.web.service.registry.HttpServiceGroup; @@ -39,7 +38,7 @@ import org.springframework.web.service.registry.HttpServiceGroup;
/**
* A {@link RestClientHttpServiceGroupConfigurer} that configures the group and its
* underlying {@link RestClient} using {@link HttpClientProperties}.
* underlying {@link RestClient} using {@link HttpReactiveClientProperties}.
*
* @author Olga Maciaszek-Sharma
* @author Phillip Webb

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@ -1,9 +1,5 @@ @@ -1,9 +1,5 @@
org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration
org.springframework.boot.autoconfigure.http.client.service.HttpServiceClientAutoConfiguration
org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration
org.springframework.boot.autoconfigure.http.client.reactive.service.ReactiveHttpServiceClientAutoConfiguration
org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration
org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration
org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration

6
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/reactive/service/ReactiveHttpServiceClientAutoConfigurationTests.java

@ -29,7 +29,6 @@ import org.junit.jupiter.api.Test; @@ -29,7 +29,6 @@ import org.junit.jupiter.api.Test;
import org.springframework.aop.Advisor;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.http.client.reactive.ClientHttpConnectorAutoConfiguration;
import org.springframework.boot.autoconfigure.http.client.service.HttpServiceClientAutoConfiguration;
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.reactive.ClientHttpConnectorBuilder;
@ -59,9 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -59,9 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat;
class ReactiveHttpServiceClientAutoConfigurationTests {
private final ReactiveWebApplicationContextRunner contextRunner = new ReactiveWebApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(HttpServiceClientAutoConfiguration.class,
ReactiveHttpServiceClientAutoConfiguration.class, ClientHttpConnectorAutoConfiguration.class,
WebClientAutoConfiguration.class));
.withConfiguration(AutoConfigurations.of(ReactiveHttpServiceClientAutoConfiguration.class,
ClientHttpConnectorAutoConfiguration.class, WebClientAutoConfiguration.class));
@Test
void configuresClientFromProperties() {

1
spring-boot-project/spring-boot-dependencies/build.gradle

@ -2020,6 +2020,7 @@ bom { @@ -2020,6 +2020,7 @@ bom {
"spring-boot-hateoas",
"spring-boot-hazelcast",
"spring-boot-http",
"spring-boot-http-client",
"spring-boot-http-codec",
"spring-boot-integration",
"spring-boot-jackson",

3
spring-boot-project/spring-boot-docs/build.gradle

@ -107,6 +107,7 @@ dependencies { @@ -107,6 +107,7 @@ dependencies {
autoConfiguration(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-http", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-integration", configuration: "autoConfigurationMetadata"))
autoConfiguration(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "autoConfigurationMetadata"))
@ -187,6 +188,7 @@ dependencies { @@ -187,6 +188,7 @@ dependencies {
configurationProperties(project(path: ":spring-boot-project:spring-boot-hateoas", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-hazelcast", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-http", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-http-client", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-http-codec", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-integration", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-jackson", configuration: "configurationPropertiesMetadata"))
@ -243,6 +245,7 @@ dependencies { @@ -243,6 +245,7 @@ dependencies {
implementation(project(path: ":spring-boot-project:spring-boot-devtools"))
implementation(project(path: ":spring-boot-project:spring-boot-docker-compose"))
implementation(project(path: ":spring-boot-project:spring-boot-http"))
implementation(project(path: ":spring-boot-project:spring-boot-http-client"))
implementation(project(path: ":spring-boot-project:spring-boot-http-codec"))
implementation(project(path: ":spring-boot-project:spring-boot-integration"))
implementation(project(path: ":spring-boot-project:spring-boot-jackson"))

4
spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/io/rest-client.adoc

@ -156,9 +156,9 @@ TIP: You can also change the xref:io/rest-client.adoc#io.rest-client.clienthttpr @@ -156,9 +156,9 @@ TIP: You can also change the xref:io/rest-client.adoc#io.rest-client.clienthttpr
[[io.rest-client.restclient.ssl]]
=== RestClient SSL Support
If you need custom SSL configuration on the javadoc:org.springframework.http.client.ClientHttpRequestFactory[] used by the javadoc:org.springframework.web.client.RestClient[], you can inject a javadoc:org.springframework.boot.autoconfigure.web.client.RestClientSsl[] instance that can be used with the builder's `apply` method.
If you need custom SSL configuration on the javadoc:org.springframework.http.client.ClientHttpRequestFactory[] used by the javadoc:org.springframework.web.client.RestClient[], you can inject a javadoc:org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl[] instance that can be used with the builder's `apply` method.
The javadoc:org.springframework.boot.autoconfigure.web.client.RestClientSsl[] interface provides access to any xref:features/ssl.adoc#features.ssl.bundles[SSL bundles] that you have defined in your `application.properties` or `application.yaml` file.
The javadoc:org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl[] interface provides access to any xref:features/ssl.adoc#features.ssl.bundles[SSL bundles] that you have defined in your `application.properties` or `application.yaml` file.
The following code shows a typical example:

2
spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.java

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
package org.springframework.boot.docs.io.restclient.restclient.ssl;
import org.springframework.boot.autoconfigure.web.client.RestClientSsl;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClient;

2
spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.java

@ -18,7 +18,7 @@ package org.springframework.boot.docs.io.restclient.resttemplate.customization; @@ -18,7 +18,7 @@ package org.springframework.boot.docs.io.restclient.resttemplate.customization;
import java.time.Duration;
import org.springframework.boot.autoconfigure.web.client.RestTemplateBuilderConfigurer;
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateBuilderConfigurer;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

2
spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/restclient/ssl/MyService.kt

@ -16,8 +16,8 @@ @@ -16,8 +16,8 @@
package org.springframework.boot.docs.io.restclient.restclient.ssl
import org.springframework.boot.autoconfigure.web.client.RestClientSsl
import org.springframework.boot.docs.io.restclient.restclient.ssl.settings.Details
import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl
import org.springframework.stereotype.Service
import org.springframework.web.client.RestClient

2
spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/io/restclient/resttemplate/customization/MyRestTemplateBuilderConfiguration.kt

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
package org.springframework.boot.docs.io.restclient.resttemplate.customization
import org.springframework.boot.autoconfigure.web.client.RestTemplateBuilderConfigurer
import org.springframework.boot.http.client.rest.autoconfigure.RestTemplateBuilderConfigurer
import org.springframework.boot.web.client.RestTemplateBuilder
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

44
spring-boot-project/spring-boot-http-client/build.gradle

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
/*
* Copyright 2012-present 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.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot HTTP Client"
dependencies {
api(project(":spring-boot-project:spring-boot"))
implementation(project(":spring-boot-project:spring-boot-http"))
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional("io.projectreactor.netty:reactor-netty-http")
optional("org.apache.httpcomponents.client5:httpclient5")
optional("org.eclipse.jetty:jetty-client")
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testRuntimeOnly("ch.qos.logback:logback-classic")
testRuntimeOnly("jakarta.servlet:jakarta.servlet-api")
testRuntimeOnly("org.springframework:spring-webflux")
}

76
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/AbstractHttpRequestFactoryProperties.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/AbstractHttpRequestFactoryProperties.java

@ -14,13 +14,15 @@ @@ -14,13 +14,15 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import java.time.Duration;
import java.util.function.Supplier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.http.client.ClientHttpRequestFactory;
/**
@ -28,16 +30,64 @@ import org.springframework.http.client.ClientHttpRequestFactory; @@ -28,16 +30,64 @@ import org.springframework.http.client.ClientHttpRequestFactory;
* {@link ClientHttpRequestFactory}.
*
* @author Phillip Webb
* @since 3.5.0
* @since 4.0.0
* @see ClientHttpRequestFactorySettings
*/
public abstract class AbstractHttpRequestFactoryProperties extends AbstractHttpClientProperties {
public abstract class AbstractHttpRequestFactoryProperties {
/**
* Handling for HTTP redirects.
*/
private HttpRedirects redirects;
/**
* Default connect timeout for a client HTTP request.
*/
private Duration connectTimeout;
/**
* Default read timeout for a client HTTP request.
*/
private Duration readTimeout;
/**
* Default SSL configuration for a client HTTP request.
*/
private final Ssl ssl = new Ssl();
/**
* Default factory used for a client HTTP request.
*/
private Factory factory;
public HttpRedirects getRedirects() {
return this.redirects;
}
public void setRedirects(HttpRedirects redirects) {
this.redirects = redirects;
}
public Duration getConnectTimeout() {
return this.connectTimeout;
}
public void setConnectTimeout(Duration connectTimeout) {
this.connectTimeout = connectTimeout;
}
public Duration getReadTimeout() {
return this.readTimeout;
}
public void setReadTimeout(Duration readTimeout) {
this.readTimeout = readTimeout;
}
public Ssl getSsl() {
return this.ssl;
}
public Factory getFactory() {
return this.factory;
}
@ -46,6 +96,26 @@ public abstract class AbstractHttpRequestFactoryProperties extends AbstractHttpC @@ -46,6 +96,26 @@ public abstract class AbstractHttpRequestFactoryProperties extends AbstractHttpC
this.factory = factory;
}
/**
* SSL configuration.
*/
public static class Ssl {
/**
* SSL bundle to use.
*/
private String bundle;
public String getBundle() {
return this.bundle;
}
public void setBundle(String bundle) {
this.bundle = bundle;
}
}
/**
* Supported factory types.
*/

6
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactories.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactories.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import java.time.Duration;
import java.util.Objects;
@ -22,11 +22,11 @@ import java.util.function.Function; @@ -22,11 +22,11 @@ import java.util.function.Function;
import java.util.function.Predicate;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpClientProperties.Ssl;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Ssl;
import org.springframework.boot.ssl.SslBundle;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.util.StringUtils;

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoryBuilderCustomizer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoryBuilderCustomizer.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
@ -24,7 +24,7 @@ import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder; @@ -24,7 +24,7 @@ import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
*
* @param <B> the builder type
* @author Phillip Webb
* @since 3.5.0
* @since 4.0.0
*/
public interface ClientHttpRequestFactoryBuilderCustomizer<B extends ClientHttpRequestFactoryBuilder<?>> {

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfiguration.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfiguration.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import java.util.List;
@ -39,7 +39,7 @@ import org.springframework.http.client.ClientHttpRequestFactory; @@ -39,7 +39,7 @@ import org.springframework.http.client.ClientHttpRequestFactory;
* {@link ClientHttpRequestFactoryBuilder} and {@link ClientHttpRequestFactorySettings}.
*
* @author Phillip Webb
* @since 3.4.0
* @since 4.0.0
*/
@SuppressWarnings("removal")
@AutoConfiguration(after = SslAutoConfiguration.class)

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/HttpClientProperties.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/HttpClientProperties.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/NotReactiveWebApplicationCondition.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/NotReactiveWebApplicationCondition.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/package-info.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/autoconfigure/package-info.java

@ -17,4 +17,4 @@ @@ -17,4 +17,4 @@
/**
* Auto-configuration for client-side HTTP.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSsl.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSsl.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.function.Consumer;

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizer.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.Arrays;
import java.util.List;
@ -30,7 +30,7 @@ import org.springframework.web.client.RestClient; @@ -30,7 +30,7 @@ import org.springframework.web.client.RestClient;
* HttpMessageConverters}.
*
* @author Phillip Webb
* @since 3.2.0
* @since 4.0.0
*/
public class HttpMessageConvertersRestClientCustomizer implements RestClientCustomizer {

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationCondition.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationCondition.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/NotReactiveWebApplicationOrVirtualThreadsExecutorEnabledCondition.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import org.springframework.boot.autoconfigure.condition.AnyNestedCondition;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;

6
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfiguration.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfiguration.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@ -23,12 +23,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -23,12 +23,12 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConverters;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.boot.web.client.RestClientCustomizer;
import org.springframework.context.annotation.Bean;
@ -48,7 +48,7 @@ import org.springframework.web.client.RestClient.Builder; @@ -48,7 +48,7 @@ import org.springframework.web.client.RestClient.Builder;
*
* @author Arjen Poutsma
* @author Moritz Halbritter
* @since 3.2.0
* @since 4.0.0
*/
@AutoConfiguration(
after = { HttpClientAutoConfiguration.class, TaskExecutionAutoConfiguration.class, SslAutoConfiguration.class })

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurer.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.Collections;
import java.util.List;
@ -33,7 +33,7 @@ import org.springframework.web.client.RestClient.Builder; @@ -33,7 +33,7 @@ import org.springframework.web.client.RestClient.Builder;
* auto-configuration.
*
* @author Moritz Halbritter
* @since 3.2.0
* @since 4.0.0
*/
public class RestClientBuilderConfigurer {

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientSsl.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientSsl.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.function.Consumer;
@ -44,7 +44,7 @@ import org.springframework.web.client.RestClient; @@ -44,7 +44,7 @@ import org.springframework.web.client.RestClient;
* consider using a {@link ClientHttpRequestFactoryBuilder}.
*
* @author Phillip Webb
* @since 3.2.0
* @since 4.0.0
*/
public interface RestClientSsl {

6
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfiguration.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfiguration.java

@ -14,17 +14,17 @@ @@ -14,17 +14,17 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConverters;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.boot.web.client.RestTemplateCustomizer;
import org.springframework.boot.web.client.RestTemplateRequestCustomizer;
@ -39,7 +39,7 @@ import org.springframework.web.client.RestTemplate; @@ -39,7 +39,7 @@ import org.springframework.web.client.RestTemplate;
*
* @author Stephane Nicoll
* @author Phillip Webb
* @since 1.4.0
* @since 4.0.0
*/
@AutoConfiguration(after = HttpClientAutoConfiguration.class)
@ConditionalOnClass({ RestTemplate.class, HttpMessageConverters.class })

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateBuilderConfigurer.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.Collection;
import java.util.List;
@ -36,7 +36,7 @@ import org.springframework.util.ObjectUtils; @@ -36,7 +36,7 @@ import org.springframework.util.ObjectUtils;
* auto-configuration.
*
* @author Stephane Nicoll
* @since 2.4.0
* @since 4.0.0
*/
public final class RestTemplateBuilderConfigurer {

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/web/client/package-info.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/rest/autoconfigure/package-info.java

@ -17,4 +17,4 @@ @@ -17,4 +17,4 @@
/**
* Auto-configuration for web clients.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;

4
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/AbstractHttpClientServiceProperties.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/AbstractHttpClientServiceProperties.java

@ -14,13 +14,13 @@ @@ -14,13 +14,13 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties;
/**
* {@link AbstractHttpRequestFactoryProperties} for HTTP Service clients.

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServiceProperties.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServiceProperties.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import java.util.LinkedHashMap;
import java.util.Map;

8
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfiguration.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfiguration.java

@ -14,19 +14,19 @@ @@ -14,19 +14,19 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import org.springframework.beans.factory.BeanClassLoaderAware;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.autoconfigure.http.client.HttpClientProperties;
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.http.client.autoconfigure.HttpClientProperties;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.boot.web.client.RestClientCustomizer;
import org.springframework.context.annotation.Bean;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/NotReactiveWebApplicationCondition.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/NotReactiveWebApplicationCondition.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.NoneNestedConditions;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientCustomizerHttpServiceGroupConfigurer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientCustomizerHttpServiceGroupConfigurer.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.web.client.RestClientCustomizer;

6
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/RestClientPropertiesHttpServiceGroupConfigurer.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/RestClientPropertiesHttpServiceGroupConfigurer.java

@ -14,18 +14,18 @@ @@ -14,18 +14,18 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.http.client.ClientHttpRequestFactories;
import org.springframework.boot.autoconfigure.http.client.HttpClientProperties;
import org.springframework.boot.context.properties.PropertyMapper;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.autoconfigure.ClientHttpRequestFactories;
import org.springframework.boot.http.client.autoconfigure.HttpClientProperties;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.core.Ordered;
import org.springframework.http.HttpHeaders;

2
spring-boot-project/spring-boot-autoconfigure-all/src/main/java/org/springframework/boot/autoconfigure/http/client/service/package-info.java → spring-boot-project/spring-boot-http-client/src/main/java/org/springframework/boot/http/client/service/autoconfigure/package-info.java

@ -17,4 +17,4 @@ @@ -17,4 +17,4 @@
/**
* Auto-Configuration for Spring's Blocking HTTP Service Interface Clients.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;

4
spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
{
"groups": [],
"properties": []
}

3
spring-boot-project/spring-boot-http-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration
org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration
org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration

4
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/ClientHttpRequestFactoriesTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/ClientHttpRequestFactoriesTests.java

@ -14,18 +14,18 @@ @@ -14,18 +14,18 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import java.time.Duration;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.ssl.DefaultSslBundleRegistry;
import org.springframework.boot.ssl.SslBundle;
import org.springframework.boot.ssl.SslBundles;

2
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientAutoConfigurationTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientAutoConfigurationTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import java.time.Duration;
import java.util.ArrayList;

4
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/HttpClientPropertiesTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/autoconfigure/HttpClientPropertiesTests.java

@ -14,17 +14,17 @@ @@ -14,17 +14,17 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client;
package org.springframework.boot.http.client.autoconfigure;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.http.client.HttpComponentsClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.JdkClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.JettyClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ReactorClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.SimpleClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory;
import static org.assertj.core.api.Assertions.assertThat;

2
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/AutoConfiguredRestClientSslTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/AutoConfiguredRestClientSslTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.time.Duration;
import java.util.function.Consumer;

2
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/HttpMessageConvertersRestClientCustomizerTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/HttpMessageConvertersRestClientCustomizerTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.ArrayList;
import java.util.Arrays;

4
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientAutoConfigurationTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientAutoConfigurationTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.time.Duration;
import java.util.List;
@ -24,13 +24,13 @@ import org.junit.jupiter.api.condition.EnabledForJreRange; @@ -24,13 +24,13 @@ import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConverters;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.ssl.SslBundle;
import org.springframework.boot.ssl.SslBundles;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;

2
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurerTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestClientBuilderConfigurerTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.List;

4
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/web/client/RestTemplateAutoConfigurationTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/rest/autoconfigure/RestTemplateAutoConfigurationTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.web.client;
package org.springframework.boot.http.client.rest.autoconfigure;
import java.util.Collections;
import java.util.List;
@ -23,9 +23,9 @@ import org.junit.jupiter.api.Test; @@ -23,9 +23,9 @@ import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.support.BeanDefinitionOverrideException;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.http.autoconfigure.HttpMessageConverters;
import org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;

6
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpClientServicePropertiesTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpClientServicePropertiesTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import java.time.Duration;
import java.util.List;
@ -22,10 +22,10 @@ import java.util.Map; @@ -22,10 +22,10 @@ import java.util.Map;
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.http.client.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.autoconfigure.http.client.service.HttpClientServiceProperties.Group;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.autoconfigure.AbstractHttpRequestFactoryProperties.Factory;
import org.springframework.boot.http.client.service.autoconfigure.HttpClientServiceProperties.Group;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.mock.env.MockEnvironment;

6
spring-boot-project/spring-boot-autoconfigure-all/src/test/java/org/springframework/boot/autoconfigure/http/client/service/HttpServiceClientAutoConfigurationTests.java → spring-boot-project/spring-boot-http-client/src/test/java/org/springframework/boot/http/client/service/autoconfigure/HttpServiceClientAutoConfigurationTests.java

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.autoconfigure.http.client.service;
package org.springframework.boot.http.client.service.autoconfigure;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
@ -28,11 +28,11 @@ import org.junit.jupiter.api.Test; @@ -28,11 +28,11 @@ import org.junit.jupiter.api.Test;
import org.springframework.aop.Advisor;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.autoconfigure.http.client.HttpClientAutoConfiguration;
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.boot.http.client.HttpRedirects;
import org.springframework.boot.http.client.autoconfigure.HttpClientAutoConfiguration;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import org.springframework.boot.web.client.RestClientCustomizer;
import org.springframework.context.annotation.Bean;

1
spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle

@ -21,6 +21,7 @@ plugins { @@ -21,6 +21,7 @@ plugins {
description = "Starter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito"
dependencies {
api(project(":spring-boot-project:spring-boot-http-client"))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
api(project(":spring-boot-project:spring-boot-test"))
api(project(":spring-boot-project:spring-boot-test-autoconfigure"))

1
spring-boot-project/spring-boot-test-autoconfigure/build.gradle

@ -78,6 +78,7 @@ dependencies { @@ -78,6 +78,7 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-groovy-templates"))
optional(project(":spring-boot-project:spring-boot-hateoas"))
optional(project(":spring-boot-project:spring-boot-http"))
optional(project(":spring-boot-project:spring-boot-http-client"))
optional(project(":spring-boot-project:spring-boot-http-codec"))
optional(project(":spring-boot-project:spring-boot-jackson"))
optional(project(":spring-boot-project:spring-boot-jdbc"))

3
spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/WebClientRestTemplateAutoConfiguration.java

@ -18,7 +18,6 @@ package org.springframework.boot.test.autoconfigure.web.client; @@ -18,7 +18,6 @@ package org.springframework.boot.test.autoconfigure.web.client;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBooleanProperty;
import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@ -31,7 +30,7 @@ import org.springframework.web.client.RestTemplate; @@ -31,7 +30,7 @@ import org.springframework.web.client.RestTemplate;
* @since 1.4.0
* @see AutoConfigureMockRestServiceServer
*/
@AutoConfiguration(after = RestTemplateAutoConfiguration.class)
@AutoConfiguration(afterName = "org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration")
@ConditionalOnBooleanProperty("spring.test.webclient.register-rest-template")
public class WebClientRestTemplateAutoConfiguration {

8
spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.client.AutoConfigureWebClient.imports

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
# AutoConfigureWebClient auto-configuration imports
optional:org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration
optional:org.springframework.boot.http.autoconfigure.HttpMessageConvertersAutoConfiguration
optional:org.springframework.boot.http.client.rest.autoconfigure.RestClientAutoConfiguration
optional:org.springframework.boot.http.client.rest.autoconfigure.RestTemplateAutoConfiguration
optional:org.springframework.boot.http.codec.autoconfigure.CodecsAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration
org.springframework.boot.test.autoconfigure.web.client.WebClientRestTemplateAutoConfiguration
org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration
org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration
org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration

1
spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/build.gradle

@ -27,6 +27,7 @@ configurations { @@ -27,6 +27,7 @@ configurations {
dependencies {
app project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "mavenRepository")
app project(path: ":spring-boot-project:spring-boot-http-client", configuration: "mavenRepository")
app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter", configuration: "mavenRepository")
app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-actuator", configuration: "mavenRepository")
app project(path: ":spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat", configuration: "mavenRepository")

1
spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/build.gradle

@ -33,5 +33,6 @@ repositories { @@ -33,5 +33,6 @@ repositories {
dependencies {
implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
implementation("org.springframework.boot:spring-boot-http-client")
implementation("org.springframework.boot:spring-boot-starter-web")
}

2
spring-boot-tests/spring-boot-integration-tests/spring-boot-sni-tests/spring-boot-sni-client-app/src/main/java/org/springframework/boot/sni/client/SniClientApplication.java

@ -21,8 +21,8 @@ import java.util.Arrays; @@ -21,8 +21,8 @@ import java.util.Arrays;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.web.client.RestClientSsl;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.http.client.rest.autoconfigure.RestClientSsl;
import org.springframework.context.annotation.Bean;
import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;

Loading…
Cancel
Save