code: boolean recycle(DefaultHttpSession httpSession) {
          if (!add(httpSession)) {
              return false;
          }
  
          HttpResourceAddress serverAddress = (HttpResourceAddress)httpSession.getRemoteAddress();
          IoSession transportSession = httpSession.getParent();
  
          SERVER_ADDRESS.set(transportSession, serverAddress);
  
          // Connection needs to be removed from pool upon session's close. Adding
          // a close future listener for that
          CloseFuture closeFuture = transportSession.getCloseFuture();
          closeFuture.addListener(closeListener);
  
          // Track transport session idle so that we don't waste resources.
          // Upstream server can take new fresh connections if gateway closes idle connections
          transportSession.getFilterChain().addLast(IDLE_FILTER, idleFilter);
          int keepAliveTimeout = serverAddress.getOption(HttpResourceAddress.KEEP_ALIVE_TIMEOUT);
          transportSession.getConfig().setBothIdleTime(keepAliveTimeout);
  
          return true;
      }
docs: /*
  Cache existing transport session so that it can be used for future
  connect requests to server
  
  @return true if the idle connection is cached for reuse
  false otherwise