docs: protected HttpClientConnectionManager getConnectionManager() {
          HttpClientConnectionManager retval;
  
          Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
                  .register("http", httpClientConfig.getPlainSocketFactory())
                  .register("https", httpClientConfig.getSslSocketFactory())
                  .build();
  
          if (httpClientConfig.isMultiThreaded()) {
              log.info("Using multi thread/connection supporting pooling connection manager");
              final PoolingHttpClientConnectionManager poolingConnMgr = new PoolingHttpClientConnectionManager(registry);
  
              final Integer maxTotal = httpClientConfig.getMaxTotalConnection();
              if (maxTotal != null) {
                  poolingConnMgr.setMaxTotal(maxTotal);
              }
              final Integer defaultMaxPerRoute = httpClientConfig.getDefaultMaxTotalConnectionPerRoute();
              if (defaultMaxPerRoute != null) {
                  poolingConnMgr.setDefaultMaxPerRoute(defaultMaxPerRoute);
              }
              final Map<HttpRoute, Integer> maxPerRoute = httpClientConfig.getMaxTotalConnectionPerRoute();
              for (Map.Entry<HttpRoute, Integer> entry : maxPerRoute.entrySet()) {
                  poolingConnMgr.setMaxPerRoute(entry.getKey(), entry.getValue());
              }
              retval = poolingConnMgr;
          } else {
              log.info("Using single thread/connection supporting basic connection manager");
              retval = new BasicHttpClientConnectionManager(registry);
          }
  
          return retval;
      }