in maven-resolver-transport-apache/src/main/java/org/eclipse/aether/transport/apache/GlobalState.java [149:206]
public static HttpClientConnectionManager newConnectionManager(ConnMgrConfig connMgrConfig) {
RegistryBuilder<ConnectionSocketFactory> registryBuilder = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory());
int connectionMaxTtlSeconds = ConfigurationProperties.DEFAULT_HTTP_CONNECTION_MAX_TTL;
int maxConnectionsPerRoute = ConfigurationProperties.DEFAULT_HTTP_MAX_CONNECTIONS_PER_ROUTE;
if (connMgrConfig == null) {
registryBuilder.register("https", SSLConnectionSocketFactory.getSystemSocketFactory());
} else {
// config present: use provided, if any, or create (depending on httpsSecurityMode)
connectionMaxTtlSeconds = connMgrConfig.connectionMaxTtlSeconds;
maxConnectionsPerRoute = connMgrConfig.maxConnectionsPerRoute;
SSLSocketFactory sslSocketFactory =
connMgrConfig.context != null ? connMgrConfig.context.getSocketFactory() : null;
HostnameVerifier hostnameVerifier = connMgrConfig.verifier;
if (ConfigurationProperties.HTTPS_SECURITY_MODE_DEFAULT.equals(connMgrConfig.httpsSecurityMode)) {
if (sslSocketFactory == null) {
sslSocketFactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
}
if (hostnameVerifier == null) {
hostnameVerifier = SSLConnectionSocketFactory.getDefaultHostnameVerifier();
}
} else if (ConfigurationProperties.HTTPS_SECURITY_MODE_INSECURE.equals(connMgrConfig.httpsSecurityMode)) {
if (sslSocketFactory == null) {
try {
sslSocketFactory = new SSLContextBuilder()
.loadTrustMaterial(null, (chain, auth) -> true)
.build()
.getSocketFactory();
} catch (Exception e) {
throw new SSLInitializationException(
"Could not configure '" + connMgrConfig.httpsSecurityMode + "' HTTPS security mode", e);
}
}
if (hostnameVerifier == null) {
hostnameVerifier = NoopHostnameVerifier.INSTANCE;
}
} else {
throw new IllegalArgumentException(
"Unsupported '" + connMgrConfig.httpsSecurityMode + "' HTTPS security mode.");
}
registryBuilder.register(
"https",
new SSLConnectionSocketFactory(
sslSocketFactory, connMgrConfig.protocols, connMgrConfig.cipherSuites, hostnameVerifier));
}
PoolingHttpClientConnectionManager connMgr = new PoolingHttpClientConnectionManager(
new DefaultHttpClientConnectionOperator(
registryBuilder.build(), DefaultSchemePortResolver.INSTANCE, SystemDefaultDnsResolver.INSTANCE),
ManagedHttpClientConnectionFactory.INSTANCE,
connectionMaxTtlSeconds,
TimeUnit.SECONDS);
connMgr.setMaxTotal(maxConnectionsPerRoute * 2);
connMgr.setDefaultMaxPerRoute(maxConnectionsPerRoute);
return connMgr;
}