-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServer.java
More file actions
117 lines (102 loc) · 3.71 KB
/
Copy pathServer.java
File metadata and controls
117 lines (102 loc) · 3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package zookeeper;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
// import zookeeper classes
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.Watcher.Event.KeeperState;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.AsyncCallback.StatCallback;
import org.apache.zookeeper.KeeperException.Code;
import org.apache.zookeeper.data.Stat;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.ZooDefs;
import org.apache.log4j.Logger;
//import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
public class Server{
public static ZooKeeper zoo;
public static boolean isConnected = false;
public static void main(String[] args){
org.apache.log4j.BasicConfigurator.configure();
Logger.getLogger("org.apache.zookeeper").setLevel(Level.WARN);
//String host = "192.168.56.101:2181";
String host = "localhost:2181,localhost:2182,localhost:2183";
String inventoryPath = "C:\\Users\\Robert\\Documents\\UT\\Spring2016\\ConcurrentandDistributed\\ZookeeperProject\\input\\inventory.txt";
System.out.printf("starting");
try{
zoo = new ZooKeeper(host,5000, new Watcher() {
public void process(WatchedEvent we) {
if (we.getState() == KeeperState.SyncConnected) {
isConnected = true;
}
}
});
while (!isConnected){
Thread.sleep(100);
}
} catch (IOException e){}
catch (InterruptedException e){}
byte[] placeholder = {'0'};
try{
//zoo.delete("/store/shoes", -1);
zoo.create("/command" , placeholder, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
try{
zoo.create("/store", placeholder, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
//format "customername item quantity"
try{
zoo.create("/orders", placeholder, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
//format "#, #, #"
try{
zoo.create("/customers", placeholder, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
try{
zoo.create("/commandNum", placeholder, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
try{
zoo.create("/orderNum", ("0").getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
} catch (Exception e){}
try{
// parse the inventory file
BufferedReader br = new BufferedReader(new FileReader(new File(inventoryPath)));
String line;
while((line = br.readLine()) != null)
{
line = line.trim();
if(!line.equals(""))
{
String[] info = line.split(" ");
byte[] itemCount = info[1].getBytes();
zoo.create("/store/" + info[0], itemCount, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
}
}
//byte[] shoeCount = {20};
//zoo.create("/store/shoes", shoeCount, ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
//set watch
}catch (Exception e){System.out.println(e.getMessage());}
/*for (String thisProduct : myStore.list().keySet()){
byte[] data = {myStore.list().get(thisProduct)};
zoo.create("/store/" + thisProduct, data , ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.);
}
zoo.create("/user" , ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL);*/
try{
zoo.getData("/command", new CommandWatcher(zoo), null);
System.out.println("watching command kkkkkkkkkkkkkkkk");
} catch (KeeperException e){}
catch (InterruptedException ex){}
System.out.println("waiting");
try{
while (true){
Thread.sleep(1000);
}
} catch (InterruptedException e){}
}
}