Skip to content

Commit 02a6019

Browse files
refactor(retrofit): replace OkClient with Ok3Client (#6299)
1 parent 1fea187 commit 02a6019

File tree

13 files changed

+44
-56
lines changed

13 files changed

+44
-56
lines changed

clouddriver-appengine/clouddriver-appengine.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies {
2020
implementation "io.spinnaker.kork:kork-cloud-config-server"
2121
implementation "io.spinnaker.kork:kork-moniker"
2222
implementation "io.spinnaker.kork:kork-retrofit"
23+
implementation "com.jakewharton.retrofit:retrofit1-okhttp3-client"
2324
implementation "com.netflix.spectator:spectator-api"
2425
implementation "com.squareup.okhttp:okhttp"
2526
implementation "com.squareup.retrofit:converter-jackson"

clouddriver-appengine/src/main/java/com/netflix/spinnaker/clouddriver/appengine/config/AppengineConfigurationProperties.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@
1818

1919
import com.fasterxml.jackson.databind.JsonNode;
2020
import com.fasterxml.jackson.databind.ObjectMapper;
21+
import com.jakewharton.retrofit.Ok3Client;
2122
import com.netflix.spinnaker.clouddriver.appengine.AppengineJobExecutor;
2223
import com.netflix.spinnaker.clouddriver.googlecommon.config.GoogleCommonManagedAccount;
2324
import com.netflix.spinnaker.kork.retrofit.exceptions.SpinnakerRetrofitErrorHandler;
24-
import com.squareup.okhttp.OkHttpClient;
2525
import java.io.File;
2626
import java.util.ArrayList;
2727
import java.util.List;
2828
import lombok.Data;
2929
import lombok.EqualsAndHashCode;
30+
import okhttp3.OkHttpClient;
3031
import org.springframework.util.StringUtils;
3132
import retrofit.RestAdapter;
32-
import retrofit.client.OkClient;
3333
import retrofit.client.Response;
3434
import retrofit.converter.JacksonConverter;
3535
import retrofit.http.GET;
@@ -99,13 +99,12 @@ public void initialize(AppengineJobExecutor jobExecutor, String gcloudPath) {
9999
}
100100

101101
static MetadataService createMetadataService() {
102-
OkHttpClient client = new OkHttpClient();
103-
client.setRetryOnConnectionFailure(true);
102+
OkHttpClient okHttpClient = new OkHttpClient.Builder().retryOnConnectionFailure(true).build();
104103
RestAdapter restAdapter =
105104
new RestAdapter.Builder()
106105
.setEndpoint(metadataUrl)
107106
.setConverter(new JacksonConverter())
108-
.setClient(new OkClient(client))
107+
.setClient(new Ok3Client(okHttpClient))
109108
.setErrorHandler(SpinnakerRetrofitErrorHandler.getInstance())
110109
.build();
111110
return restAdapter.create(MetadataService.class);

clouddriver-consul/clouddriver-consul.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
dependencies {
22
implementation project(":clouddriver-core")
33

4+
implementation "com.jakewharton.retrofit:retrofit1-okhttp3-client"
45
implementation "com.squareup.okhttp:okhttp"
56
implementation "com.squareup.retrofit:converter-jackson"
67
implementation "com.squareup.retrofit:retrofit"

clouddriver-consul/src/main/groovy/com/netflix/spinnaker/clouddriver/consul/api/v1/Consul.groovy

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@
1616

1717
package com.netflix.spinnaker.clouddriver.consul.api.v1
1818

19-
19+
import com.jakewharton.retrofit.Ok3Client
2020
import com.netflix.spinnaker.clouddriver.consul.config.ConsulConfig
2121
import com.netflix.spinnaker.clouddriver.consul.config.ConsulProperties
2222
import com.netflix.spinnaker.kork.retrofit.exceptions.SpinnakerRetrofitErrorHandler
23-
import com.squareup.okhttp.OkHttpClient
23+
import okhttp3.OkHttpClient
2424
import retrofit.RestAdapter
25-
import retrofit.client.OkClient
2625
import retrofit.converter.JacksonConverter
2726

2827
class Consul<T> {
@@ -39,7 +38,7 @@ class Consul<T> {
3938
this.timeout = timeout
4039
this.api = new RestAdapter.Builder()
4140
.setEndpoint(this.endpoint)
42-
.setClient(new OkClient(new OkHttpClient()))
41+
.setClient(new Ok3Client(new OkHttpClient()))
4342
.setConverter(new JacksonConverter())
4443
.setLogLevel(RestAdapter.LogLevel.NONE)
4544
.setErrorHandler(SpinnakerRetrofitErrorHandler.getInstance())

clouddriver-consul/src/main/groovy/com/netflix/spinnaker/clouddriver/consul/api/v1/ConsulAgent.groovy

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,6 @@ package com.netflix.spinnaker.clouddriver.consul.api.v1
1919
import com.netflix.spinnaker.clouddriver.consul.api.v1.services.AgentApi
2020
import com.netflix.spinnaker.clouddriver.consul.config.ConsulConfig
2121
import com.netflix.spinnaker.clouddriver.consul.config.ConsulProperties
22-
import com.squareup.okhttp.OkHttpClient
23-
import retrofit.RestAdapter
24-
import retrofit.client.OkClient
25-
26-
import java.util.concurrent.TimeUnit
2722

2823
class ConsulAgent extends Consul<AgentApi> {
2924
ConsulAgent(ConsulConfig config, String agentBaseUrl) {

clouddriver-consul/src/main/groovy/com/netflix/spinnaker/clouddriver/consul/api/v1/ConsulCatalog.groovy

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ package com.netflix.spinnaker.clouddriver.consul.api.v1
1818

1919
import com.netflix.spinnaker.clouddriver.consul.api.v1.services.CatalogApi
2020
import com.netflix.spinnaker.clouddriver.consul.config.ConsulConfig
21-
import com.netflix.spinnaker.clouddriver.consul.config.ConsulProperties
22-
import com.squareup.okhttp.OkHttpClient
23-
import retrofit.RestAdapter
24-
import retrofit.client.OkClient
25-
26-
import java.util.concurrent.TimeUnit
2721

2822
class ConsulCatalog extends Consul<CatalogApi> {
2923
ConsulCatalog(ConsulConfig config) {

clouddriver-consul/src/main/groovy/com/netflix/spinnaker/clouddriver/consul/api/v1/ConsulKeyValueStore.groovy

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ package com.netflix.spinnaker.clouddriver.consul.api.v1
1818

1919
import com.netflix.spinnaker.clouddriver.consul.api.v1.services.KeyValueApi
2020
import com.netflix.spinnaker.clouddriver.consul.config.ConsulConfig
21-
import com.netflix.spinnaker.clouddriver.consul.config.ConsulProperties
22-
import com.squareup.okhttp.OkHttpClient
23-
import retrofit.RestAdapter
24-
import retrofit.client.OkClient
25-
26-
import java.util.concurrent.TimeUnit
2721

2822
class ConsulKeyValueStore extends Consul<KeyValueApi> {
2923
ConsulKeyValueStore(ConsulConfig config) {

clouddriver-docker/clouddriver-docker.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ dependencies {
99
implementation "org.springframework.cloud:spring-cloud-context"
1010
implementation "org.apache.groovy:groovy"
1111
implementation "com.google.guava:guava"
12+
implementation "com.jakewharton.retrofit:retrofit1-okhttp3-client"
1213
implementation "com.netflix.spectator:spectator-api"
1314
implementation "com.squareup.okhttp:okhttp"
1415
implementation "com.squareup.retrofit:converter-jackson"
@@ -27,6 +28,7 @@ dependencies {
2728
testImplementation "org.junit.jupiter:junit-jupiter-api"
2829
testImplementation "org.junit.jupiter:junit-jupiter-params"
2930
testImplementation "org.mockito:mockito-core"
31+
testImplementation 'org.mockito:mockito-inline'
3032
testImplementation "org.mockito:mockito-junit-jupiter"
3133
testImplementation "org.spockframework:spock-core"
3234
testImplementation "org.spockframework:spock-spring"

clouddriver-docker/src/main/java/com/netflix/spinnaker/clouddriver/docker/registry/api/v2/client/DefaultDockerOkClientProvider.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,37 @@
1515
*/
1616
package com.netflix.spinnaker.clouddriver.docker.registry.api.v2.client;
1717

18+
import com.jakewharton.retrofit.Ok3Client;
1819
import com.netflix.spinnaker.clouddriver.docker.registry.security.TrustAllX509TrustManager;
19-
import com.squareup.okhttp.OkHttpClient;
2020
import java.security.KeyManagementException;
2121
import java.security.NoSuchAlgorithmException;
2222
import java.security.SecureRandom;
2323
import java.util.concurrent.TimeUnit;
2424
import javax.net.ssl.SSLContext;
2525
import javax.net.ssl.TrustManager;
26-
import retrofit.client.OkClient;
26+
import javax.net.ssl.X509TrustManager;
27+
import okhttp3.OkHttpClient;
2728

2829
public class DefaultDockerOkClientProvider implements DockerOkClientProvider {
2930

3031
@Override
31-
public OkClient provide(String address, long timeoutMs, boolean insecure) {
32-
OkHttpClient client = new OkHttpClient();
33-
client.setReadTimeout(timeoutMs, TimeUnit.MILLISECONDS);
32+
public Ok3Client provide(String address, long timeoutMs, boolean insecure) {
33+
OkHttpClient.Builder clientBuilder =
34+
new OkHttpClient.Builder().readTimeout(timeoutMs, TimeUnit.MILLISECONDS);
3435

3536
if (insecure) {
3637
SSLContext sslContext;
38+
TrustManager[] trustManagers = {new TrustAllX509TrustManager()};
3739
try {
3840
sslContext = SSLContext.getInstance("SSL");
39-
TrustManager[] trustManagers = {new TrustAllX509TrustManager()};
4041
sslContext.init(null, trustManagers, new SecureRandom());
4142
} catch (NoSuchAlgorithmException | KeyManagementException e) {
4243
throw new IllegalStateException("Failed configuring insecure SslSocketFactory", e);
4344
}
44-
client.setSslSocketFactory(sslContext.getSocketFactory());
45+
clientBuilder.sslSocketFactory(
46+
sslContext.getSocketFactory(), (X509TrustManager) trustManagers[0]);
4547
}
4648

47-
return new OkClient(client);
49+
return new Ok3Client(clientBuilder.build());
4850
}
4951
}

clouddriver-docker/src/main/java/com/netflix/spinnaker/clouddriver/docker/registry/api/v2/client/DockerOkClientProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616
package com.netflix.spinnaker.clouddriver.docker.registry.api.v2.client;
1717

18-
import retrofit.client.OkClient;
18+
import com.jakewharton.retrofit.Ok3Client;
1919

2020
/** Allows custom configuration of the Docker Registry OkHttpClient. */
2121
public interface DockerOkClientProvider {
@@ -26,7 +26,7 @@ public interface DockerOkClientProvider {
2626
* @param timeoutMs The client timeout in milliseconds
2727
* @param insecure Whether or not the registry should be configured to trust all SSL certificates.
2828
* If this is true, you may want to fallback to {@code DefaultDockerOkClientProvider}
29-
* @return An OkClient
29+
* @return An Ok3Client
3030
*/
31-
OkClient provide(String address, long timeoutMs, boolean insecure);
31+
Ok3Client provide(String address, long timeoutMs, boolean insecure);
3232
}

0 commit comments

Comments
 (0)