mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-10-09 19:09:03 +00:00
Add HttpClientTransport factory support
Update `JettyClientHttpRequestFactoryBuilder` and `JettyClientHttpConnectorBuilder` with support for create the `HttpClientTransport` from a factory function. Closes gh-47251
This commit is contained in:
+21
@@ -18,12 +18,15 @@ package org.springframework.boot.http.client;
|
||||
|
||||
import org.eclipse.jetty.client.HttpClient;
|
||||
import org.eclipse.jetty.client.HttpClientTransport;
|
||||
import org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP;
|
||||
import org.eclipse.jetty.io.ClientConnector;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.http.client.JettyClientHttpRequestFactory;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link JettyClientHttpRequestFactoryBuilder} and
|
||||
* {@link JettyHttpClientBuilder}.
|
||||
@@ -62,6 +65,16 @@ class JettyClientHttpRequestFactoryBuilderTests
|
||||
customizer.assertCalled();
|
||||
}
|
||||
|
||||
@Test
|
||||
void withHttpClientTransportFactory() {
|
||||
JettyClientHttpRequestFactory factory = ClientHttpRequestFactoryBuilder.jetty()
|
||||
.withHttpClientTransportFactory(TestHttpClientTransport::new)
|
||||
.build();
|
||||
assertThat(factory).extracting("httpClient")
|
||||
.extracting("transport")
|
||||
.isInstanceOf(TestHttpClientTransport.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected long connectTimeout(JettyClientHttpRequestFactory requestFactory) {
|
||||
return ((HttpClient) ReflectionTestUtils.getField(requestFactory, "httpClient")).getConnectTimeout();
|
||||
@@ -72,4 +85,12 @@ class JettyClientHttpRequestFactoryBuilderTests
|
||||
return (long) ReflectionTestUtils.getField(requestFactory, "readTimeout");
|
||||
}
|
||||
|
||||
static class TestHttpClientTransport extends HttpClientTransportOverHTTP {
|
||||
|
||||
TestHttpClientTransport(ClientConnector connector) {
|
||||
super(connector);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+21
@@ -20,6 +20,7 @@ import java.time.Duration;
|
||||
|
||||
import org.eclipse.jetty.client.HttpClient;
|
||||
import org.eclipse.jetty.client.HttpClientTransport;
|
||||
import org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP;
|
||||
import org.eclipse.jetty.io.ClientConnector;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -27,6 +28,8 @@ import org.springframework.boot.http.client.JettyHttpClientBuilder;
|
||||
import org.springframework.http.client.reactive.JettyClientHttpConnector;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* Tests for {@link JettyClientHttpConnectorBuilder} and {@link JettyHttpClientBuilder}.
|
||||
*
|
||||
@@ -63,6 +66,16 @@ class JettyClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBu
|
||||
customizer.assertCalled();
|
||||
}
|
||||
|
||||
@Test
|
||||
void withHttpClientTransportFactory() {
|
||||
JettyClientHttpConnector connector = ClientHttpConnectorBuilder.jetty()
|
||||
.withHttpClientTransportFactory(TestHttpClientTransport::new)
|
||||
.build();
|
||||
assertThat(connector).extracting("httpClient")
|
||||
.extracting("transport")
|
||||
.isInstanceOf(TestHttpClientTransport.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected long connectTimeout(JettyClientHttpConnector connector) {
|
||||
return ((HttpClient) ReflectionTestUtils.getField(connector, "httpClient")).getConnectTimeout();
|
||||
@@ -74,4 +87,12 @@ class JettyClientHttpConnectorBuilderTests extends AbstractClientHttpConnectorBu
|
||||
return ((Duration) ReflectionTestUtils.getField(httpClient, "readTimeout")).toMillis();
|
||||
}
|
||||
|
||||
static class TestHttpClientTransport extends HttpClientTransportOverHTTP {
|
||||
|
||||
TestHttpClientTransport(ClientConnector connector) {
|
||||
super(connector);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user