use of org.apache.zookeeper.AsyncCallback.StringCallback in project pulsar by yahoo.
the class MetaStoreImplZookeeper method getManagedLedgerInfo.
@Override
public void getManagedLedgerInfo(final String ledgerName, final MetaStoreCallback<ManagedLedgerInfo> callback) {
// Try to get the content or create an empty node
zk.getData(prefix + ledgerName, false, (rc, path, ctx, readData, stat) -> executor.submit(safeRun(() -> {
if (rc == Code.OK.intValue()) {
try {
ManagedLedgerInfo info = parseManagedLedgerInfo(readData);
info = updateMLInfoTimestamp(info);
callback.operationComplete(info, new ZKStat(stat));
} catch (ParseException | InvalidProtocolBufferException e) {
callback.operationFailed(new MetaStoreException(e));
}
} else if (rc == Code.NONODE.intValue()) {
log.info("Creating '{}{}'", prefix, ledgerName);
StringCallback createcb = (rc1, path1, ctx1, name) -> {
if (rc1 == Code.OK.intValue()) {
ManagedLedgerInfo info = ManagedLedgerInfo.getDefaultInstance();
callback.operationComplete(info, new ZKStat());
} else {
callback.operationFailed(new MetaStoreException(KeeperException.create(Code.get(rc1))));
}
};
ZkUtils.asyncCreateFullPathOptimistic(zk, prefix + ledgerName, new byte[0], Acl, CreateMode.PERSISTENT, createcb, null);
} else {
callback.operationFailed(new MetaStoreException(KeeperException.create(Code.get(rc))));
}
})), null);
}
use of org.apache.zookeeper.AsyncCallback.StringCallback in project zookeeper by apache.
the class LsCommand method exec.
@Override
public boolean exec() throws CliException {
if (args.length < 2) {
throw new MalformedCommandException(getUsageStr());
}
String path = args[1];
boolean watch = cl.hasOption("w");
boolean withStat = cl.hasOption("s");
boolean recursive = cl.hasOption("R");
try {
if (recursive) {
ZKUtil.visitSubTreeDFS(zk, path, watch, new StringCallback() {
@Override
public void processResult(int rc, String path, Object ctx, String name) {
out.println(path);
}
});
} else {
Stat stat = withStat ? new Stat() : null;
List<String> children = zk.getChildren(path, watch, stat);
printChildren(children, stat);
}
} catch (KeeperException | InterruptedException ex) {
throw new CliWrapperException(ex);
}
return watch;
}
use of org.apache.zookeeper.AsyncCallback.StringCallback in project zookeeper by apache.
the class SyncCallTest method testSync.
@Test
public void testSync() throws Exception {
try {
LOG.info("Starting ZK:" + (new Date()).toString());
opsCount = new CountDownLatch(limit);
ZooKeeper zk = createClient();
LOG.info("Beginning test:" + (new Date()).toString());
for (int i = 0; i < 50; i++) zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, (StringCallback) this, results);
for (int i = 50; i < 100; i++) {
zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, (Create2Callback) this, results);
}
zk.sync("/test", this, results);
for (int i = 0; i < 100; i++) zk.delete("/test" + i, 0, this, results);
for (int i = 0; i < 100; i++) zk.getChildren("/", new NullWatcher(), (ChildrenCallback) this, results);
for (int i = 0; i < 100; i++) zk.getChildren("/", new NullWatcher(), (Children2Callback) this, results);
LOG.info("Submitted all operations:" + (new Date()).toString());
if (!opsCount.await(10000, TimeUnit.MILLISECONDS))
Assert.fail("Haven't received all confirmations" + opsCount.getCount());
for (int i = 0; i < limit; i++) {
Assert.assertEquals(0, (int) results.get(i));
}
} catch (IOException e) {
System.out.println(e.toString());
}
}
Aggregations