summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/DirectoryApp.java
diff options
context:
space:
mode:
Diffstat (limited to 'same/src/main/java/com/orbekk/same/DirectoryApp.java')
-rw-r--r--same/src/main/java/com/orbekk/same/DirectoryApp.java62
1 files changed, 48 insertions, 14 deletions
diff --git a/same/src/main/java/com/orbekk/same/DirectoryApp.java b/same/src/main/java/com/orbekk/same/DirectoryApp.java
index c484d0f..e75b10f 100644
--- a/same/src/main/java/com/orbekk/same/DirectoryApp.java
+++ b/same/src/main/java/com/orbekk/same/DirectoryApp.java
@@ -1,11 +1,17 @@
package com.orbekk.same;
-import java.util.List;
+import java.io.IOException;
+import java.net.UnknownHostException;
+import java.util.concurrent.CountDownLatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.orbekk.same.discovery.DirectoryService;
+import com.google.protobuf.RpcCallback;
+import com.orbekk.protobuf.NewRpcChannel;
+import com.orbekk.protobuf.Rpc;
+import com.orbekk.protobuf.RpcChannel;
+import com.orbekk.same.Services.NetworkDirectory;
public class DirectoryApp {
private static final Logger logger =
@@ -19,20 +25,48 @@ public class DirectoryApp {
}
public void run() {
- ConnectionManager connections = new ConnectionManagerImpl(
- CONNECTION_TIMEOUT, READ_TIMEOUT);
- DirectoryService directory = connections.getDirectory(args[0]);
+ String host = args[0];
+ int port = Integer.valueOf(args[1]);
+ NewRpcChannel channel = null;
try {
- List<String> networks = directory.getNetworks();
- System.out.println("Available networks:");
- System.out.println(networks);
- System.out.println("Registering network.");
- directory.registerNetwork("InvalidNetwork", "InvalidUrl");
- System.out.println("Available networks:");
- System.out.println(directory.getNetworks());
- } catch (Exception e) {
- logger.error("Unable to contact directory service.", e);
+ channel = NewRpcChannel.create(host, port);
+ } catch (UnknownHostException e1) {
+ e1.printStackTrace();
+ System.exit(1);
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ System.exit(1);
}
+ Services.Directory directory = Services.Directory.newStub(channel);
+
+ final CountDownLatch finished = new CountDownLatch(1);
+ final Rpc rpc = new Rpc();
+ RpcCallback<NetworkDirectory> callback =
+ new RpcCallback<NetworkDirectory>() {
+ @Override public void run(NetworkDirectory directory) {
+ if (rpc.failed()) {
+ System.err.println("Failed to get network list.");
+ } else {
+ System.out.println("Networks:");
+ for (Services.MasterState network :
+ directory.getNetworkList()) {
+ System.out.println(network.getNetworkName() + "\t" +
+ network.getMasterUrl());
+ }
+ }
+ finished.countDown();
+ }
+ };
+ directory.getNetworks(rpc, Services.Empty.getDefaultInstance(),
+ callback);
+ try {
+ finished.await();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+
+ System.out.println("Closing channel.");
+ channel.close();
}
public static void main(String[] args) {