diff --git a/modules/jetty-http-server/pom.xml b/modules/jetty-http-server/pom.xml index 661f5d897..50d78da6b 100644 --- a/modules/jetty-http-server/pom.xml +++ b/modules/jetty-http-server/pom.xml @@ -63,7 +63,6 @@ com.squareup.okhttp okhttp - 2.5.0 test diff --git a/modules/okhttp-client/pom.xml b/modules/okhttp-client/pom.xml index 26d0af7c6..ef485fcea 100644 --- a/modules/okhttp-client/pom.xml +++ b/modules/okhttp-client/pom.xml @@ -46,6 +46,10 @@ com.squareup.okhttp okhttp + + com.spotify + apollo-extra + junit diff --git a/modules/okhttp-client/src/main/java/com/spotify/apollo/http/client/OkHttpClientProvider.java b/modules/okhttp-client/src/main/java/com/spotify/apollo/http/client/OkHttpClientProvider.java index a160d5656..8b82f6522 100644 --- a/modules/okhttp-client/src/main/java/com/spotify/apollo/http/client/OkHttpClientProvider.java +++ b/modules/okhttp-client/src/main/java/com/spotify/apollo/http/client/OkHttpClientProvider.java @@ -19,8 +19,11 @@ */ package com.spotify.apollo.http.client; +import com.google.common.io.Closer; import com.google.inject.Inject; import com.google.inject.Provider; + +import com.spotify.apollo.concurrent.ExecutorServiceCloser; import com.squareup.okhttp.ConnectionPool; import com.squareup.okhttp.OkHttpClient; import com.typesafe.config.Config; @@ -33,10 +36,12 @@ class OkHttpClientProvider implements Provider { private final OkHttpClientConfig config; + private final Closer closer; @Inject - OkHttpClientProvider(Config config) { + OkHttpClientProvider(Config config, Closer closer) { this.config = new OkHttpClientConfig(config); + this.closer = closer; } @Override @@ -66,6 +71,8 @@ public OkHttpClient get() { config.maxAsyncRequestsPerHost().ifPresent( max -> client.getDispatcher().setMaxRequestsPerHost(max)); + closer.register(ExecutorServiceCloser.of(client.getDispatcher().getExecutorService())); + return client; } diff --git a/modules/okhttp-client/src/test/java/com/spotify/apollo/http/client/OkHttpClientProviderTest.java b/modules/okhttp-client/src/test/java/com/spotify/apollo/http/client/OkHttpClientProviderTest.java index 94032faaa..f74be85c2 100644 --- a/modules/okhttp-client/src/test/java/com/spotify/apollo/http/client/OkHttpClientProviderTest.java +++ b/modules/okhttp-client/src/test/java/com/spotify/apollo/http/client/OkHttpClientProviderTest.java @@ -19,6 +19,8 @@ */ package com.spotify.apollo.http.client; +import com.google.common.io.Closer; + import com.squareup.okhttp.OkHttpClient; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; @@ -31,7 +33,8 @@ public class OkHttpClientProviderTest { private static OkHttpClient buildClient(final String str) { final Config config = ConfigFactory.parseString(str); - final OkHttpClientProvider provider = new OkHttpClientProvider(config); + final Closer closer = Closer.create(); + final OkHttpClientProvider provider = new OkHttpClientProvider(config, closer); return provider.get(); }