Skip to content
This repository was archived by the owner on May 30, 2024. It is now read-only.

Commit 66f43c6

Browse files
authored
Merge pull request #189 from launchdarkly/eb/62055/http-upgrade
(5.0) finish updating to okhttp 4.x
2 parents 43be4da + 9ccc711 commit 66f43c6

File tree

8 files changed

+26
-23
lines changed

8 files changed

+26
-23
lines changed

build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ ext.libraries = [:]
5959
libraries.internal = [
6060
"commons-codec:commons-codec:1.10",
6161
"com.google.guava:guava:28.2-jre",
62-
"com.launchdarkly:okhttp-eventsource:2.0.0",
62+
"com.launchdarkly:okhttp-eventsource:2.0.1",
6363
"org.yaml:snakeyaml:1.19",
6464
"redis.clients:jedis:2.9.0"
6565
]
@@ -73,7 +73,8 @@ libraries.external = [
7373

7474
// Add dependencies to "libraries.test" that are used only in unit tests.
7575
libraries.test = [
76-
"com.squareup.okhttp3:mockwebserver:3.10.0",
76+
"com.squareup.okhttp3:mockwebserver:4.3.1",
77+
"com.squareup.okhttp3:okhttp-tls:4.3.1",
7778
"org.hamcrest:hamcrest-all:1.3",
7879
"org.easymock:easymock:3.4",
7980
"junit:junit:4.12",

packaging-test/test-app/src/main/java/testapp/TestApp.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@ public static void main(String[] args) throws Exception {
1414
System.out.println("*** error: RedisDataStoreBuilder.DEFAULT_URI is " + RedisDataStoreBuilder.DEFAULT_URI);
1515
System.exit(1);
1616
}
17-
if (!RedisFeatureStoreBuilder.DEFAULT_URI.toString().equals("redis://localhost:6379")) {
18-
System.out.println("*** error: RedisFeatureStoreBuilder.DEFAULT_URI is " + RedisFeatureStoreBuilder.DEFAULT_URI);
19-
System.exit(1);
20-
}
2117

2218
LDConfig config = new LDConfig.Builder()
2319
.offline(true)

src/main/java/com/launchdarkly/client/DefaultEventProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ final class DefaultEventProcessor implements EventProcessor {
4747
private static final String EVENT_SCHEMA_HEADER = "X-LaunchDarkly-Event-Schema";
4848
private static final String EVENT_SCHEMA_VERSION = "3";
4949
private static final String EVENT_PAYLOAD_ID_HEADER = "X-LaunchDarkly-Payload-ID";
50+
private static final MediaType JSON_CONTENT_TYPE = MediaType.parse("application/json; charset=utf-8");
5051

5152
@VisibleForTesting final EventDispatcher dispatcher;
5253
private final BlockingQueue<EventProcessorMessage> inbox;
@@ -485,7 +486,7 @@ private static void postJson(OkHttpClient httpClient, Headers headers, String js
485486

486487
Request request = new Request.Builder()
487488
.url(uriStr)
488-
.post(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json))
489+
.post(RequestBody.create(json, JSON_CONTENT_TYPE))
489490
.headers(headers)
490491
.build();
491492

src/test/java/com/launchdarkly/client/DefaultEventProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,7 @@ public void httpClientCanUseCustomTlsConfig() throws Exception {
846846
try (TestHttpUtil.ServerWithCert serverWithCert = httpsServerWithSelfSignedCert(eventsSuccessResponse())) {
847847
EventProcessorBuilder ec = sendEvents().baseURI(serverWithCert.uri());
848848
LDConfig config = new LDConfig.Builder()
849-
.sslSocketFactory(serverWithCert.sslClient.socketFactory, serverWithCert.sslClient.trustManager) // allows us to trust the self-signed cert
849+
.sslSocketFactory(serverWithCert.socketFactory, serverWithCert.trustManager) // allows us to trust the self-signed cert
850850
.build();
851851

852852
try (DefaultEventProcessor ep = makeEventProcessor(ec, config)) {

src/test/java/com/launchdarkly/client/FeatureRequestorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public void httpClientCanUseCustomTlsConfig() throws Exception {
178178

179179
try (TestHttpUtil.ServerWithCert serverWithCert = httpsServerWithSelfSignedCert(resp)) {
180180
LDConfig config = new LDConfig.Builder()
181-
.sslSocketFactory(serverWithCert.sslClient.socketFactory, serverWithCert.sslClient.trustManager) // allows us to trust the self-signed cert
181+
.sslSocketFactory(serverWithCert.socketFactory, serverWithCert.trustManager) // allows us to trust the self-signed cert
182182
.build();
183183

184184
try (DefaultFeatureRequestor r = makeRequestor(serverWithCert.server, config)) {

src/test/java/com/launchdarkly/client/LDClientEndToEndTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public void clientStartsInPollingModeWithSelfSignedCert() throws Exception {
7171
LDConfig config = new LDConfig.Builder()
7272
.dataSource(basePollingConfig(serverWithCert.server))
7373
.events(noEvents())
74-
.sslSocketFactory(serverWithCert.sslClient.socketFactory, serverWithCert.sslClient.trustManager) // allows us to trust the self-signed cert
74+
.sslSocketFactory(serverWithCert.socketFactory, serverWithCert.trustManager) // allows us to trust the self-signed cert
7575
.build();
7676

7777
try (LDClient client = new LDClient(sdkKey, config)) {
@@ -127,7 +127,7 @@ public void clientStartsInStreamingModeWithSelfSignedCert() throws Exception {
127127
LDConfig config = new LDConfig.Builder()
128128
.dataSource(baseStreamingConfig(serverWithCert.server))
129129
.events(noEvents())
130-
.sslSocketFactory(serverWithCert.sslClient.socketFactory, serverWithCert.sslClient.trustManager) // allows us to trust the self-signed cert
130+
.sslSocketFactory(serverWithCert.socketFactory, serverWithCert.trustManager) // allows us to trust the self-signed cert
131131
.build();
132132

133133
try (LDClient client = new LDClient(sdkKey, config)) {

src/test/java/com/launchdarkly/client/StreamProcessorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,7 @@ public void httpClientCanUseCustomTlsConfig() throws Exception {
439439
server.server.enqueue(eventStreamResponse(STREAM_RESPONSE_WITH_EMPTY_DATA));
440440

441441
LDConfig config = new LDConfig.Builder()
442-
.sslSocketFactory(server.sslClient.socketFactory, server.sslClient.trustManager) // allows us to trust the self-signed cert
442+
.sslSocketFactory(server.socketFactory, server.trustManager) // allows us to trust the self-signed cert
443443
.build();
444444

445445
try (StreamProcessor sp = createStreamProcessorWithRealHttp(config, server.uri())) {

src/test/java/com/launchdarkly/client/TestHttpUtil.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@
55

66
import java.io.Closeable;
77
import java.io.IOException;
8+
import java.math.BigInteger;
89
import java.net.InetAddress;
910
import java.net.URI;
1011
import java.security.GeneralSecurityException;
1112

13+
import javax.net.ssl.SSLSocketFactory;
14+
import javax.net.ssl.X509TrustManager;
15+
1216
import okhttp3.mockwebserver.MockResponse;
1317
import okhttp3.mockwebserver.MockWebServer;
14-
import okhttp3.mockwebserver.internal.tls.HeldCertificate;
15-
import okhttp3.mockwebserver.internal.tls.SslClient;
18+
import okhttp3.tls.HandshakeCertificates;
19+
import okhttp3.tls.HeldCertificate;
20+
import okhttp3.tls.internal.TlsUtil;
1621

1722
class TestHttpUtil {
1823
static MockWebServer makeStartedServer(MockResponse... responses) throws IOException {
@@ -56,25 +61,25 @@ static MockResponse eventStreamResponse(String data) {
5661
static class ServerWithCert implements Closeable {
5762
final MockWebServer server;
5863
final HeldCertificate cert;
59-
final SslClient sslClient;
64+
final SSLSocketFactory socketFactory;
65+
final X509TrustManager trustManager;
6066

6167
public ServerWithCert() throws IOException, GeneralSecurityException {
6268
String hostname = InetAddress.getByName("localhost").getCanonicalHostName();
6369

6470
cert = new HeldCertificate.Builder()
65-
.serialNumber("1")
66-
.ca(1)
71+
.serialNumber(BigInteger.ONE)
72+
.certificateAuthority(1)
6773
.commonName(hostname)
68-
.subjectAlternativeName(hostname)
74+
.addSubjectAlternativeName(hostname)
6975
.build();
7076

71-
sslClient = new SslClient.Builder()
72-
.certificateChain(cert.keyPair, cert.certificate)
73-
.addTrustedCertificate(cert.certificate)
74-
.build();
77+
HandshakeCertificates hc = TlsUtil.localhost();
78+
socketFactory = hc.sslSocketFactory();
79+
trustManager = hc.trustManager();
7580

7681
server = new MockWebServer();
77-
server.useHttps(sslClient.socketFactory, false);
82+
server.useHttps(socketFactory, false);
7883
}
7984

8085
public URI uri() {

0 commit comments

Comments
 (0)