code: private void startServer(ServerHeartbeat server,
                             ClusterHeartbeat cluster,
                             Consumer<UpdateRackHeartbeat> consumer,
                             JoinFuture future)
    {
      String address = server.getAddress();
      int port = server.port();
  
      if (port <= 0) {
        throw new IllegalStateException(String.valueOf(server));
      }
      
      if ("".equals(address)) {
        address = "127.0.0.1";
      }
      
      int seedIndex = getSeedIndex(server, cluster);
      
      ServiceManagerClient client = createBartenderClient(server); // address, port);
      
      /*
      ServerHeartbeat serverHeartbeat = (ServerHeartbeat) server;
      int portBartender = serverHeartbeat.getPortBartender();
      */
  
      JoinServerResult result = new JoinServerResult(future,
                                                     client,
                                                     consumer);
      
      try {
        HeartbeatService heartbeat = client.service("remote://" + HeartbeatService.PATH)
                                           .as(HeartbeatService.class);
  
        heartbeat.join(address, port,
                       _selfServer.getClusterId(),
                       _selfServer.getAddress(),
                       _selfServer.port(),
                       _selfServer.getPortBartender(),
                       _selfServer.getDisplayName(),
                       _selfServer.getMachineHash(),
                       seedIndex,
                       result);
      } catch (Throwable e) {
        result.fail(e);
      }
    }
docs: /*
  private boolean isSeedServer(ServerBartender server)
  {
  return (! "".equals(server.getAddress()) && server.getPort() > 0);
  }