@Override
            public void produceRequest(final RequestChannel requestChannel,
                                       final HttpContext httpContext) throws HttpException, IOException {
                final HttpRequest connect = new BasicHttpRequest(Method.CONNECT, nextHop, nextHop.toHostString());
                connect.setVersion(HttpVersion.HTTP_1_1);

                proxyHttpProcessor.process(connect, null, clientContext);
                authenticator.addAuthResponse(proxy, ChallengeType.PROXY, connect, proxyAuthExchange, clientContext);

                requestChannel.sendRequest(connect, null, clientContext);
            }
Request execution handler in the asynchronous request execution chain
that is responsible for establishing connection to the target
origin server as specified by the current connection route.

@since 5.0
httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/AsyncConnectExec.java