Upgrade to OkHTTP 4.9.3

Closes gh-18506
This commit is contained in:
Andy Wilkinson 2022-02-18 09:41:55 +00:00
parent 42328771ad
commit fc8f55fbf4
3 changed files with 75 additions and 10 deletions

View File

@ -1326,19 +1326,16 @@ bom {
]
}
}
library("OkHttp3", "3.14.9") {
prohibit("[4.0.0-alpha01,)") {
because "it requires Kotlin"
}
library("OkHttp", "4.9.3") {
group("com.squareup.okhttp3") {
modules = [
"logging-interceptor",
"mockwebserver",
"okcurl",
"okhttp",
"okhttp-brotli",
"okhttp-dnsoverhttps",
"okhttp-sse",
"okhttp-testing-support",
"okhttp-tls",
"okhttp-urlconnection"
]

View File

@ -24,7 +24,9 @@ import java.util.Collections;
import java.util.Set;
import java.util.function.Supplier;
import okhttp3.OkHttpClient;
import org.apache.http.client.config.RequestConfig;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InOrder;
@ -523,19 +525,19 @@ class RestTemplateBuilderTests {
}
@Test
void connectTimeoutCanBeConfiguredOnOkHttp3RequestFactory() {
void connectTimeoutCanBeConfiguredOnOkHttpRequestFactory() {
ClientHttpRequestFactory requestFactory = this.builder.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setConnectTimeout(Duration.ofMillis(1234)).build().getRequestFactory();
assertThat(
ReflectionTestUtils.getField(ReflectionTestUtils.getField(requestFactory, "client"), "connectTimeout"))
.isEqualTo(1234);
assertThat(requestFactory).extracting("client", InstanceOfAssertFactories.type(OkHttpClient.class))
.extracting(OkHttpClient::connectTimeoutMillis).isEqualTo(1234);
}
@Test
void readTimeoutCanBeConfiguredOnOkHttp3RequestFactory() {
ClientHttpRequestFactory requestFactory = this.builder.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setReadTimeout(Duration.ofMillis(1234)).build().getRequestFactory();
assertThat(requestFactory).extracting("client").extracting("readTimeout").isEqualTo(1234);
assertThat(requestFactory).extracting("client", InstanceOfAssertFactories.type(OkHttpClient.class))
.extracting(OkHttpClient::readTimeoutMillis).isEqualTo(1234);
}
@Test

View File

@ -0,0 +1,66 @@
/*
* Copyright 2012-2022 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.web.client;
import java.time.Duration;
import okhttp3.OkHttpClient;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;
import org.springframework.boot.testsupport.classpath.ClassPathOverrides;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalStateException;
/**
* Tests for {@link RestTemplateBuilder} with OkHttp 3.x.
*
* @author Andy Wilkinson
*/
@ClassPathOverrides("com.squareup.okhttp3:okhttp:3.14.9")
class RestTemplateBuilderTestsOkHttp3Tests {
private RestTemplateBuilder builder = new RestTemplateBuilder();
@Test
void connectTimeoutCanBeConfiguredOnOkHttpRequestFactory() {
ClientHttpRequestFactory requestFactory = this.builder.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setConnectTimeout(Duration.ofMillis(1234)).build().getRequestFactory();
assertThat(requestFactory).extracting("client", InstanceOfAssertFactories.type(OkHttpClient.class))
.extracting(OkHttpClient::connectTimeoutMillis).isEqualTo(1234);
}
@Test
void readTimeoutCanBeConfiguredOnOkHttpRequestFactory() {
ClientHttpRequestFactory requestFactory = this.builder.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setReadTimeout(Duration.ofMillis(1234)).build().getRequestFactory();
assertThat(requestFactory).extracting("client", InstanceOfAssertFactories.type(OkHttpClient.class))
.extracting(OkHttpClient::readTimeoutMillis).isEqualTo(1234);
}
@Test
void bufferRequestBodyCanNotBeConfiguredOnOkHttpRequestFactory() {
assertThatIllegalStateException()
.isThrownBy(() -> this.builder.requestFactory(OkHttp3ClientHttpRequestFactory.class)
.setBufferRequestBody(false).build().getRequestFactory())
.withMessageContaining(OkHttp3ClientHttpRequestFactory.class.getName());
}
}