code: @SneakyThrows
      public HttpClient createHttpClient() {
          val builder = new StdHttpClient.Builder()
              .url(couchDbProperties.getUrl())
              .maxConnections(couchDbProperties.getMaxConnections())
              .maxCacheEntries(couchDbProperties.getMaxCacheEntries())
              .connectionTimeout(couchDbProperties.getConnectionTimeout())
              .socketTimeout(couchDbProperties.getSocketTimeout())
              .enableSSL(couchDbProperties.isEnableSSL())
              .relaxedSSLSettings(couchDbProperties.isRelaxedSSLSettings())
              .caching(couchDbProperties.isCaching())
              .maxObjectSizeBytes(couchDbProperties.getMaxObjectSizeBytes())
              .useExpectContinue(couchDbProperties.isUseExpectContinue())
              .cleanupIdleConnections(couchDbProperties.isCleanupIdleConnections());
  
  
          if (StringUtils.isNotBlank(couchDbProperties.getProxyHost())) {
              builder.proxy(couchDbProperties.getProxyHost());
  
              if (couchDbProperties.getProxyPort() > 0) {
                  builder.proxyPort(couchDbProperties.getProxyPort());
                  LOGGER.info("CouchDb proxy settings enabled [{}]:[{}]", couchDbProperties.getProxyHost(), couchDbProperties.getProxyPort());
              } else {
                  LOGGER.debug("Proxy port not set for host [{}] clearing proxy host.", couchDbProperties.getProxyHost());
                  builder.proxy(null);
              }
          }
  
          if (StringUtils.isNotBlank(couchDbProperties.getUsername())) {
              builder.username(couchDbProperties.getUsername());
          }
  
          if (StringUtils.isNotBlank(couchDbProperties.getPassword())) {
              builder.password(couchDbProperties.getPassword());
          }
  
          val client = builder.build();
          LOGGER.debug("Client created: [{}]", client);
          return client;
      }
docs: Create {@link HttpClient} instance.
  
  @return HttpClient instance from db properties.