Пример #1
0
  public static int[] buildPartitions(String[] partitionArray) throws ConfigurationException {
    IntSet partitions = new IntOpenHashSet();
    try {
      for (int i = 0; i < partitionArray.length; ++i) {
        Matcher matcher = PARTITION_PATTERN.matcher(partitionArray[i]);
        if (!matcher.matches()) {
          throw new ConfigurationException("Invalid partition: " + partitionArray[i]);
        }
        String[] partitionRange = partitionArray[i].split("-");
        int start = Integer.parseInt(partitionRange[0]);
        int end;
        if (partitionRange.length > 1) {
          end = Integer.parseInt(partitionRange[1]);
          if (end < start) {
            throw new ConfigurationException("invalid partition range: " + partitionArray[i]);
          }
        } else {
          end = start;
        }

        for (int k = start; k <= end; ++k) {
          partitions.add(k);
        }
      }
    } catch (Exception e) {
      throw new ConfigurationException(
          "Error parsing '"
              + SENSEI_PROPERTIES
              + "': "
              + PARTITIONS
              + "="
              + Arrays.toString(partitionArray),
          e);
    }

    int[] ret = partitions.toIntArray();
    Arrays.sort(ret);
    return ret;
  }
Пример #2
0
  public static void main(String[] args) throws Exception {
    blacklist = loadCreation(PartitionsAndFiles.getBlackList());
    whitelist = loadCreation(PartitionsAndFiles.getWhiteList());

    System.out.println("Read lists: wl: " + whitelist.size() + " bl:" + blacklist.size());

    PropagateBlacklist pb =
        initialPropagation(PartitionsAndFiles.getLinkFrom(), PartitionsAndFiles.getLinkTo());

    int pass = 1;
    logger.info(
        "Pass:"******" wl: "
            + whitelist.size()
            + " bl:"
            + blacklist.size()
            + " remaining links:"
            + pb.linkFrom.size());
    while (pb.blacklisted > 0) {
      pass++;
      PropagateBlacklist oldPb = pb;
      pb = new PropagateBlacklist();
      pb.process(pb.linkFrom, pb.linkTo);
      logger.info(
          "Pass:"******" wl: "
              + whitelist.size()
              + " bl:"
              + blacklist.size()
              + " remaining links:"
              + pb.linkFrom.size());
    }

    new FileOpener()
        .writeObject(PartitionsAndFiles.getExpandedBlackListFile(), blacklist.toIntArray());
  }