Exemplo n.º 1
0
  public UpdateRackHeartbeat(RackHeartbeat rack) {
    _id = rack.getId();
    _clusterId = rack.getCluster().id();

    long crc = 0;

    crc = Crc64.generate(crc, _id);
    crc = Crc64.generate(crc, _clusterId);

    ServerHeartbeat[] servers = rack.getServers();

    _servers = new UpdateServerHeartbeat[servers.length];

    for (int i = 0; i < _servers.length; i++) {
      ServerHeartbeat server = servers[i];

      if (server != null) {
        _servers[i] = server.getUpdate();
      } else {
        _servers[i] = new UpdateServerHeartbeat();
      }

      crc = Crc64.generate(crc, _servers[i].getCrc());
    }

    _sequence = 0;
    _crc = crc;
  }
  /** Create an external/configured server */
  @Override
  public ServerHeartbeat server(
      String address,
      int port,
      boolean isSSL,
      String clusterId,
      String displayName,
      boolean isDynamic) {
    Objects.requireNonNull(address);
    Objects.requireNonNull(clusterId);

    if (address.isEmpty()) {
      address = "127.0.0.1";
    }

    /*
    if (port <= 0) {
      throw new IllegalArgumentException();
    }
    */

    ClusterHeartbeat cluster = createCluster(clusterId);

    ServerHeartbeat server;

    if (isDynamic) {
      server = cluster.createDynamicServer(address, port, isSSL);
    } else {
      server = cluster.createServer(address, port, isSSL);
    }

    if (displayName != null) {
      server.setDisplayName(displayName);
    }

    if (!isDynamic) {
      cluster.addSeedServer(server);
    }

    return server;
  }
  private void buildPods(PodHeartbeatImpl podHeartbeatImpl) {
    ServerHeartbeat serverSelf = (ServerHeartbeat) _bartender.serverSelf();

    for (PodBuilderConfig pod : _podMap.values()) {
      UpdatePod updatePod = initBuilderPod(pod);

      podHeartbeatImpl.initPod(updatePod);
    }

    ClusterHeartbeat cluster = serverSelf.getCluster();

    podHeartbeatImpl.initPod(initClusterPodHub(cluster));
    podHeartbeatImpl.initPod(initClusterPod(cluster));
    podHeartbeatImpl.initPod(initLocalPod());

    /*
    for (PodConfig podConfig : _podConfigMap.values()) {
      podHeartbeatImpl.initPodConfig(podConfig);
    }
    */
  }
  /** Create an external/configured server */
  @Override
  public ServerHeartbeat serverDyn(
      String address, int port, boolean isSSL, String clusterId, String displayName) {
    Objects.requireNonNull(address);
    Objects.requireNonNull(clusterId);

    /*
    if (port <= 0) {
      throw new IllegalArgumentException();
    }
    */

    ClusterHeartbeat cluster = createCluster(clusterId);

    ServerHeartbeat server = cluster.createServer(address, port, isSSL);

    if (displayName != null) {
      server.setDisplayName(displayName);
    }

    cluster.addDynamicServer(server);

    return server;
  }