code: public TargetChannel borrowTargetChannel(HttpRoute httpRoute, SourceHandler sourceHandler,
                                               Http2SourceHandler http2SourceHandler,
                                               SenderConfiguration senderConfig, BootstrapConfiguration bootstrapConfig,
                                               EventLoopGroup clientEventGroup) throws Exception {
          GenericObjectPool trgHlrConnPool;
          String trgHlrConnPoolId = httpRoute.toString() + connectionManagerId;
  
          if (sourceHandler != null) {
              ChannelHandlerContext inboundChannelContext = sourceHandler.getInboundChannelContext();
  
  
              trgHlrConnPool = getTrgHlrPoolFromGlobalPoolWithSrcPool(httpRoute, senderConfig, bootstrapConfig,
                                                                      trgHlrConnPoolId,
                                                                      inboundChannelContext.channel().eventLoop(),
                                                                      inboundChannelContext.channel().getClass(),
                                                                      sourceHandler.getTargetChannelPool());
          } else if (http2SourceHandler != null) {
              ChannelHandlerContext inboundChannelContext = http2SourceHandler.getInboundChannelContext();
              trgHlrConnPool = getTrgHlrPoolFromGlobalPoolWithSrcPool(httpRoute, senderConfig, bootstrapConfig,
                                                                      trgHlrConnPoolId,
                                                                      inboundChannelContext.channel().eventLoop(),
                                                                      inboundChannelContext.channel().getClass(),
                                                                      http2SourceHandler.getTargetChannelPool());
  
          } else {
              trgHlrConnPool = getTrgHlrPoolFromGlobalPool(httpRoute, senderConfig, bootstrapConfig, clientEventGroup);
          }
  
          return getTargetChannel(sourceHandler, http2SourceHandler, trgHlrConnPool, trgHlrConnPoolId);
      }
docs: Gets the client target channel pool.
  
  @param httpRoute          Represents the endpoint address
  @param sourceHandler      Represents the HTTP/1.x source handler
  @param http2SourceHandler Represents the HTTP/2 source handler
  @param senderConfig       Represents the client configurations
  @param bootstrapConfig    Represents the bootstrap info related to client connection creation
  @param clientEventGroup   Represents the eventloop group that the client channel should be bound to
  @return the target channel which is requested for given parameters.
  @throws Exception to notify any errors occur during retrieving the target channel