/** * Create a ZooKeeper node asynchronously by specifying all parameters. * * @param path * @param data * @param acls * @param mode * @param callback */ public void create( Object path, Object data, List<ACL> acls, CreateMode mode, final Closure callback) { zookeeper.create( getPathAsString(path), serialize(data), acls, mode, new AsyncCallback.StringCallback() { public void processResult(int rc, String path, Object ctx, String name) { callback.setProperty("returnCode", rc); callback.setProperty("path", path); callback.setDelegate(ctx); callback.call(name); } }, this); }
/** * Create a PERSISTENT type node, but also create any intermediate parent nodes. * * @param path * @return * @throws InterruptedException * @throws KeeperException */ public String createPersistentNodeAndParents(Object path) throws InterruptedException, KeeperException { String spath = getPathAsString(path); String[] parts = spath.substring(1).split("/"); StringBuffer buff = new StringBuffer(); String fullPath = null; for (String p : parts) { buff.append("/").append(p); try { fullPath = zookeeper.create( buff.toString(), new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); } catch (KeeperException.NodeExistsException ignored) { fullPath = buff.toString(); } } return fullPath; }
/** * Create a ZooKeeper node synchronously by specifying all parameters. * * @param path * @param data * @param acls * @param mode * @return * @throws InterruptedException * @throws KeeperException */ public Node create(Object path, Object data, List<ACL> acls, CreateMode mode) throws InterruptedException, KeeperException { String s = zookeeper.create(getPathAsString(path), serialize(data), acls, mode); return new Node(s, mode); }