diff --git a/.github/workflows/formatting.yaml b/.github/workflows/formatting.yaml
index d4d367cfc..6844407b4 100644
--- a/.github/workflows/formatting.yaml
+++ b/.github/workflows/formatting.yaml
@@ -18,7 +18,7 @@ jobs:
with:
java-version: 11
- run: "mvn com.coveo:fmt-maven-plugin:format"
- - uses: googleapis/code-suggester@v1.8.0
+ - uses: googleapis/code-suggester@v1
with:
command: review
pull_number: ${{ github.event.pull_request.number }}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f2f0776db..b555aa6ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# Changelog
+### [1.31.1](https://www.github.com/googleapis/google-api-java-client/compare/v1.31.0...v1.31.1) (2020-11-16)
+
+
+### Bug Fixes
+
+* socketfactory not registered for apache ([#1637](https://www.github.com/googleapis/google-api-java-client/issues/1637)) ([e886efa](https://www.github.com/googleapis/google-api-java-client/commit/e886efaa384bac106f2e5efcc3fb59901c251505))
+
## [1.31.0](https://www.github.com/googleapis/google-api-java-client/compare/v1.30.11...v1.31.0) (2020-11-10)
diff --git a/README.md b/README.md
index c648e2eb9..750e4c398 100644
--- a/README.md
+++ b/README.md
@@ -34,7 +34,7 @@ To use Maven, add the following lines to your pom.xml file:
com.google.api-client
google-api-client
- 1.31.0
+ 1.31.1
@@ -48,7 +48,7 @@ repositories {
google()
}
dependencies {
- compile 'com.google.api-client:google-api-client:1.31.0'
+ compile 'com.google.api-client:google-api-client:1.31.1'
}
```
[//]: # ({x-version-update-end})
diff --git a/google-api-client-android/pom.xml b/google-api-client-android/pom.xml
index 9adb76a4f..7569dc0c5 100644
--- a/google-api-client-android/pom.xml
+++ b/google-api-client-android/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-android
diff --git a/google-api-client-appengine/pom.xml b/google-api-client-appengine/pom.xml
index 305f5894d..6989b9379 100644
--- a/google-api-client-appengine/pom.xml
+++ b/google-api-client-appengine/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-appengine
diff --git a/google-api-client-assembly/pom.xml b/google-api-client-assembly/pom.xml
index 59b4383e3..7743928fb 100644
--- a/google-api-client-assembly/pom.xml
+++ b/google-api-client-assembly/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
com.google.api-client
diff --git a/google-api-client-bom/pom.xml b/google-api-client-bom/pom.xml
index 400b1cb2d..c01300ef4 100644
--- a/google-api-client-bom/pom.xml
+++ b/google-api-client-bom/pom.xml
@@ -3,7 +3,7 @@
4.0.0
com.google.api-client
google-api-client-bom
- 1.31.0
+ 1.31.1
pom
Google API Client Library for Java BOM
@@ -63,52 +63,52 @@
com.google.api-client
google-api-client
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-android
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-appengine
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-assembly
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-gson
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-jackson2
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-java6
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-protobuf
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-servlet
- 1.31.0
+ 1.31.1
com.google.api-client
google-api-client-xml
- 1.31.0
+ 1.31.1
diff --git a/google-api-client-gson/pom.xml b/google-api-client-gson/pom.xml
index 83acf1562..2e4e2da58 100644
--- a/google-api-client-gson/pom.xml
+++ b/google-api-client-gson/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-gson
diff --git a/google-api-client-jackson2/pom.xml b/google-api-client-jackson2/pom.xml
index 97cacb1e6..4246ff2a0 100644
--- a/google-api-client-jackson2/pom.xml
+++ b/google-api-client-jackson2/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-jackson2
diff --git a/google-api-client-java6/pom.xml b/google-api-client-java6/pom.xml
index 154dba282..825d4943d 100644
--- a/google-api-client-java6/pom.xml
+++ b/google-api-client-java6/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-java6
diff --git a/google-api-client-protobuf/pom.xml b/google-api-client-protobuf/pom.xml
index 943f80b8f..6f39ae232 100644
--- a/google-api-client-protobuf/pom.xml
+++ b/google-api-client-protobuf/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-protobuf
diff --git a/google-api-client-servlet/pom.xml b/google-api-client-servlet/pom.xml
index 9e3f06386..02c01c584 100644
--- a/google-api-client-servlet/pom.xml
+++ b/google-api-client-servlet/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-servlet
diff --git a/google-api-client-xml/pom.xml b/google-api-client-xml/pom.xml
index 81250443c..26a513acc 100644
--- a/google-api-client-xml/pom.xml
+++ b/google-api-client-xml/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client-xml
diff --git a/google-api-client/pom.xml b/google-api-client/pom.xml
index 65ee561ff..2d8bfc097 100644
--- a/google-api-client/pom.xml
+++ b/google-api-client/pom.xml
@@ -4,7 +4,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
../pom.xml
google-api-client
diff --git a/google-api-client/src/main/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransport.java b/google-api-client/src/main/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransport.java
index f5f41fddf..93347cd3e 100644
--- a/google-api-client/src/main/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransport.java
+++ b/google-api-client/src/main/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransport.java
@@ -21,6 +21,7 @@
import com.google.api.client.http.apache.v2.ApacheHttpTransport;
import com.google.api.client.util.Beta;
import com.google.api.client.util.SslUtils;
+import com.google.common.annotations.VisibleForTesting;
import java.io.IOException;
import java.net.ProxySelector;
import java.security.GeneralSecurityException;
@@ -28,7 +29,11 @@
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
import org.apache.http.client.HttpClient;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
@@ -64,42 +69,18 @@ public static ApacheHttpTransport newTrustedTransport()
@Beta
public static ApacheHttpTransport newTrustedTransport(MtlsProvider mtlsProvider)
throws GeneralSecurityException, IOException {
- KeyStore mtlsKeyStore = null;
- String mtlsKeyStorePassword = null;
- if (mtlsProvider.useMtlsClientCertificate()) {
- mtlsKeyStore = mtlsProvider.getKeyStore();
- mtlsKeyStorePassword = mtlsProvider.getKeyStorePassword();
- }
-
+ SocketFactoryRegistryHandler handler = new SocketFactoryRegistryHandler(mtlsProvider);
PoolingHttpClientConnectionManager connectionManager =
- new PoolingHttpClientConnectionManager(-1, TimeUnit.MILLISECONDS);
+ new PoolingHttpClientConnectionManager(
+ handler.getSocketFactoryRegistry(), null, null, null, -1, TimeUnit.MILLISECONDS);
- // Disable the stale connection check (previously configured in the HttpConnectionParams
+ // Disable the stale connection check (previously configured in the
+ // HttpConnectionParams
connectionManager.setValidateAfterInactivity(-1);
- // Use the included trust store
- KeyStore trustStore = GoogleUtils.getCertificateTrustStore();
- SSLContext sslContext = SslUtils.getTlsSslContext();
-
- boolean isMtls = false;
- if (mtlsKeyStore != null && mtlsKeyStorePassword != null) {
- isMtls = true;
- SslUtils.initSslContext(
- sslContext,
- trustStore,
- SslUtils.getPkixTrustManagerFactory(),
- mtlsKeyStore,
- mtlsKeyStorePassword,
- SslUtils.getDefaultKeyManagerFactory());
- } else {
- SslUtils.initSslContext(sslContext, trustStore, SslUtils.getPkixTrustManagerFactory());
- }
- LayeredConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext);
-
HttpClient client =
HttpClientBuilder.create()
.useSystemProperties()
- .setSSLSocketFactory(socketFactory)
.setMaxConnTotal(200)
.setMaxConnPerRoute(20)
.setRoutePlanner(new SystemDefaultRoutePlanner(ProxySelector.getDefault()))
@@ -107,7 +88,56 @@ public static ApacheHttpTransport newTrustedTransport(MtlsProvider mtlsProvider)
.disableRedirectHandling()
.disableAutomaticRetries()
.build();
- return new ApacheHttpTransport(client, isMtls);
+ return new ApacheHttpTransport(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 GoogleApacheHttpTransport() {}
diff --git a/google-api-client/src/test/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransportTest.java b/google-api-client/src/test/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransportTest.java
index af7ecea86..18d504287 100644
--- a/google-api-client/src/test/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransportTest.java
+++ b/google-api-client/src/test/java/com/google/api/client/googleapis/apache/v2/GoogleApacheHttpTransportTest.java
@@ -14,11 +14,16 @@
package com.google.api.client.googleapis.apache.v2;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import com.google.api.client.googleapis.apache.v2.GoogleApacheHttpTransport.SocketFactoryRegistryHandler;
import com.google.api.client.googleapis.mtls.MtlsProvider;
import com.google.api.client.googleapis.mtls.MtlsTransportBaseTest;
import com.google.api.client.http.HttpTransport;
import java.io.IOException;
import java.security.GeneralSecurityException;
+import org.junit.Test;
public class GoogleApacheHttpTransportTest extends MtlsTransportBaseTest {
@Override
@@ -26,4 +31,13 @@ protected HttpTransport buildTrustedTransport(MtlsProvider mtlsProvider)
throws GeneralSecurityException, IOException {
return GoogleApacheHttpTransport.newTrustedTransport(mtlsProvider);
}
+
+ @Test
+ public void socketFactoryRegistryHandlerTest() throws GeneralSecurityException, IOException {
+ MtlsProvider mtlsProvider = new TestMtlsProvider(true, createTestMtlsKeyStore(), "", false);
+ SocketFactoryRegistryHandler handler = new SocketFactoryRegistryHandler(mtlsProvider);
+ assertNotNull(handler.getSocketFactoryRegistry().lookup("http"));
+ assertNotNull(handler.getSocketFactoryRegistry().lookup("https"));
+ assertTrue(handler.isMtls());
+ }
}
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 d795d24cf..096ff4abf 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
@@ -41,7 +41,7 @@ protected static class TestMtlsProvider implements MtlsProvider {
private String keyStorePassword;
private boolean throwExceptionForGetKeyStore;
- TestMtlsProvider(
+ public TestMtlsProvider(
boolean useClientCertificate,
KeyStore keystore,
String keyStorePassword,
diff --git a/pom.xml b/pom.xml
index 638a48771..a2239a6e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
com.google.api-client
google-api-client-parent
- 1.31.0
+ 1.31.1
pom
Parent for the Google API Client Library for Java
diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 1032df7c0..c9798f806 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
com.google.api-client
google-api-client
- 1.30.11
+ 1.31.0
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 88b90085e..6b2527149 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
com.google.api-client
google-api-client
- 1.30.11
+ 1.31.0
diff --git a/synth.metadata b/synth.metadata
index 3ae7fdf24..e35ebbadc 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -4,14 +4,14 @@
"git": {
"name": ".",
"remote": "https://github.com/googleapis/google-api-java-client.git",
- "sha": "279fa998adbace327041ea376a2a450e75390cc3"
+ "sha": "266b309983473ddc066ba957af5bece31aadf7b7"
}
},
{
"git": {
"name": "synthtool",
"remote": "https://github.com/googleapis/synthtool.git",
- "sha": "7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279"
+ "sha": "7d652819519dfa24da9e14548232e4aaba71a11c"
}
}
],
diff --git a/versions.txt b/versions.txt
index 97bbbea8f..f7e88e380 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,4 +1,4 @@
# Format:
# module:released-version:current-version
-google-api-client:1.31.0:1.31.0
+google-api-client:1.31.1:1.31.1