package com.l7tech.gateway.common.spring.remoting.http;

import java.io.IOException;
import javax.net.ssl.KeyManager;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
import org.apache.hc.client5.http.protocol.HttpClientContext;
import org.apache.hc.core5.http.ClassicHttpRequest;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.protocol.HttpContext;
import org.apache.hc.core5.io.CloseMode;

public abstract class DefaultHttpClientWithHttpContext extends CloseableHttpClient {
   protected KeyManager[] keyManagers;

   protected DefaultHttpClientWithHttpContext() {
      this.keyManagers = null;
   }

   protected DefaultHttpClientWithHttpContext(KeyManager[] var1) {
      this.keyManagers = var1;
   }

   protected KeyManager[] getKeyManagers() {
      return this.keyManagers;
   }

   public HttpClientContext createHttpContext() {
      return new HttpClientContext();
   }

   public abstract CloseableHttpClient getInternalHttpClient();

   public void close() throws IOException {
      this.getInternalHttpClient().close();
   }

   public void close(CloseMode var1) {
      this.getInternalHttpClient().close(var1);
   }

   protected CloseableHttpResponse doExecute(HttpHost var1, ClassicHttpRequest var2, HttpContext var3) throws IOException {
      throw new UnsupportedOperationException();
   }
}
