From ce808d7a45768aa8f237a5a174e3f8511d261826 Mon Sep 17 00:00:00 2001 From: detmerl Date: Wed, 14 Aug 2024 09:06:34 -0400 Subject: [PATCH 01/24] provide HttpTransport support for google certificates with apache HTTP client v5 --- google-api-client-apache-v5/pom.xml | 201 ++++++++++++++++++ .../apache/v5/GoogleApache5HttpTransport.java | 149 +++++++++++++ .../googleapis/apache/v5/package-info.java | 20 ++ .../v5/GoogleApache5HttpTransportTest.java | 43 ++++ .../v5/ITGoogleApache5HttpTransportTest.java | 50 +++++ google-api-client/pom.xml | 12 ++ .../mtls/MtlsTransportBaseTest.java | 10 +- pom.xml | 1 + 8 files changed, 481 insertions(+), 5 deletions(-) create mode 100644 google-api-client-apache-v5/pom.xml create mode 100644 google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java create mode 100644 google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java create mode 100644 google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java create mode 100644 google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml new file mode 100644 index 000000000..c92bf1feb --- /dev/null +++ b/google-api-client-apache-v5/pom.xml @@ -0,0 +1,201 @@ + + + 4.0.0 + + com.google.api-client + google-api-client-parent + 2.6.1-SNAPSHOT + + + google-api-client-apache-v5 + + Apache extensions to the Google APIs Client Library for Java + + + + kr.motd.maven + os-maven-plugin + 1.7.1 + + + + + org.apache.maven.plugins + maven-resources-plugin + + + + resources + + + + + + maven-javadoc-plugin + + + https://docs.oracle.com/javase/7/docs/api/ + https://cloud.google.com/appengine/docs/standard/java/javadoc/ + https://googleapis.dev/java/google-http-client/${project.http.version}/ + https://googleapis.dev/java/google-oauth-client/${project.oauth.version}/ + + ${project.name} ${project.version} + ${project.artifactId} ${project.version} + + + + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + true + + + google.api.client + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + org.apache.felix + maven-bundle-plugin + 5.1.9 + + + bundle-manifest + process-classes + + manifest + + + + + + https://developers.google.com/api-client-library/java/ + Google HTTP transport wrapper for the Apache Http Client. + com.google.api.client.googleapis.apache + + + + + maven-source-plugin + + + source-jar + + jar + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + commons-codec:commons-codec + + + + org.apache.maven.plugins + maven-surefire-plugin + + + !AbstractGoogleClientTest#testGoogleClientBuilder_noCustomUniverseDomain_universeDomainEnvVar+testGoogleClientBuilder_customUniverseDomain_universeDomainEnvVar + + + + + + + src/main/resources + + + src/main/properties + true + + + + + + junit + junit + test + + + + commons-codec + commons-codec + + + + com.google.api-client + google-api-client + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + + + com.google.http-client + google-http-client-apache-v5 + 1.44.3-SNAPSHOT + + + org.apache.httpcomponents.client5 + httpclient5 + 5.3.1 + + + org.apache.httpcomponents.core5 + httpcore5-h2 + 5.2.4 + + + com.google.http-client + google-http-client + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + + + junit + junit + test + + + org.mockito + mockito-core + test + + + com.google.api-client + google-api-client + test-jar + test + 2.6.1-SNAPSHOT + + + + + + diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java new file mode 100644 index 000000000..b18fd4a8e --- /dev/null +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java @@ -0,0 +1,149 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.api.client.googleapis.apache.v5; + +import com.google.api.client.googleapis.GoogleUtils; +import com.google.api.client.googleapis.mtls.MtlsProvider; +import com.google.api.client.googleapis.mtls.MtlsUtils; +import com.google.api.client.googleapis.util.Utils; +import com.google.api.client.http.apache.v5.Apache5HttpTransport; +import com.google.common.annotations.Beta; +import com.google.api.client.util.SslUtils; +import com.google.common.annotations.VisibleForTesting; +import org.apache.hc.client5.http.config.ConnectionConfig; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.socket.LayeredConnectionSocketFactory; +import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.client5.http.impl.routing.SystemDefaultRoutePlanner; +import org.apache.hc.client5.http.socket.ConnectionSocketFactory; +import org.apache.hc.core5.http.config.Registry; +import org.apache.hc.core5.http.config.RegistryBuilder; + +import javax.net.ssl.SSLContext; +import java.io.IOException; +import java.net.ProxySelector; +import java.security.GeneralSecurityException; +import java.security.KeyStore; +import java.util.concurrent.TimeUnit; + +/** + * Utilities for Google APIs based on {@link ApacheHttpTransport}. + * + * @since 1.31 + */ +public final class GoogleApache5HttpTransport { + + /** + * Returns a new instance of {@link ApacheHttpTransport} that uses {@link + * GoogleUtils#getCertificateTrustStore()} for the trusted certificates. If + * `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is set to "true", and the default + * client certificate key store from {@link Utils#loadDefaultMtlsKeyStore()} is not null, then the + * transport uses the default client certificate and is mutual TLS. + */ + public static Apache5HttpTransport newTrustedTransport() + throws GeneralSecurityException, IOException { + return newTrustedTransport(MtlsUtils.getDefaultMtlsProvider()); + } + + /** + * {@link Beta}
+ * Returns a new instance of {@link ApacheHttpTransport} that uses {@link + * GoogleUtils#getCertificateTrustStore()} for the trusted certificates. mtlsProvider can be used + * to configure mutual TLS for the transport. + * + * @param mtlsProvider MtlsProvider to configure mutual TLS for the transport + */ + @Beta + public static Apache5HttpTransport newTrustedTransport(MtlsProvider mtlsProvider) + throws GeneralSecurityException, IOException { + + SocketFactoryRegistryHandler handler = new SocketFactoryRegistryHandler(mtlsProvider); + + PoolingHttpClientConnectionManager connectionManager = + new PoolingHttpClientConnectionManager(handler.getSocketFactoryRegistry()); + connectionManager.setMaxTotal(200); + connectionManager.setDefaultMaxPerRoute(20); + connectionManager.setDefaultConnectionConfig( + ConnectionConfig.custom() + .setTimeToLive(-1, TimeUnit.MILLISECONDS) + .setValidateAfterInactivity(-1L, TimeUnit.MILLISECONDS) + .build()); + + CloseableHttpClient client = + HttpClients.custom() + .useSystemProperties() + .setConnectionManager(connectionManager) + .setRoutePlanner(new SystemDefaultRoutePlanner(ProxySelector.getDefault())) + .disableRedirectHandling() + .disableAutomaticRetries() + .build(); + + return new Apache5HttpTransport(client, handler.isMtls()); + } + + @VisibleForTesting + static class SocketFactoryRegistryHandler { + private final Registry socketFactoryRegistry; + private final boolean isMtls; + + public SocketFactoryRegistryHandler(MtlsProvider mtlsProvider) + throws GeneralSecurityException, IOException { + KeyStore mtlsKeyStore = null; + String mtlsKeyStorePassword = null; + if (mtlsProvider.useMtlsClientCertificate()) { + mtlsKeyStore = mtlsProvider.getKeyStore(); + mtlsKeyStorePassword = mtlsProvider.getKeyStorePassword(); + } + + // Use the included trust store + KeyStore trustStore = GoogleUtils.getCertificateTrustStore(); + SSLContext sslContext = SslUtils.getTlsSslContext(); + + if (mtlsKeyStore != null && mtlsKeyStorePassword != null) { + this.isMtls = true; + SslUtils.initSslContext( + sslContext, + trustStore, + SslUtils.getPkixTrustManagerFactory(), + mtlsKeyStore, + mtlsKeyStorePassword, + SslUtils.getDefaultKeyManagerFactory()); + } else { + this.isMtls = false; + SslUtils.initSslContext(sslContext, trustStore, SslUtils.getPkixTrustManagerFactory()); + } + LayeredConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext); + + this.socketFactoryRegistry = + RegistryBuilder.create() + .register("http", PlainConnectionSocketFactory.getSocketFactory()) + .register("https", socketFactory) + .build(); + } + + public Registry getSocketFactoryRegistry() { + return this.socketFactoryRegistry; + } + + public boolean isMtls() { + return this.isMtls; + } + } + + private GoogleApache5HttpTransport() {} +} diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java new file mode 100644 index 000000000..25faf0191 --- /dev/null +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +/** + * Google APIs support based on the Apache HTTP Client v5. + * + * @since 1.31 + */ +package com.google.api.client.googleapis.apache.v5; diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java new file mode 100644 index 000000000..a7d59c51e --- /dev/null +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + +package com.google.api.client.googleapis.apache.v5; + +import com.google.api.client.googleapis.mtls.MtlsProvider; +import com.google.api.client.googleapis.mtls.MtlsTransportBaseTest; +import com.google.api.client.http.HttpTransport; +import org.junit.Test; + + +import java.io.IOException; +import java.security.GeneralSecurityException; + +import static org.junit.Assert.*; + +public class GoogleApache5HttpTransportTest extends MtlsTransportBaseTest { + @Override + protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider) + throws GeneralSecurityException, IOException { + return GoogleApache5HttpTransport.newTrustedTransport(mtlsProvider); + } + + @Test + public void socketFactoryRegistryHandlerTest() throws GeneralSecurityException, IOException { + MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), "", false); + GoogleApache5HttpTransport.SocketFactoryRegistryHandler handler = new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); + assertNotNull(handler.getSocketFactoryRegistry().lookup("http")); + assertNotNull(handler.getSocketFactoryRegistry().lookup("https")); + assertTrue(handler.isMtls()); + } +} diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java new file mode 100644 index 000000000..e45c55e47 --- /dev/null +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -0,0 +1,50 @@ +package com.google.api.client.googleapis.apache.v5; + +import com.google.api.client.http.apache.v5.Apache5HttpTransport; +import org.apache.hc.client5.http.classic.methods.HttpGet; +import org.junit.Test; +import javax.net.ssl.SSLHandshakeException; +import java.io.IOException; +import java.security.GeneralSecurityException; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.fail; + +public class ITGoogleApache5HttpTransportTest { + + @Test + public void testHttpRequestFailsWhenMakingRequestToNonGoogleSite() + throws GeneralSecurityException, IOException { + Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); + HttpGet httpGet = new HttpGet("https://www.bing.com/"); + + assertThrows( + SSLHandshakeException.class, + () -> + apache5HttpTransport + .getHttpClient() + .execute( + httpGet, + response -> { + fail( + "Should not have been able to complete SSL request to site without google certificates."); + return null; + })); + } + + @Test + public void testHttpRequestPassesWhenMakingRequestToGoogleSite() throws Exception { + Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); + HttpGet httpGet = new HttpGet("https://www.google.com/"); + + apache5HttpTransport + .getHttpClient() + .execute( + httpGet, + response -> { + assertEquals(200, response.getCode()); + return null; + }); + } +} diff --git a/google-api-client/pom.xml b/google-api-client/pom.xml index 8d73dbad4..d42452c6d 100644 --- a/google-api-client/pom.xml +++ b/google-api-client/pom.xml @@ -87,6 +87,18 @@ jar + + Jar Tests Package + package + + test-jar + + + + **/Mtls/** + + + diff --git a/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java b/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java index 096ff4abf..86b1a77a2 100644 --- a/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java +++ b/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java @@ -35,11 +35,11 @@ protected KeyStore createTestMtlsKeyStore() throws IOException, GeneralSecurityE return SecurityUtils.createMtlsKeyStore(certAndKey); } - protected static class TestMtlsProvider implements MtlsProvider { - private boolean useClientCertificate; - private KeyStore keyStore; - private String keyStorePassword; - private boolean throwExceptionForGetKeyStore; + public static class TestMtlsProvider implements MtlsProvider { + private final boolean useClientCertificate; + private final KeyStore keyStore; + private final String keyStorePassword; + private final boolean throwExceptionForGetKeyStore; public TestMtlsProvider( boolean useClientCertificate, diff --git a/pom.xml b/pom.xml index 1d332f0f5..a7d286989 100644 --- a/pom.xml +++ b/pom.xml @@ -80,6 +80,7 @@ google-api-client-jackson2 google-api-client-protobuf google-api-client-xml + google-api-client-apache-v5 From 7233bae9c4674c52617cb6326080648a34baa07c Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 10:21:48 -0400 Subject: [PATCH 02/24] cleaned up IT tests --- docs/component-modules.md | 6 ++++++ google-api-client-apache-v5/pom.xml | 14 ++++++-------- .../v5/ITGoogleApache5HttpTransportTest.java | 13 +++++++++++-- .../services/AbstractGoogleClientRequest.java | 1 + pom.xml | 6 +++--- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/docs/component-modules.md b/docs/component-modules.md index 7277febc0..492aefa62 100644 --- a/docs/component-modules.md +++ b/docs/component-modules.md @@ -55,4 +55,10 @@ XML extensions to the Google API Client Library for Java (`google-api-client-xml`). This module depends on `google-api-client` and `google-http-client-xml`. +## google-api-client-apache-v5 + +Provides Apache extension to the Google HTTP Client Library for Java (`google-api-client-apache-v5`) that +returns an implementation of `HttpTransport` based on the Apache HTTP Client with Google certificates loaded in truststore. This module depends +on `google-http-client`. + [protobuf]: https://developers.google.com/protocol-buffers/docs/overview diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index c92bf1feb..7292082bc 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -126,13 +126,7 @@ junit test - - - commons-codec - commons-codec - + com.google.api-client @@ -194,7 +188,11 @@ test 2.6.1-SNAPSHOT - + + org.mock-server + mockserver-netty + 5.14.0 + diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index e45c55e47..6aaa90620 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -6,6 +6,8 @@ import javax.net.ssl.SSLHandshakeException; import java.io.IOException; import java.security.GeneralSecurityException; +import org.mockserver.integration.ClientAndServer; +import org.mockserver.socket.PortFactory; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; @@ -14,10 +16,15 @@ public class ITGoogleApache5HttpTransportTest { @Test - public void testHttpRequestFailsWhenMakingRequestToNonGoogleSite() + public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() throws GeneralSecurityException, IOException { + int port = PortFactory.findFreePort(); + // MockServer handles all SSL traffic transparently by auto-generating an appropriate SSL + // certificate using their own cert + // https://github.com/mock-server/mockserver/blob/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem + ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); - HttpGet httpGet = new HttpGet("https://www.bing.com/"); + HttpGet httpGet = new HttpGet("https://localhost:" + port + "/"); assertThrows( SSLHandshakeException.class, @@ -31,6 +38,8 @@ public void testHttpRequestFailsWhenMakingRequestToNonGoogleSite() "Should not have been able to complete SSL request to site without google certificates."); return null; })); + + mockServer.stop(); } @Test diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java index c9a7b5967..8ca1baa32 100644 --- a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java +++ b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java @@ -636,6 +636,7 @@ public T execute() throws IOException { * @return input stream of the response content */ public InputStream executeAsInputStream() throws IOException { + //InputStream is return executeUnparsed().getContent(); } diff --git a/pom.xml b/pom.xml index a7d286989..bb730de10 100644 --- a/pom.xml +++ b/pom.xml @@ -268,8 +268,8 @@ maven-compiler-plugin 3.13.0 - 1.7 - 1.7 + 1.8 + 1.8 @@ -385,7 +385,7 @@ maven-javadoc-plugin none - 7 + 8 From 84e136914cb22f7c50ce2dab590128ad3c6f69dc Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 10:26:53 -0400 Subject: [PATCH 03/24] cleaned up changes --- .../googleapis/apache/v5/GoogleApache5HttpTransport.java | 4 ++-- .../api/client/googleapis/apache/v5/package-info.java | 2 +- .../googleapis/services/AbstractGoogleClientRequest.java | 1 - pom.xml | 6 +++--- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java index b18fd4a8e..da778bfc6 100644 --- a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java @@ -49,7 +49,7 @@ public final class GoogleApache5HttpTransport { /** - * Returns a new instance of {@link ApacheHttpTransport} that uses {@link + * Returns a new instance of {@link Apache5HttpTransport} that uses {@link * GoogleUtils#getCertificateTrustStore()} for the trusted certificates. If * `GOOGLE_API_USE_CLIENT_CERTIFICATE` environment variable is set to "true", and the default * client certificate key store from {@link Utils#loadDefaultMtlsKeyStore()} is not null, then the @@ -62,7 +62,7 @@ public static Apache5HttpTransport newTrustedTransport() /** * {@link Beta}
- * Returns a new instance of {@link ApacheHttpTransport} that uses {@link + * Returns a new instance of {@link Apache5HttpTransport} that uses {@link * GoogleUtils#getCertificateTrustStore()} for the trusted certificates. mtlsProvider can be used * to configure mutual TLS for the transport. * diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java index 25faf0191..b91e3407b 100644 --- a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java @@ -15,6 +15,6 @@ /** * Google APIs support based on the Apache HTTP Client v5. * - * @since 1.31 + * @since 2.6.1 */ package com.google.api.client.googleapis.apache.v5; diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java index 8ca1baa32..c9a7b5967 100644 --- a/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java +++ b/google-api-client/src/main/java/com/google/api/client/googleapis/services/AbstractGoogleClientRequest.java @@ -636,7 +636,6 @@ public T execute() throws IOException { * @return input stream of the response content */ public InputStream executeAsInputStream() throws IOException { - //InputStream is return executeUnparsed().getContent(); } diff --git a/pom.xml b/pom.xml index bb730de10..a7d286989 100644 --- a/pom.xml +++ b/pom.xml @@ -268,8 +268,8 @@ maven-compiler-plugin 3.13.0 - 1.8 - 1.8 + 1.7 + 1.7 @@ -385,7 +385,7 @@ maven-javadoc-plugin none - 8 + 7 From 88a874aad74fa2bd547399000cf0b9a0a710fb65 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 10:44:55 -0400 Subject: [PATCH 04/24] update to use new http-client version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a7d286989..14cc06fed 100644 --- a/pom.xml +++ b/pom.xml @@ -514,7 +514,7 @@ UTF-8 - 1.44.2 + 1.45.0 4.4.16 4.5.14 1.17.0 From 4e53dcae9c6be152a60a25aa45a3a6d7162e6f1a Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 10:50:33 -0400 Subject: [PATCH 05/24] update to use correct google-http-client-apache-v5 version --- google-api-client-apache-v5/pom.xml | 2 +- .../google/api/client/googleapis/mtls/MtlsProvider.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 7292082bc..116609f17 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -145,7 +145,7 @@ com.google.http-client google-http-client-apache-v5 - 1.44.3-SNAPSHOT + 1.45.0 org.apache.httpcomponents.client5 diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java b/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java index cb0813b45..7fa745ded 100644 --- a/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java +++ b/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java @@ -22,9 +22,10 @@ /** * {@link Beta}
* Provider interface for mutual TLS. It is used in {@link - * GoogleApacheHttpTransport#newTrustedTransport(MtlsProvider)} and {@link - * GoogleNetHttpTransport#newTrustedTransport(MtlsProvider)} to configure the mutual TLS in the - * transport. + * GoogleApacheHttpTransport#newTrustedTransport(MtlsProvider)}, {@link + * GoogleApache5HttpTransport#newTrustedTransport(MtlsProvider)} and {@link + * GoogleNetHttpTransport#newTrustedTransport(MtlsProvider)} + * to configure the mutual TLS in the transport. * * @since 1.31 */ From 9cdab695981e87ec697df6a8139cb8b69acd0877 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 11:33:58 -0400 Subject: [PATCH 06/24] add checkstyle to apache 5 module + fixed lint issues --- google-api-client-apache-v5/pom.xml | 26 ++++++-- .../checkstyle/checkstyle-suppressions.xml | 10 +++ .../apache/v5/GoogleApache5HttpTransport.java | 27 ++++---- .../googleapis/apache/v5/package-info.java | 2 +- .../v5/GoogleApache5HttpTransportTest.java | 17 ++--- .../v5/ITGoogleApache5HttpTransportTest.java | 63 +++++++++++++------ .../client/googleapis/mtls/MtlsProvider.java | 4 +- 7 files changed, 100 insertions(+), 49 deletions(-) create mode 100644 google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 116609f17..33d30abef 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -76,7 +76,7 @@ https://developers.google.com/api-client-library/java/ - Google HTTP transport wrapper for the Apache Http Client. + Google HTTP transport wrapper for the Apache 5 Http Client. com.google.api.client.googleapis.apache @@ -103,10 +103,26 @@ org.apache.maven.plugins maven-surefire-plugin - - - !AbstractGoogleClientTest#testGoogleClientBuilder_noCustomUniverseDomain_universeDomainEnvVar+testGoogleClientBuilder_customUniverseDomain_universeDomainEnvVar - + + + org.apache.maven.plugins + maven-checkstyle-plugin + + + validate-google-style + validate + + check + + + google_checks.xml + src/checkstyle/checkstyle-suppressions.xml + true + true + warning + + + diff --git a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml new file mode 100644 index 000000000..51856527e --- /dev/null +++ b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java index da778bfc6..675890bb6 100644 --- a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -19,32 +19,31 @@ import com.google.api.client.googleapis.mtls.MtlsUtils; import com.google.api.client.googleapis.util.Utils; import com.google.api.client.http.apache.v5.Apache5HttpTransport; -import com.google.common.annotations.Beta; import com.google.api.client.util.SslUtils; +import com.google.common.annotations.Beta; import com.google.common.annotations.VisibleForTesting; +import java.io.IOException; +import java.net.ProxySelector; +import java.security.GeneralSecurityException; +import java.security.KeyStore; +import java.util.concurrent.TimeUnit; +import javax.net.ssl.SSLContext; import org.apache.hc.client5.http.config.ConnectionConfig; -import org.apache.hc.client5.http.impl.classic.HttpClients; -import org.apache.hc.client5.http.socket.LayeredConnectionSocketFactory; -import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory; -import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; import org.apache.hc.client5.http.impl.routing.SystemDefaultRoutePlanner; import org.apache.hc.client5.http.socket.ConnectionSocketFactory; +import org.apache.hc.client5.http.socket.LayeredConnectionSocketFactory; +import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; import org.apache.hc.core5.http.config.Registry; import org.apache.hc.core5.http.config.RegistryBuilder; -import javax.net.ssl.SSLContext; -import java.io.IOException; -import java.net.ProxySelector; -import java.security.GeneralSecurityException; -import java.security.KeyStore; -import java.util.concurrent.TimeUnit; - /** * Utilities for Google APIs based on {@link ApacheHttpTransport}. * - * @since 1.31 + * @since 2.6.1 */ public final class GoogleApache5HttpTransport { diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java index b91e3407b..f4a1e9131 100644 --- a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java index a7d59c51e..80029bdb3 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2024 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -14,16 +14,15 @@ package com.google.api.client.googleapis.apache.v5; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import com.google.api.client.googleapis.mtls.MtlsProvider; import com.google.api.client.googleapis.mtls.MtlsTransportBaseTest; import com.google.api.client.http.HttpTransport; -import org.junit.Test; - - import java.io.IOException; import java.security.GeneralSecurityException; - -import static org.junit.Assert.*; +import org.junit.Test; public class GoogleApache5HttpTransportTest extends MtlsTransportBaseTest { @Override @@ -34,8 +33,10 @@ protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider) @Test public void socketFactoryRegistryHandlerTest() throws GeneralSecurityException, IOException { - MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), "", false); - GoogleApache5HttpTransport.SocketFactoryRegistryHandler handler = new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); + MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), + "", false); + GoogleApache5HttpTransport.SocketFactoryRegistryHandler handler = + new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); assertNotNull(handler.getSocketFactoryRegistry().lookup("http")); assertNotNull(handler.getSocketFactoryRegistry().lookup("https")); assertTrue(handler.isMtls()); diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 6aaa90620..7a5d39d2f 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -1,18 +1,34 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License + * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing permissions and limitations under + * the License. + */ + package com.google.api.client.googleapis.apache.v5; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + import com.google.api.client.http.apache.v5.Apache5HttpTransport; -import org.apache.hc.client5.http.classic.methods.HttpGet; -import org.junit.Test; -import javax.net.ssl.SSLHandshakeException; import java.io.IOException; import java.security.GeneralSecurityException; +import javax.net.ssl.SSLHandshakeException; +import org.apache.hc.client5.http.classic.methods.HttpGet; +import org.apache.hc.core5.http.ClassicHttpResponse; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; +import org.junit.Test; import org.mockserver.integration.ClientAndServer; import org.mockserver.socket.PortFactory; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.fail; - public class ITGoogleApache5HttpTransportTest { @Test @@ -25,19 +41,28 @@ public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); HttpGet httpGet = new HttpGet("https://localhost:" + port + "/"); + Exception exception = null; + try { + apache5HttpTransport + .getHttpClient() + .execute( + httpGet, + new HttpClientResponseHandler() { + @Override + public Void handleResponse(ClassicHttpResponse response) { + fail( + "Should not have been able to complete SSL request on non google site." + ); + return null; + } + }); + fail("Expected SSLHandshakeException was not thrown"); + } catch (SSLHandshakeException e) { + exception = e; + } - assertThrows( - SSLHandshakeException.class, - () -> - apache5HttpTransport - .getHttpClient() - .execute( - httpGet, - response -> { - fail( - "Should not have been able to complete SSL request to site without google certificates."); - return null; - })); + assertNotNull(exception); + assertEquals(exception.getClass(), SSLHandshakeException.class); mockServer.stop(); } diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java b/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java index 7fa745ded..abec44b7a 100644 --- a/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java +++ b/google-api-client/src/main/java/com/google/api/client/googleapis/mtls/MtlsProvider.java @@ -24,8 +24,8 @@ * Provider interface for mutual TLS. It is used in {@link * GoogleApacheHttpTransport#newTrustedTransport(MtlsProvider)}, {@link * GoogleApache5HttpTransport#newTrustedTransport(MtlsProvider)} and {@link - * GoogleNetHttpTransport#newTrustedTransport(MtlsProvider)} - * to configure the mutual TLS in the transport. + * GoogleNetHttpTransport#newTrustedTransport(MtlsProvider)} to configure the mutual TLS in the + * transport. * * @since 1.31 */ From 7493d89722f9f8a6355cf81ca7545e146be16642 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 11:41:49 -0400 Subject: [PATCH 07/24] removed lambda expressions --- .../apache/v5/ITGoogleApache5HttpTransportTest.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 7a5d39d2f..e73435ff3 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -76,9 +76,12 @@ public void testHttpRequestPassesWhenMakingRequestToGoogleSite() throws Exceptio .getHttpClient() .execute( httpGet, - response -> { - assertEquals(200, response.getCode()); - return null; + new HttpClientResponseHandler() { + @Override + public Void handleResponse(ClassicHttpResponse response) { + assertEquals(200, response.getCode()); + return null; + } }); } } From 339e85ea0f043b36c08c79f1ad431c44b09bbaf9 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 11:59:05 -0400 Subject: [PATCH 08/24] removed unused pom plugins --- google-api-client-apache-v5/pom.xml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 33d30abef..71f55e087 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -92,18 +92,6 @@
- - - org.apache.maven.plugins - maven-dependency-plugin - - commons-codec:commons-codec - - - - org.apache.maven.plugins - maven-surefire-plugin - org.apache.maven.plugins maven-checkstyle-plugin From 2759ec590e75d39156889f50286bc8597e457357 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 12:03:39 -0400 Subject: [PATCH 09/24] fixed lint --- google-api-client-apache-v5/pom.xml | 377 +++++++++--------- .../mtls/MtlsTransportBaseTest.java | 2 +- 2 files changed, 187 insertions(+), 192 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 71f55e087..d2dcc220c 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -8,196 +8,191 @@ google-api-client-parent 2.6.1-SNAPSHOT - google-api-client-apache-v5 + Apache extensions to the Google APIs Client Library for Java + + + + kr.motd.maven + os-maven-plugin + 1.7.1 + + + + + org.apache.maven.plugins + maven-resources-plugin + + + + resources + + + + + + maven-javadoc-plugin + + + https://docs.oracle.com/javase/7/docs/api/ + https://cloud.google.com/appengine/docs/standard/java/javadoc/ + https://googleapis.dev/java/google-http-client/${project.http.version}/ + https://googleapis.dev/java/google-oauth-client/${project.oauth.version}/ + + ${project.name} ${project.version} + ${project.artifactId} ${project.version} + + + + maven-jar-plugin + + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + true + + + google.api.client + + ${project.build.outputDirectory}/META-INF/MANIFEST.MF + + + + + org.apache.felix + maven-bundle-plugin + 5.1.9 + + + bundle-manifest + process-classes + + manifest + + + + + + https://developers.google.com/api-client-library/java/ + Google HTTP transport wrapper for the Apache 5 Http Client. + + com.google.api.client.googleapis.apache + + + + + maven-source-plugin + + + source-jar + + jar + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + + validate-google-style + validate + + check + + + google_checks.xml + src/checkstyle/checkstyle-suppressions.xml + true + true + warning + + + + + - Apache extensions to the Google APIs Client Library for Java - - - - kr.motd.maven - os-maven-plugin - 1.7.1 - - - - - org.apache.maven.plugins - maven-resources-plugin - - - - resources - - - - - - maven-javadoc-plugin - - - https://docs.oracle.com/javase/7/docs/api/ - https://cloud.google.com/appengine/docs/standard/java/javadoc/ - https://googleapis.dev/java/google-http-client/${project.http.version}/ - https://googleapis.dev/java/google-oauth-client/${project.oauth.version}/ - - ${project.name} ${project.version} - ${project.artifactId} ${project.version} - - - - maven-jar-plugin - - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - true - - - google.api.client - - ${project.build.outputDirectory}/META-INF/MANIFEST.MF - - - - - org.apache.felix - maven-bundle-plugin - 5.1.9 - - - bundle-manifest - process-classes - - manifest - - - - - - https://developers.google.com/api-client-library/java/ - Google HTTP transport wrapper for the Apache 5 Http Client. - com.google.api.client.googleapis.apache - - - - - maven-source-plugin - - - source-jar - - jar - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - - validate-google-style - validate - - check - - - google_checks.xml - src/checkstyle/checkstyle-suppressions.xml - true - true - warning - - - - - - - - - src/main/resources - - - src/main/properties - true - - - - - - junit - junit - test - - - - - com.google.api-client - google-api-client - - - org.apache.httpcomponents - httpcore - - - org.apache.httpcomponents - httpclient - - - - - com.google.http-client - google-http-client-apache-v5 - 1.45.0 - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - - - org.apache.httpcomponents.core5 - httpcore5-h2 - 5.2.4 - - - com.google.http-client - google-http-client - - - org.apache.httpcomponents - httpcore - - - org.apache.httpcomponents - httpclient - - - - - junit - junit - test - - - org.mockito - mockito-core - test - - - com.google.api-client - google-api-client - test-jar - test - 2.6.1-SNAPSHOT - - - org.mock-server - mockserver-netty - 5.14.0 - - - - - + + + src/main/resources + + + src/main/properties + true + + + + + + junit + junit + test + + + com.google.api-client + google-api-client + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + + + com.google.http-client + google-http-client-apache-v5 + 1.45.0 + + + org.apache.httpcomponents.client5 + httpclient5 + 5.3.1 + + + org.apache.httpcomponents.core5 + httpcore5-h2 + 5.2.4 + + + com.google.http-client + google-http-client + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + + + junit + junit + test + + + org.mockito + mockito-core + test + + + com.google.api-client + google-api-client + test-jar + test + 2.6.1-SNAPSHOT + + + org.mock-server + mockserver-netty + 5.14.0 + + + diff --git a/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java b/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java index 86b1a77a2..87b44fdf4 100644 --- a/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java +++ b/google-api-client/src/test/java/com/google/api/client/googleapis/mtls/MtlsTransportBaseTest.java @@ -35,7 +35,7 @@ protected KeyStore createTestMtlsKeyStore() throws IOException, GeneralSecurityE return SecurityUtils.createMtlsKeyStore(certAndKey); } - public static class TestMtlsProvider implements MtlsProvider { + public static class TestMtlsProvider implements MtlsProvider { private final boolean useClientCertificate; private final KeyStore keyStore; private final String keyStorePassword; From fe19e21d1d35165489d836f0639f8cd1cc1c6cbf Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 12:08:07 -0400 Subject: [PATCH 10/24] trying to get lint to pass --- google-api-client-apache-v5/pom.xml | 8 ++++++++ .../src/checkstyle/checkstyle-suppressions.xml | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index d2dcc220c..185657d3b 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -91,6 +91,14 @@
+ + org.apache.maven.plugins + maven-dependency-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + org.apache.maven.plugins maven-checkstyle-plugin diff --git a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml index 51856527e..90b3adc80 100644 --- a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml +++ b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml @@ -4,7 +4,7 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - + + + From 8b5407823eb8077d1ffa041e0bec10f3ed2757d5 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 12:21:26 -0400 Subject: [PATCH 11/24] fix maven dependencies --- google-api-client-apache-v5/pom.xml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 185657d3b..f7a0c995f 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -156,6 +156,11 @@ google-http-client-apache-v5 1.45.0 + + com.google.guava + guava + ${project.guava.version} + org.apache.httpcomponents.client5 httpclient5 @@ -163,7 +168,7 @@ org.apache.httpcomponents.core5 - httpcore5-h2 + httpcore5 5.2.4 @@ -185,11 +190,11 @@ junit test - + com.google.api-client google-api-client @@ -198,9 +203,16 @@ 2.6.1-SNAPSHOT + org.mock-server + mockserver-core + 5.14.0 + compile + + org.mock-server mockserver-netty 5.14.0 + compile From 06f05e48cf90fd5bf0a848441385d594949ed8ff Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 13:25:22 -0400 Subject: [PATCH 12/24] remove netty server as its has a security vunerability --- google-api-client-apache-v5/pom.xml | 19 +------------------ .../checkstyle/checkstyle-suppressions.xml | 6 +++--- .../v5/ITGoogleApache5HttpTransportTest.java | 11 +---------- 3 files changed, 5 insertions(+), 31 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index f7a0c995f..33974e14e 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -111,7 +111,7 @@ google_checks.xml - src/checkstyle/checkstyle-suppressions.xml + ${project.basedir}/src/checkstyle/checkstyle-suppressions.xml true true warning @@ -190,11 +190,6 @@ junit test - com.google.api-client google-api-client @@ -202,17 +197,5 @@ test 2.6.1-SNAPSHOT - - org.mock-server - mockserver-core - 5.14.0 - compile - - - org.mock-server - mockserver-netty - 5.14.0 - compile - diff --git a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml index 90b3adc80..51856527e 100644 --- a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml +++ b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml @@ -4,7 +4,7 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - + + + diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index e73435ff3..9026e3efe 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -26,21 +26,14 @@ import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.Test; -import org.mockserver.integration.ClientAndServer; -import org.mockserver.socket.PortFactory; public class ITGoogleApache5HttpTransportTest { @Test public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() throws GeneralSecurityException, IOException { - int port = PortFactory.findFreePort(); - // MockServer handles all SSL traffic transparently by auto-generating an appropriate SSL - // certificate using their own cert - // https://github.com/mock-server/mockserver/blob/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem - ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); - HttpGet httpGet = new HttpGet("https://localhost:" + port + "/"); + HttpGet httpGet = new HttpGet("https://bing.com"); Exception exception = null; try { apache5HttpTransport @@ -63,8 +56,6 @@ public Void handleResponse(ClassicHttpResponse response) { assertNotNull(exception); assertEquals(exception.getClass(), SSLHandshakeException.class); - - mockServer.stop(); } @Test From 17aae7456efe0e779f9c6aed6287a7d90ebde3dd Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 14:11:50 -0400 Subject: [PATCH 13/24] trying to fix lint --- google-api-client-apache-v5/pom.xml | 35 +++++++++++++++---- .../v5/GoogleApache5HttpTransportTest.java | 7 ++-- .../v5/ITGoogleApache5HttpTransportTest.java | 15 +++++--- .../checkstyle/checkstyle-suppressions.xml | 0 4 files changed, 43 insertions(+), 14 deletions(-) rename {google-api-client-apache-v5/src => src}/checkstyle/checkstyle-suppressions.xml (100%) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 33974e14e..3ba56738c 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -30,6 +30,22 @@ + + com.coveo + fmt-maven-plugin + 2.13 + + + true + + + + com.google.googlejavaformat + google-java-format + 1.13.0 + + + maven-javadoc-plugin @@ -111,7 +127,7 @@ google_checks.xml - ${project.basedir}/src/checkstyle/checkstyle-suppressions.xml + ${project.basedir}/../src/checkstyle/checkstyle-suppressions.xml true true warning @@ -185,11 +201,6 @@ - - junit - junit - test - com.google.api-client google-api-client @@ -197,5 +208,17 @@ test 2.6.1-SNAPSHOT + + org.mock-server + mockserver-core + 5.14.0 + compile + + + org.mock-server + mockserver-netty + 5.14.0 + compile + diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java index 80029bdb3..1e7e13253 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java @@ -27,16 +27,15 @@ public class GoogleApache5HttpTransportTest extends MtlsTransportBaseTest { @Override protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider) - throws GeneralSecurityException, IOException { + throws GeneralSecurityException, IOException { return GoogleApache5HttpTransport.newTrustedTransport(mtlsProvider); } @Test public void socketFactoryRegistryHandlerTest() throws GeneralSecurityException, IOException { - MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), - "", false); + MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), "", false); GoogleApache5HttpTransport.SocketFactoryRegistryHandler handler = - new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); + new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); assertNotNull(handler.getSocketFactoryRegistry().lookup("http")); assertNotNull(handler.getSocketFactoryRegistry().lookup("https")); assertTrue(handler.isMtls()); diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 9026e3efe..38c0031b3 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -26,14 +26,21 @@ import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.Test; +import org.mockserver.integration.ClientAndServer; +import org.mockserver.socket.PortFactory; public class ITGoogleApache5HttpTransportTest { @Test public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() throws GeneralSecurityException, IOException { + int port = PortFactory.findFreePort(); + // MockServer handles all SSL traffic transparently by auto-generating an appropriate SSL + // certificate using their own cert + // https://github.com/mock-server/mockserver/blob/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem + ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); - HttpGet httpGet = new HttpGet("https://bing.com"); + HttpGet httpGet = new HttpGet("https://localhost:" + port + "/"); Exception exception = null; try { apache5HttpTransport @@ -43,9 +50,7 @@ public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() new HttpClientResponseHandler() { @Override public Void handleResponse(ClassicHttpResponse response) { - fail( - "Should not have been able to complete SSL request on non google site." - ); + fail("Should not have been able to complete SSL request on non google site."); return null; } }); @@ -56,6 +61,8 @@ public Void handleResponse(ClassicHttpResponse response) { assertNotNull(exception); assertEquals(exception.getClass(), SSLHandshakeException.class); + + mockServer.stop(); } @Test diff --git a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml similarity index 100% rename from google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml rename to src/checkstyle/checkstyle-suppressions.xml From 9846e10a7b104cc4d51fff6c3ab66b534cc7be4a Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 14:30:58 -0400 Subject: [PATCH 14/24] trying to fix lint --- google-api-client-apache-v5/pom.xml | 4 ++-- .../googleapis/apache/v5/GoogleApache5HttpTransportTest.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 3ba56738c..943d96cc0 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -212,13 +212,13 @@ org.mock-server mockserver-core 5.14.0 - compile + test org.mock-server mockserver-netty 5.14.0 - compile + test diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java index 1e7e13253..07728325a 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransportTest.java @@ -27,7 +27,7 @@ public class GoogleApache5HttpTransportTest extends MtlsTransportBaseTest { @Override protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider) - throws GeneralSecurityException, IOException { + throws GeneralSecurityException, IOException { return GoogleApache5HttpTransport.newTrustedTransport(mtlsProvider); } @@ -35,7 +35,7 @@ protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider) public void socketFactoryRegistryHandlerTest() throws GeneralSecurityException, IOException { MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), "", false); GoogleApache5HttpTransport.SocketFactoryRegistryHandler handler = - new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); + new GoogleApache5HttpTransport.SocketFactoryRegistryHandler(mtlsProvider); assertNotNull(handler.getSocketFactoryRegistry().lookup("http")); assertNotNull(handler.getSocketFactoryRegistry().lookup("https")); assertTrue(handler.isMtls()); From a47f7df2709fba54c04a6702f1fb71a16a6d4cdc Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 14:47:34 -0400 Subject: [PATCH 15/24] trying to fix lint --- src/checkstyle/checkstyle-suppressions.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml index 51856527e..90b3adc80 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/src/checkstyle/checkstyle-suppressions.xml @@ -4,7 +4,7 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - + + + From 06d9efafe4aa111ac67f6ccce3b0107211de4938 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 15:15:26 -0400 Subject: [PATCH 16/24] trying to fix lint --- google-api-client-apache-v5/pom.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 943d96cc0..aea9c698f 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -127,7 +127,7 @@ google_checks.xml - ${project.basedir}/../src/checkstyle/checkstyle-suppressions.xml + ${project.basedir}/../src/checkstyle/checkstyle-suppressions.xml2 true true warning @@ -220,5 +220,10 @@ 5.14.0 test + + org.eclipse.jetty + jetty-server + 12.0.10 + From 9317fb527af3f19ec91dbcb611260f50f08719fa Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 15:18:06 -0400 Subject: [PATCH 17/24] trying to remove dependency on netty --- .../googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 38c0031b3..24a3d628f 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -40,7 +40,7 @@ public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() // https://github.com/mock-server/mockserver/blob/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); - HttpGet httpGet = new HttpGet("https://localhost:" + port + "/"); + HttpGet httpGet = new HttpGet("https://maven.com/"); Exception exception = null; try { apache5HttpTransport From f98ea0cbe1f44aa7ac8d5b52ad9fc5713e1f3fdb Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 15:19:28 -0400 Subject: [PATCH 18/24] trying to remove dependency on netty --- google-api-client-apache-v5/pom.xml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index aea9c698f..7ce7888ec 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -115,7 +115,7 @@ org.apache.maven.plugins maven-surefire-plugin - + @@ -220,10 +220,5 @@ 5.14.0 test - - org.eclipse.jetty - jetty-server - 12.0.10 - From efb409cf5ea52791741b5a53a8a30435f4491ad4 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 16:01:39 -0400 Subject: [PATCH 19/24] trying to remove dependency on netty --- google-api-client-apache-v5/pom.xml | 18 +++--------------- .../checkstyle/checkstyle-suppressions.xml | 6 +++--- .../v5/ITGoogleApache5HttpTransportTest.java | 8 -------- 3 files changed, 6 insertions(+), 26 deletions(-) rename {src => google-api-client-apache-v5/src}/checkstyle/checkstyle-suppressions.xml (51%) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 7ce7888ec..37e950fdd 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -115,7 +115,7 @@ org.apache.maven.plugins maven-surefire-plugin - + @@ -208,17 +208,5 @@ test 2.6.1-SNAPSHOT - - org.mock-server - mockserver-core - 5.14.0 - test - - - org.mock-server - mockserver-netty - 5.14.0 - test - diff --git a/src/checkstyle/checkstyle-suppressions.xml b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml similarity index 51% rename from src/checkstyle/checkstyle-suppressions.xml rename to google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml index 90b3adc80..88f6658ac 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml @@ -4,7 +4,7 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - - - + + + diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 24a3d628f..9b6aea44f 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -26,19 +26,12 @@ import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.Test; -import org.mockserver.integration.ClientAndServer; -import org.mockserver.socket.PortFactory; public class ITGoogleApache5HttpTransportTest { @Test public void testHttpRequestFailsWhenMakingRequestToSiteWithoutGoogleCerts() throws GeneralSecurityException, IOException { - int port = PortFactory.findFreePort(); - // MockServer handles all SSL traffic transparently by auto-generating an appropriate SSL - // certificate using their own cert - // https://github.com/mock-server/mockserver/blob/master/mockserver-core/src/main/resources/org/mockserver/socket/CertificateAuthorityCertificate.pem - ClientAndServer mockServer = ClientAndServer.startClientAndServer(port); Apache5HttpTransport apache5HttpTransport = GoogleApache5HttpTransport.newTrustedTransport(); HttpGet httpGet = new HttpGet("https://maven.com/"); Exception exception = null; @@ -62,7 +55,6 @@ public Void handleResponse(ClassicHttpResponse response) { assertNotNull(exception); assertEquals(exception.getClass(), SSLHandshakeException.class); - mockServer.stop(); } @Test From b3dd58d82667cc45ab3626747dc13371520ba97f Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 16:45:48 -0400 Subject: [PATCH 20/24] final fixes --- .../src/checkstyle/checkstyle-suppressions.xml | 2 +- .../googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml index 88f6658ac..812319b66 100644 --- a/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml +++ b/google-api-client-apache-v5/src/checkstyle/checkstyle-suppressions.xml @@ -4,7 +4,7 @@ "https://checkstyle.org/dtds/suppressions_1_2.dtd"> - + diff --git a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java index 9b6aea44f..f8e9cbed1 100644 --- a/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java +++ b/google-api-client-apache-v5/src/test/java/com/google/api/client/googleapis/apache/v5/ITGoogleApache5HttpTransportTest.java @@ -54,7 +54,6 @@ public Void handleResponse(ClassicHttpResponse response) { assertNotNull(exception); assertEquals(exception.getClass(), SSLHandshakeException.class); - } @Test From 461b49ed63713c9b28dfac249e464691147ef5d8 Mon Sep 17 00:00:00 2001 From: detmerl Date: Thu, 22 Aug 2024 16:51:47 -0400 Subject: [PATCH 21/24] final fixes --- docs/component-modules.md | 2 +- google-api-client-apache-v5/pom.xml | 15 --------------- .../apache/v5/GoogleApache5HttpTransport.java | 2 +- 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/docs/component-modules.md b/docs/component-modules.md index 492aefa62..33e73da8d 100644 --- a/docs/component-modules.md +++ b/docs/component-modules.md @@ -58,7 +58,7 @@ XML extensions to the Google API Client Library for Java ## google-api-client-apache-v5 Provides Apache extension to the Google HTTP Client Library for Java (`google-api-client-apache-v5`) that -returns an implementation of `HttpTransport` based on the Apache HTTP Client with Google certificates loaded in truststore. This module depends +returns an implementation of `HttpTransport` based on the Apache HTTP Client (v5) with Google certificates loaded in truststore. This module depends on `google-http-client`. [protobuf]: https://developers.google.com/protocol-buffers/docs/overview diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 37e950fdd..b1a66674e 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -11,13 +11,6 @@ google-api-client-apache-v5 Apache extensions to the Google APIs Client Library for Java - - - kr.motd.maven - os-maven-plugin - 1.7.1 - - org.apache.maven.plugins @@ -107,14 +100,6 @@ - - org.apache.maven.plugins - maven-dependency-plugin - - - org.apache.maven.plugins - maven-surefire-plugin - org.apache.maven.plugins maven-checkstyle-plugin diff --git a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java index 675890bb6..00a7673b3 100644 --- a/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java +++ b/google-api-client-apache-v5/src/main/java/com/google/api/client/googleapis/apache/v5/GoogleApache5HttpTransport.java @@ -41,7 +41,7 @@ import org.apache.hc.core5.http.config.RegistryBuilder; /** - * Utilities for Google APIs based on {@link ApacheHttpTransport}. + * Utilities for Google APIs based on {@link Apache5HttpTransport}. * * @since 2.6.1 */ From a8159421604d1b59bc04899bdc9d47cb514becf0 Mon Sep 17 00:00:00 2001 From: detmerl Date: Fri, 23 Aug 2024 15:30:45 -0400 Subject: [PATCH 22/24] fixed pom issues as well as added more verbose module description --- docs/component-modules.md | 7 +++-- google-api-client-apache-v5/pom.xml | 8 ++---- pom.xml | 40 ++++++++++++++--------------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/docs/component-modules.md b/docs/component-modules.md index 33e73da8d..ad780053b 100644 --- a/docs/component-modules.md +++ b/docs/component-modules.md @@ -58,7 +58,10 @@ XML extensions to the Google API Client Library for Java ## google-api-client-apache-v5 Provides Apache extension to the Google HTTP Client Library for Java (`google-api-client-apache-v5`) that -returns an implementation of `HttpTransport` based on the Apache HTTP Client (v5) with Google certificates loaded in truststore. This module depends -on `google-http-client`. +returns an implementation of `HttpTransport` based on the Apache HTTP Client (v5) with Google certificates loaded in +truststore. This module depends on `google-http-client`. + +Please note this is the preferred Apache extension to be used, over the GoogleApacheHttpTransport included +in `google-api-client` module. The previous google transport utilizes the EOL Apache HTTP Client v4. [protobuf]: https://developers.google.com/protocol-buffers/docs/overview diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index b1a66674e..1053dadd6 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -43,7 +43,7 @@ maven-javadoc-plugin - https://docs.oracle.com/javase/7/docs/api/ + https://docs.oracle.com/javase/8/docs/api/ https://cloud.google.com/appengine/docs/standard/java/javadoc/ https://googleapis.dev/java/google-http-client/${project.http.version}/ https://googleapis.dev/java/google-oauth-client/${project.oauth.version}/ @@ -155,22 +155,18 @@ com.google.http-client google-http-client-apache-v5 - 1.45.0 com.google.guava guava - ${project.guava.version} org.apache.httpcomponents.client5 httpclient5 - 5.3.1 org.apache.httpcomponents.core5 httpcore5 - 5.2.4 com.google.http-client @@ -191,7 +187,7 @@ google-api-client test-jar test - 2.6.1-SNAPSHOT + ${project.version} diff --git a/pom.xml b/pom.xml index 14cc06fed..7820a518f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,6 @@ google-api-client google-api-client-servlet - google-api-client-android google-api-client-appengine google-api-client-assembly google-api-client-bom @@ -242,6 +241,21 @@ ${gson.version} test + + org.apache.httpcomponents.client5 + httpclient5 + ${project.httpclient5.version} + + + org.apache.httpcomponents.core5 + httpcore5 + ${project.httpcore5.version} + + + com.google.http-client + google-http-client-apache-v5 + ${project.http.version} + @@ -268,8 +282,8 @@ maven-compiler-plugin 3.13.0 - 1.7 - 1.7 + 1.8 + 1.8 @@ -385,7 +399,7 @@ maven-javadoc-plugin none - 7 + 8 @@ -494,22 +508,6 @@ org.sonatype.plugins nexus-staging-maven-plugin - - com.coveo - fmt-maven-plugin - 2.13 - - - true - - - - com.google.googlejavaformat - google-java-format - 1.13.0 - - - @@ -517,6 +515,8 @@ 1.45.0 4.4.16 4.5.14 + 5.2.4 + 5.3.1 1.17.0 1.36.0 1.23.0 From 7819e208fa27a60f72353155fc0a16757743919b Mon Sep 17 00:00:00 2001 From: detmerl Date: Fri, 23 Aug 2024 15:33:16 -0400 Subject: [PATCH 23/24] fixed pom issues as well as added more verbose module description --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 7820a518f..38d428b62 100644 --- a/pom.xml +++ b/pom.xml @@ -282,8 +282,8 @@ maven-compiler-plugin 3.13.0 - 1.8 - 1.8 + 1.7 + 1.7 @@ -399,7 +399,7 @@ maven-javadoc-plugin none - 8 + 7 From 838e70103e74cd69a8244e1ade2014bed51085a1 Mon Sep 17 00:00:00 2001 From: detmerl Date: Fri, 23 Aug 2024 15:40:24 -0400 Subject: [PATCH 24/24] fixed pom issues --- google-api-client-apache-v5/pom.xml | 16 ---------------- pom.xml | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/google-api-client-apache-v5/pom.xml b/google-api-client-apache-v5/pom.xml index 1053dadd6..8c5350d79 100644 --- a/google-api-client-apache-v5/pom.xml +++ b/google-api-client-apache-v5/pom.xml @@ -23,22 +23,6 @@ - - com.coveo - fmt-maven-plugin - 2.13 - - - true - - - - com.google.googlejavaformat - google-java-format - 1.13.0 - - - maven-javadoc-plugin diff --git a/pom.xml b/pom.xml index 38d428b62..5fa6a62d4 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,7 @@ google-api-client google-api-client-servlet + google-api-client-android google-api-client-appengine google-api-client-assembly google-api-client-bom @@ -508,6 +509,22 @@ org.sonatype.plugins nexus-staging-maven-plugin + + com.coveo + fmt-maven-plugin + 2.13 + + + true + + + + com.google.googlejavaformat + google-java-format + 1.13.0 + + +