/**
*
*/
package zk;
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import org.apache.zookeeper.AsyncCallback.StringCallback;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.Code;
import org.apache.zookeeper.ZooDefs.Ids;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.data.Stat;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author dzh
* @date May 24, 2016 11:08:13 PM
* @since 1.0
*/
public class TestApi {
static Logger LOG = LoggerFactory.getLogger(TestApi.class);
private ZooKeeper zk;
@Before
public void initZk() throws IOException {
zk = new ZooKeeper("127.0.0.1:2181", 10000, null);
}
@After
public void closeZk() throws IOException, InterruptedException {
if (zk != null) {
zk.close();
}
}
@Test
public void testTimeZone() {
Date d = new Date();
System.out.println(d.getTime());
Calendar c = Calendar.getInstance();
System.out.println(c.getTimeZone());
System.out.println(c.getTimeInMillis());
System.out.println(c.getTimeZone().getRawOffset());
System.out.println(c.get(Calendar.HOUR_OF_DAY));
TimeZone t = TimeZone.getTimeZone("Asia/Tokyo");
c = Calendar.getInstance(t);
// c.setTimeZone(t);
System.out.println(c.getTimeZone());
System.out.println(c.getTimeInMillis());
System.out.println(c.getTimeZone().getRawOffset());
System.out.println(c.get(Calendar.HOUR_OF_DAY));
long l = 3600 * 1000;
d = new Date(l);
System.out.println(d.toString());
d= new Date(1466145792000L);
System.out.println(d.toString());
//9
d= new Date(1466142192000L);
System.out.println(d.toString());
//8
d= new Date(Long.MAX_VALUE);
System.out.println(d.toString());
}
public void testCreate() {
class CreateCallback implements StringCallback {
@Override
public void processResult(int rc, String path, Object ctx, String name) {
LOG.info("code->{} path->{}", rc, path);
switch (Code.get(rc)) {
case CONNECTIONLOSS:
// TODO re-create
break;
case OK:
break;
case NODEEXISTS:
break;
default:
LOG.error("error code->{} path->{}", rc, path);
}
}
}
if (zk != null)
zk.create("/test", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT, new CreateCallback(), null);
}
public void testDelete() {
// zk.delete(path, version, cb, ctx);
}
public void testExists() {
}
public void testSetData() {
}
public void testGetChildren() {
}
public void testMultiop() {
// Op.check(path, version)
// Op.delete(path, version)
// zk.multi(ops, cb, ctx);
// zk.multi(ops)
}
public void testTransaction() {
// Transaction t = new Transaction();
// t.check(path, version);
// t.create(path, data, acl, createMode)
// t.delete(path, version);
// t.commit(cb, ctx);
// t.commit();
}
public void testStat() throws KeeperException, InterruptedException {
String path = "/";
listStat(path);
}
private void listStat(String path) throws KeeperException, InterruptedException {
for (String child : zk.getChildren(path, false)) {
Stat stat = new Stat();
byte[] data = zk.getData(path, false, stat);
LOG.info(stat.toString());
listStat(path + "/" + child);
}
}
}