@Override public ZooKeeper newZooKeeper(String connectString, int sessionTimeout, Watcher watcher, boolean canBeReadOnly) throws Exception { ZooKeeper zooKeeper = actualZookeeperFactory.newZooKeeper(connectString, sessionTimeout, watcher, canBeReadOnly); AuthInfo auth = authInfo.get(); if ( auth != null ) { zooKeeper.addAuthInfo(auth.scheme, auth.auth); } return zooKeeper; } };
@Override public ZooKeeper getZooKeeper() throws Exception { synchronized(this) { if ( zooKeeperHandle == null ) { connectionString = ensembleProvider.getConnectionString(); zooKeeperHandle = zookeeperFactory.newZooKeeper(connectionString, sessionTimeout, watcher, canBeReadOnly); } helper = new Helper() { @Override public ZooKeeper getZooKeeper() throws Exception { return zooKeeperHandle; } @Override public String getConnectionString() { return connectionString; } }; return zooKeeperHandle; } }