Skip to content

Commit 7a2d445

Browse files
Merge pull request #1147 from cloudfoundry/gh_issue_1143
2 parents 00faecf + e427d97 commit 7a2d445

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import reactor.netty.resources.ConnectionProvider;
3737
import reactor.netty.resources.LoopResources;
3838
import reactor.netty.tcp.SslProvider;
39-
import reactor.netty.tcp.SslProvider.DefaultConfigurationType;
4039

4140
import javax.annotation.PostConstruct;
4241
import javax.annotation.PreDestroy;
@@ -103,10 +102,10 @@ public Integer getConnectionPoolSize() {
103102
@Override
104103
@Value.Default
105104
public HttpClient getHttpClient() {
106-
HttpClient client = createHttpClient().compress(true)
107-
.secure(this::configureSsl);
105+
HttpClient client = configureHttpClient(createHttpClient().compress(true)
106+
.secure(this::configureSsl));
108107

109-
return getAdditionalHttpClientConfiguration().map(configuration -> configuration.apply(configureHttpClient(client)))
108+
return getAdditionalHttpClientConfiguration().map(configuration -> configuration.apply(client))
110109
.orElse(client);
111110
}
112111

cloudfoundry-client-reactor/src/test/java/org/cloudfoundry/reactor/DefaultConnectionContextTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,21 @@
1616

1717
package org.cloudfoundry.reactor;
1818

19+
import io.netty.handler.logging.ByteBufFormat;
20+
import io.netty.handler.logging.LogLevel;
1921
import org.junit.After;
2022
import org.junit.Test;
23+
import reactor.netty.http.client.HttpClient;
24+
import reactor.netty.transport.ProxyProvider;
2125
import reactor.test.StepVerifier;
2226

27+
import java.net.InetSocketAddress;
2328
import java.time.Duration;
29+
import java.util.Optional;
2430

2531
import static io.netty.handler.codec.http.HttpMethod.GET;
2632
import static io.netty.handler.codec.http.HttpResponseStatus.OK;
33+
import static org.assertj.core.api.Assertions.assertThat;
2734

2835
public final class DefaultConnectionContextTest extends AbstractRestTest {
2936

@@ -85,4 +92,35 @@ public void multipleInstances() {
8592
second.dispose();
8693
}
8794

95+
@Test
96+
public void configurationAlwaysApplied() {
97+
DefaultConnectionContext ctx = DefaultConnectionContext.builder()
98+
.apiHost("api.example.com")
99+
.keepAlive(true)
100+
.proxyConfiguration(
101+
ProxyConfiguration.builder()
102+
.host("proxy.example.com")
103+
.port(8080)
104+
.username("foo")
105+
.password("bar")
106+
.build())
107+
.skipSslValidation(true)
108+
.build();
109+
110+
assertThat(ctx.getConnectionPoolSize()).isEqualTo(24);
111+
assertThat(ctx.getApiHost()).isEqualTo("api.example.com");
112+
assertThat(ctx.getSkipSslValidation()).isEqualTo(Optional.of(true));
113+
114+
HttpClient client = ctx.getHttpClient();
115+
assertThat(client.configuration().isSecure()).isEqualTo(true);
116+
117+
InetSocketAddress addr = client.configuration().proxyProvider().getAddress().get();
118+
assertThat(addr.getHostName()).isEqualTo("proxy.example.com");
119+
assertThat(addr.getPort()).isEqualTo(8080);
120+
assertThat(client.configuration().proxyProvider().getType()).isEqualTo(ProxyProvider.Proxy.HTTP);
121+
122+
assertThat(client.configuration().loggingHandler().level()).isEqualTo(LogLevel.TRACE);
123+
assertThat(client.configuration().loggingHandler().byteBufFormat()).isEqualTo(ByteBufFormat.HEX_DUMP);
124+
}
125+
88126
}

0 commit comments

Comments
 (0)