From 6a6f8b937a82e7b58320aa49a96f28d57c9550be Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Tue, 25 Apr 2017 16:46:29 +0200 Subject: [PATCH] Remove support for OkHttp 2. Closes gh-85. --- spring-vault-core/pom.xml | 6 -- .../ClientHttpRequestFactoryFactory.java | 96 +++++-------------- ...RequestFactoryFactoryIntegrationTests.java | 21 +--- spring-vault-dependencies/pom.xml | 8 -- .../asciidoc/reference/client-support.adoc | 12 --- 5 files changed, 25 insertions(+), 118 deletions(-) diff --git a/spring-vault-core/pom.xml b/spring-vault-core/pom.xml index 1582dc36..e184a8aa 100644 --- a/spring-vault-core/pom.xml +++ b/spring-vault-core/pom.xml @@ -63,12 +63,6 @@ true - - com.squareup.okhttp - okhttp - true - - com.squareup.okhttp3 okhttp diff --git a/spring-vault-core/src/main/java/org/springframework/vault/config/ClientHttpRequestFactoryFactory.java b/spring-vault-core/src/main/java/org/springframework/vault/config/ClientHttpRequestFactoryFactory.java index 2b791474..6ccc0687 100644 --- a/spring-vault-core/src/main/java/org/springframework/vault/config/ClientHttpRequestFactoryFactory.java +++ b/spring-vault-core/src/main/java/org/springframework/vault/config/ClientHttpRequestFactoryFactory.java @@ -30,7 +30,6 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; -import com.squareup.okhttp.OkHttpClient; import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.SslProvider; import okhttp3.OkHttpClient.Builder; @@ -47,7 +46,6 @@ import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.Netty4ClientHttpRequestFactory; import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; -import org.springframework.http.client.OkHttpClientHttpRequestFactory; import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.util.Assert; import org.springframework.util.ClassUtils; @@ -72,10 +70,6 @@ public class ClientHttpRequestFactoryFactory { "org.apache.http.client.HttpClient", ClientHttpRequestFactoryFactory.class.getClassLoader()); - private static final boolean OKHTTP_PRESENT = ClassUtils.isPresent( - "com.squareup.okhttp.OkHttpClient", - ClientHttpRequestFactoryFactory.class.getClassLoader()); - private static final boolean OKHTTP3_PRESENT = ClassUtils.isPresent( "okhttp3.OkHttpClient", ClientHttpRequestFactoryFactory.class.getClassLoader()); @@ -109,10 +103,6 @@ public class ClientHttpRequestFactoryFactory { return OkHttp3.usingOkHttp3(options, sslConfiguration); } - if (OKHTTP_PRESENT) { - return OkHttp.usingOkHttp(options, sslConfiguration); - } - if (NETTY_PRESENT) { return Netty.usingNetty(options, sslConfiguration); } @@ -135,12 +125,14 @@ public class ClientHttpRequestFactoryFactory { static SSLContext getSSLContext(SslConfiguration sslConfiguration) throws GeneralSecurityException, IOException { - KeyManager[] keyManagers = sslConfiguration.getKeyStore() != null ? createKeyManagerFactory( - sslConfiguration.getKeyStoreConfiguration()).getKeyManagers() + KeyManager[] keyManagers = sslConfiguration.getKeyStore() != null + ? createKeyManagerFactory(sslConfiguration.getKeyStoreConfiguration()) + .getKeyManagers() : null; - TrustManager[] trustManagers = sslConfiguration.getTrustStore() != null ? createTrustManagerFactory( - sslConfiguration.getTrustStoreConfiguration()).getTrustManagers() + TrustManager[] trustManagers = sslConfiguration.getTrustStore() != null + ? createTrustManagerFactory(sslConfiguration.getTrustStoreConfiguration()) + .getTrustManagers() : null; SSLContext sslContext = SSLContext.getInstance("TLS"); @@ -151,8 +143,7 @@ public class ClientHttpRequestFactoryFactory { private static KeyManagerFactory createKeyManagerFactory( KeyStoreConfiguration keyStoreConfiguration) - throws GeneralSecurityException, - IOException { + throws GeneralSecurityException, IOException { KeyStore keyStore = KeyStore .getInstance(StringUtils.hasText(keyStoreConfiguration.getStoreType()) @@ -163,17 +154,15 @@ public class ClientHttpRequestFactoryFactory { KeyManagerFactory keyManagerFactory = KeyManagerFactory .getInstance(KeyManagerFactory.getDefaultAlgorithm()); - keyManagerFactory.init(keyStore, - keyStoreConfiguration.getStorePassword() == null ? new char[0] - : keyStoreConfiguration.getStorePassword()); + keyManagerFactory.init(keyStore, keyStoreConfiguration.getStorePassword() == null + ? new char[0] : keyStoreConfiguration.getStorePassword()); return keyManagerFactory; } private static TrustManagerFactory createTrustManagerFactory( KeyStoreConfiguration keyStoreConfiguration) - throws GeneralSecurityException, - IOException { + throws GeneralSecurityException, IOException { KeyStore trustStore = KeyStore .getInstance(StringUtils.hasText(keyStoreConfiguration.getStoreType()) @@ -190,8 +179,8 @@ public class ClientHttpRequestFactoryFactory { } private static void loadKeyStore(KeyStoreConfiguration keyStoreConfiguration, - KeyStore keyStore) throws IOException, NoSuchAlgorithmException, - CertificateException { + KeyStore keyStore) + throws IOException, NoSuchAlgorithmException, CertificateException { InputStream inputStream = null; try { @@ -218,8 +207,8 @@ public class ClientHttpRequestFactoryFactory { static class HttpComponents { static ClientHttpRequestFactory usingHttpComponents(ClientOptions options, - SslConfiguration sslConfiguration) throws GeneralSecurityException, - IOException { + SslConfiguration sslConfiguration) + throws GeneralSecurityException, IOException { HttpClientBuilder httpClientBuilder = HttpClients.custom(); @@ -248,60 +237,21 @@ public class ClientHttpRequestFactoryFactory { } /** - * {@link ClientHttpRequestFactory} for the {@link OkHttpClient}. - * - * @author Mark Paluch - */ - static class OkHttp { - - static ClientHttpRequestFactory usingOkHttp(ClientOptions options, - SslConfiguration sslConfiguration) throws GeneralSecurityException, - IOException { - - final OkHttpClient okHttpClient = new OkHttpClient(); - - OkHttpClientHttpRequestFactory requestFactory = new OkHttpClientHttpRequestFactory( - okHttpClient) { - - @Override - public void destroy() throws IOException { - - if (okHttpClient.getCache() != null) { - okHttpClient.getCache().close(); - } - - okHttpClient.getDispatcher().getExecutorService().shutdown(); - } - }; - - if (hasSslConfiguration(sslConfiguration)) { - okHttpClient.setSslSocketFactory(getSSLContext(sslConfiguration) - .getSocketFactory()); - } - - requestFactory.setConnectTimeout(options.getConnectionTimeout()); - requestFactory.setReadTimeout(options.getReadTimeout()); - - return requestFactory; - } - } - - /** - * {@link ClientHttpRequestFactory} for the {@link OkHttpClient}. + * {@link ClientHttpRequestFactory} for the {@link okhttp3.OkHttpClient}. * * @author Mark Paluch */ static class OkHttp3 { static ClientHttpRequestFactory usingOkHttp3(ClientOptions options, - SslConfiguration sslConfiguration) throws GeneralSecurityException, - IOException { + SslConfiguration sslConfiguration) + throws GeneralSecurityException, IOException { Builder builder = new Builder(); if (hasSslConfiguration(sslConfiguration)) { - builder.sslSocketFactory(getSSLContext(sslConfiguration) - .getSocketFactory()); + builder.sslSocketFactory( + getSSLContext(sslConfiguration).getSocketFactory()); } builder.connectTimeout(options.getConnectionTimeout(), TimeUnit.MILLISECONDS) @@ -319,8 +269,8 @@ public class ClientHttpRequestFactoryFactory { static class Netty { static ClientHttpRequestFactory usingNetty(ClientOptions options, - SslConfiguration sslConfiguration) throws GeneralSecurityException, - IOException { + SslConfiguration sslConfiguration) + throws GeneralSecurityException, IOException { final Netty4ClientHttpRequestFactory requestFactory = new Netty4ClientHttpRequestFactory(); @@ -339,8 +289,8 @@ public class ClientHttpRequestFactoryFactory { sslConfiguration.getKeyStoreConfiguration())); } - requestFactory.setSslContext(sslContextBuilder.sslProvider( - SslProvider.JDK).build()); + requestFactory.setSslContext( + sslContextBuilder.sslProvider(SslProvider.JDK).build()); } requestFactory.setConnectTimeout(options.getConnectionTimeout()); diff --git a/spring-vault-core/src/test/java/org/springframework/vault/config/ClientHttpRequestFactoryFactoryIntegrationTests.java b/spring-vault-core/src/test/java/org/springframework/vault/config/ClientHttpRequestFactoryFactoryIntegrationTests.java index fc83ba92..365525fd 100644 --- a/spring-vault-core/src/test/java/org/springframework/vault/config/ClientHttpRequestFactoryFactoryIntegrationTests.java +++ b/spring-vault-core/src/test/java/org/springframework/vault/config/ClientHttpRequestFactoryFactoryIntegrationTests.java @@ -25,11 +25,9 @@ import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.Netty4ClientHttpRequestFactory; import org.springframework.http.client.OkHttp3ClientHttpRequestFactory; -import org.springframework.http.client.OkHttpClientHttpRequestFactory; import org.springframework.vault.client.VaultEndpoint; import org.springframework.vault.config.ClientHttpRequestFactoryFactory.HttpComponents; import org.springframework.vault.config.ClientHttpRequestFactoryFactory.Netty; -import org.springframework.vault.config.ClientHttpRequestFactoryFactory.OkHttp; import org.springframework.vault.config.ClientHttpRequestFactoryFactory.OkHttp3; import org.springframework.vault.support.ClientOptions; import org.springframework.vault.util.Settings; @@ -78,21 +76,6 @@ public class ClientHttpRequestFactoryFactoryIntegrationTests { ((DisposableBean) factory).destroy(); } - @Test - public void okHttpClientShouldWork() throws Exception { - - ClientHttpRequestFactory factory = OkHttp.usingOkHttp(new ClientOptions(), - Settings.createSslConfiguration()); - RestTemplate template = new RestTemplate(factory); - - String response = request(template); - - assertThat(factory).isInstanceOf(OkHttpClientHttpRequestFactory.class); - assertThat(response).isNotNull().contains("initialized"); - - ((DisposableBean) factory).destroy(); - } - @Test public void okHttp3ClientShouldWork() throws Exception { @@ -112,8 +95,8 @@ public class ClientHttpRequestFactoryFactoryIntegrationTests { // Uninitialized and sealed can cause status 500 try { - ResponseEntity responseEntity = template.exchange(url, - HttpMethod.GET, null, String.class); + ResponseEntity responseEntity = template.exchange(url, HttpMethod.GET, + null, String.class); return responseEntity.getBody(); } catch (HttpStatusCodeException e) { diff --git a/spring-vault-dependencies/pom.xml b/spring-vault-dependencies/pom.xml index a98a66c8..f9d6dba5 100644 --- a/spring-vault-dependencies/pom.xml +++ b/spring-vault-dependencies/pom.xml @@ -62,7 +62,6 @@ 4.5.3 4.4.6 4.1.9.Final - 2.7.5 3.7.0 2.9.0.pr2 @@ -112,13 +111,6 @@ true - - com.squareup.okhttp - okhttp - ${okhttp.version} - true - - com.squareup.okhttp3 okhttp diff --git a/src/main/asciidoc/reference/client-support.adoc b/src/main/asciidoc/reference/client-support.adoc index 2c85435e..3786c282 100644 --- a/src/main/asciidoc/reference/client-support.adoc +++ b/src/main/asciidoc/reference/client-support.adoc @@ -11,7 +11,6 @@ Spring Vault supports following HTTP clients: * Java's builtin `HttpURLConnection` (default client) * Apache Http Components * Netty -* OkHttp 2 * OkHttp 3 Using a specific client requires the according dependency to be available on the classpath @@ -55,17 +54,6 @@ dependencies to your project. You can omit the version number if using ---- ==== -.Square OkHttp 2 -==== -[source, xml] ----- - - com.squareup.okhttp - okhttp - ----- -==== - .Square OkHttp 3 ==== [source, xml]