/** * Creates an instance of {@link ZKClientService} with the settings of this builder. * @return A new instance of {@link ZKClientService}. */ public ZKClientService build() { return new DefaultZKClientService(connectStr, timeout, connectionWatcher, auths); }
public DefaultZKClientService(String zkStr, int sessionTimeout, Watcher connectionWatcher, Multimap<String, byte[]> authInfos) { this.zkStr = zkStr; this.sessionTimeout = sessionTimeout; this.connectionWatchers = new CopyOnWriteArrayList<>(); this.authInfos = copyAuthInfo(authInfos); addConnectionWatcher(connectionWatcher); this.zooKeeper = new AtomicReference<>(); serviceDelegate = new ServiceDelegate(); }
@Override public OperationFuture<String> create(String path, @Nullable byte[] data, CreateMode createMode, boolean createParent, Iterable<ACL> acl) { return doCreate(path, data, createMode, createParent, ImmutableList.copyOf(acl), false); }
@Override public OperationFuture<NodeChildren> getChildren(String path, Watcher watcher) { SettableOperationFuture<NodeChildren> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getChildren(path, wrapWatcher(watcher), Callbacks.CHILDREN, result); return result; }
@Override public OperationFuture<ACLData> getACL(String path) { SettableOperationFuture<ACLData> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getACL(path, new Stat(), Callbacks.ACL, result); return result; }
@Override public OperationFuture<NodeChildren> getChildren(String path, Watcher watcher) { SettableOperationFuture<NodeChildren> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getChildren(path, wrapWatcher(watcher), Callbacks.CHILDREN, result); return result; }
@Override public OperationFuture<Stat> setACL(String path, Iterable<ACL> acl, int version) { SettableOperationFuture<Stat> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().setACL(path, ImmutableList.copyOf(acl), version, Callbacks.STAT, result); return result; }
@Override public OperationFuture<Stat> exists(String path, Watcher watcher) { SettableOperationFuture<Stat> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().exists(path, wrapWatcher(watcher), Callbacks.STAT_NONODE, result); return result; }
/** * Creates an instance of {@link ZKClientService} with the settings of this builder. * @return A new instance of {@link ZKClientService}. */ public ZKClientService build() { return new DefaultZKClientService(connectStr, timeout, connectionWatcher, auths); }
@Override public OperationFuture<ACLData> getACL(String path) { SettableOperationFuture<ACLData> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getACL(path, new Stat(), Callbacks.ACL, result); return result; }
public DefaultZKClientService(String zkStr, int sessionTimeout, Watcher connectionWatcher, Multimap<String, byte[]> authInfos) { this.zkStr = zkStr; this.sessionTimeout = sessionTimeout; this.connectionWatchers = new CopyOnWriteArrayList<>(); this.authInfos = copyAuthInfo(authInfos); addConnectionWatcher(connectionWatcher); this.zooKeeper = new AtomicReference<>(); serviceDelegate = new ServiceDelegate(); }
@Override public OperationFuture<String> create(String path, @Nullable byte[] data, CreateMode createMode, boolean createParent, Iterable<ACL> acl) { return doCreate(path, data, createMode, createParent, ImmutableList.copyOf(acl), false); }
@Override public OperationFuture<Stat> exists(String path, Watcher watcher) { SettableOperationFuture<Stat> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().exists(path, wrapWatcher(watcher), Callbacks.STAT_NONODE, result); return result; }
@Before public void beforeTest() throws Exception { zkServer = InMemoryZKServer.builder().setDataDir(TEMP_FOLDER.newFolder()).build(); zkServer.startAndWait(); CConfiguration cConf = CConfiguration.create(); String kafkaZKNamespace = cConf.get(KafkaConstants.ConfigKeys.ZOOKEEPER_NAMESPACE_CONFIG); kafkaZKConnect = zkServer.getConnectionStr(); if (kafkaZKNamespace != null) { ZKClientService zkClient = new DefaultZKClientService(zkServer.getConnectionStr(), 2000, null, ImmutableMultimap.<String, byte[]>of()); zkClient.startAndWait(); zkClient.create("/" + kafkaZKNamespace, null, CreateMode.PERSISTENT); zkClient.stopAndWait(); kafkaZKConnect += "/" + kafkaZKNamespace; } kafkaServer = createKafkaServer(kafkaZKConnect, TEMP_FOLDER.newFolder()); kafkaServer.startAndWait(); }
@Override public OperationFuture<Stat> setACL(String path, Iterable<ACL> acl, int version) { SettableOperationFuture<Stat> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().setACL(path, ImmutableList.copyOf(acl), version, Callbacks.STAT, result); return result; }
@Override public OperationFuture<NodeData> getData(String path, Watcher watcher) { SettableOperationFuture<NodeData> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getData(path, wrapWatcher(watcher), Callbacks.DATA, result); return result; }
@Override public OperationFuture<String> delete(String deletePath, int version) { SettableOperationFuture<String> result = SettableOperationFuture.create(deletePath, eventExecutor); getZooKeeper().delete(deletePath, version, Callbacks.VOID, result); return result; }
@Override public OperationFuture<NodeData> getData(String path, Watcher watcher) { SettableOperationFuture<NodeData> result = SettableOperationFuture.create(path, eventExecutor); getZooKeeper().getData(path, wrapWatcher(watcher), Callbacks.DATA, result); return result; }
@Override public OperationFuture<Stat> setData(String dataPath, byte[] data, int version) { SettableOperationFuture<Stat> result = SettableOperationFuture.create(dataPath, eventExecutor); getZooKeeper().setData(dataPath, data, version, Callbacks.STAT, result); return result; }
@Override public OperationFuture<String> delete(String deletePath, int version) { SettableOperationFuture<String> result = SettableOperationFuture.create(deletePath, eventExecutor); getZooKeeper().delete(deletePath, version, Callbacks.VOID, result); return result; }