public PoolingHttpClientConnectionManager build() {
        final TlsSocketStrategy tlsSocketStrategyCopy;
        if (tlsSocketStrategy != null) {
            tlsSocketStrategyCopy = tlsSocketStrategy;
        } else {
            if (systemProperties) {
                tlsSocketStrategyCopy = DefaultClientTlsStrategy.createSystemDefault();
            } else {
                tlsSocketStrategyCopy = DefaultClientTlsStrategy.createDefault();
            }
        }

        final PoolingHttpClientConnectionManager poolingmgr = new PoolingHttpClientConnectionManager(
                createConnectionOperator(schemePortResolver, dnsResolver, tlsSocketStrategyCopy),
                poolConcurrencyPolicy,
                poolReusePolicy,
                null,
                connectionFactory);
        poolingmgr.setSocketConfigResolver(socketConfigResolver);
        poolingmgr.setConnectionConfigResolver(connectionConfigResolver);
        poolingmgr.setTlsConfigResolver(tlsConfigResolver);
        if (maxConnTotal > 0) {
            poolingmgr.setMaxTotal(maxConnTotal);
        }
        if (maxConnPerRoute > 0) {
            poolingmgr.setDefaultMaxPerRoute(maxConnPerRoute);
        }
        return poolingmgr;
    }
Use system properties when creating and configuring default
implementations.

@return this instance.
httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/PoolingHttpClientConnectionManagerBuilder.java