try {
ZooKeeperWatcherBase w = new ZooKeeperWatcherBase(bkConf.getZkTimeout());
zk = ZkUtils.createConnectedZookeeperClient(bkConf.getZkServers(), w);
LedgerManagerFactory mFactory = LedgerManagerFactory.newLedgerManagerFactory(bkConf, zk);
LedgerManager m = mFactory.newLedgerManager();
LedgerRangeIterator iter = m.getLedgerRanges();
if (cmdLine.hasOption("m")) {
List<ReadMetadataCallback> futures
= new ArrayList<ReadMetadataCallback>(LIST_BATCH_SIZE);
while (iter.hasNext()) {
LedgerRange r = iter.next();
for (Long lid : r.getLedgers()) {
ReadMetadataCallback cb = new ReadMetadataCallback(lid);
m.readLedgerMetadata(lid, cb);
futures.add(cb);
}
if (futures.size() >= LIST_BATCH_SIZE) {
while (futures.size() > 0) {
ReadMetadataCallback cb = futures.remove(0);
printLedgerMetadata(cb);
}
}
}
while (futures.size() > 0) {
ReadMetadataCallback cb = futures.remove(0);
printLedgerMetadata(cb);
}
} else {
while (iter.hasNext()) {
LedgerRange r = iter.next();
for (Long lid : r.getLedgers()) {
System.out.println(Long.toString(lid));
}
}
}