code: private void establish(final T serverId) {
          LOG.debug("Connecting to: " + serverId);
  
          // We create a listener that will be notified of activity on this
          // connection.
          final ConnectionMaintainerListener<ServerT> listener = new MyListener(
                  serverId);
  
          synchronized (this) {
              // Until we see a response from this attempt to establish a
              // connection, we have an outstanding connection attempt.
              ++m_outstanding;
  
              // We also track the fact that we have "used" the server.
              m_usedServerIds.add(serverId);
          }
  
          m_establisher.establish(serverId, listener);
      }
docs: Establishes a connection to a given server, making sure to update all of
  the bookkeeping associated with doing so.
  
  @param serverId
  The identifier of the server to which to connect.