class FailoverHttpClient {

  public void shutDown() throws IOException {
    synchronized (transportsCreated) {
      while (!transportsCreated.isEmpty()) {
        transportsCreated.peekFirst().shutdown();
        transportsCreated.removeFirst();
      }
    }
    synchronized (responsesCreated) {
      while (!responsesCreated.isEmpty()) {
        responsesCreated.peekFirst().close();
        responsesCreated.removeFirst();
      }
    }
  }

  public  FailoverHttpClient(
      boolean enableHttpAndInsecureFailover,
      boolean sendAuthorizationOverHttp,
      Consumer<LogEvent> logger);
  @VisibleForTesting  FailoverHttpClient(
      boolean enableHttpAndInsecureFailover,
      boolean sendAuthorizationOverHttp,
      Consumer<LogEvent> logger,
      Supplier<HttpTransport> secureHttpTransportFactory,
      Supplier<HttpTransport> insecureHttpTransportFactory);

}