@Override public Client createClient(ChannelHandlerContext ctx, ClientConfig config) { ClientState clientState = new ClientState(channelConfig(ctx), config); ClientChannelInitializer clientChannelInit = new ClientChannelInitializer(clientState, () -> new ProxyBackendHandler(ctx), getTracing()); ClientConnectionManager connManager = new ClientConnectionManager(clientState, clientChannelInit); Client client = new Client(clientState, connManager); ctx.channel().closeFuture().addListener(f -> clientPool.release(client)); log.debug("creating client"); return client; }