Esempio n. 1
0
 private void readClustersXml() throws SAXException, IOException {
   if (clustersUri.getScheme().equals("file")) {
     File file = new File(clustersUri);
     if (file.exists()) {
       Document doc = builder.parse(file);
       clusters = new ClustersXMLSerializer(builder).read(doc);
       clusters.setTimestamp(file.lastModified());
     }
   }
 }
Esempio n. 2
0
  private void updateMyInfo() throws TransformerException, IOException, SAXException {
    Clusters.Cluster cluster = clusters.getCluster(config.get(ClusterSettings.cluster_name));

    if (cluster == null) {
      clusters
          .getClusters()
          .add(cluster = new Clusters.Cluster(config.get(ClusterSettings.cluster_name)));
    }

    if (cluster.contains(serverId)) {
      // Do nothing
    } else {
      // Add myself to list
      cluster
          .getMembers()
          .add(
              new Clusters.Member(
                  serverId.getHost() + (serverId.getPort() == -1 ? "" : ":" + serverId.getPort())));

      Document document = new ClustersXMLSerializer(builder).write(clusters);

      // Save new version
      if (clustersUri.getScheme().equals("file")) {
        File clustersFile = new File(clustersUri);
        if (clustersFile.lastModified() != clusters.getTimestamp()) {
          readClustersXml(); // Re-read XML file
          updateMyInfo(); // Try again
          return;
        }

        // Save new version
        transformer.transform(new DOMSource(document), new StreamResult(clustersFile));
        clusters.setTimestamp(clustersFile.lastModified());
      } else {
        // TODO Implement HTTP version
      }
    }
  }