in src/main/java/com/spotify/google/cloud/pubsub/client/Pubsub.java [134:184]
private Pubsub(final Builder builder) {
final AsyncHttpClientConfig config = builder.clientConfig.build();
log.debug("creating new pubsub client with config:");
log.debug("uri: {}", builder.uri);
log.debug("connect timeout: {}", config.getConnectTimeout());
log.debug("read timeout: {}", config.getReadTimeout());
log.debug("request timeout: {}", config.getRequestTimeout());
log.debug("max connections: {}", config.getMaxConnections());
log.debug("max connections per host: {}", config.getMaxConnectionsPerHost());
log.debug("enabled cipher suites: {}", Arrays.toString(config.getEnabledCipherSuites()));
log.debug("response compression enforced: {}", config.isCompressionEnforced());
log.debug("request compression level: {}", builder.compressionLevel);
log.debug("accept any certificate: {}", config.isAcceptAnyCertificate());
log.debug("follows redirect: {}", config.isFollowRedirect());
log.debug("pooled connection TTL: {}", config.getConnectionTTL());
log.debug("pooled connection idle timeout: {}", config.getPooledConnectionIdleTimeout());
log.debug("pooling connections: {}", config.isAllowPoolingConnections());
log.debug("pooling SSL connections: {}", config.isAllowPoolingSslConnections());
log.debug("user agent: {}", config.getUserAgent());
log.debug("max request retry: {}", config.getMaxRequestRetry());
final SSLSocketFactory sslSocketFactory =
new ConfigurableSSLSocketFactory(config.getEnabledCipherSuites(),
(SSLSocketFactory) SSLSocketFactory.getDefault());
this.transport = new NetHttpTransport.Builder()
.setSslSocketFactory(sslSocketFactory)
.build();
this.client = new AsyncHttpClient(config);
this.compressionLevel = builder.compressionLevel;
if (builder.credential == null) {
this.credential = scoped(defaultCredential());
} else {
this.credential = scoped(builder.credential);
}
this.baseUri = builder.uri.toString();
// Get initial access token
refreshAccessToken();
if (accessToken == null) {
throw new RuntimeException("Failed to get access token");
}
// Wake up every 10 seconds to check if access token has expired
scheduler.scheduleAtFixedRate(this::refreshAccessToken, 10, 10, SECONDS);
}