changeset 121:8949d0ecf1f6

refactor Topology
author akahori
date Tue, 11 Dec 2018 15:46:09 +0900
parents 7ca232bc1009
children 3a0f8a93c84a cf00c3cd7672
files src/main/java/christie/topology/manager/ConfigWaiter.java src/main/java/christie/topology/manager/StartTopologyManager.java src/main/java/christie/topology/node/IncomingConnectionInfo.java
diffstat 3 files changed, 28 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/topology/manager/ConfigWaiter.java	Tue Dec 11 15:43:45 2018 +0900
+++ b/src/main/java/christie/topology/manager/ConfigWaiter.java	Tue Dec 11 15:46:09 2018 +0900
@@ -25,6 +25,7 @@
     protected void run(CodeGearManager cgm) {
         nodeNum--;
         if (nodeNum == 0) {
+            getLocalDGM().put("start", "start");
             for (String nodeName: waiterNodeNames) getDGM(nodeName).put("start", "start");
             getLocalDGM().put("startTime", System.currentTimeMillis());
             getLocalDGM().put("running", true);
--- a/src/main/java/christie/topology/manager/StartTopologyManager.java	Tue Dec 11 15:43:45 2018 +0900
+++ b/src/main/java/christie/topology/manager/StartTopologyManager.java	Tue Dec 11 15:46:09 2018 +0900
@@ -1,34 +1,48 @@
 package christie.topology.manager;
 
+import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import christie.codegear.StartCodeGear;
+import christie.topology.node.Start;
 
 public class StartTopologyManager extends StartCodeGear{
 
     public StartTopologyManager(String[] args){
-        super(createCGM(new TopologyManagerConfig(args).localPort));
-        getLocalDGM().put("topologyManagerConfig", new TopologyManagerConfig(args));
+        this(createCGM(new TopologyManagerConfig(args).localPort),
+                new TopologyManagerConfig(args));
+    }
+
+    public StartTopologyManager(TopologyManagerConfig topologyManagerConfig){
+        this(createCGM(topologyManagerConfig.localPort), topologyManagerConfig);
     }
 
     public StartTopologyManager(CodeGearManager cgm, TopologyManagerConfig topologyManagerConfig){
         super(cgm);
-        getLocalDGM().put("topologyManagerConfig", topologyManagerConfig);
+        cgm.setup(new TopologyManager());
+        cgm.getLocalDGM().put("topologyManagerConfig", topologyManagerConfig);
+    }
+
+    public StartTopologyManager(TopologyManagerConfig conf, CodeGear startCG) {
+        this(createCGM(conf.localPort), conf, startCG);
+
+    }
+
+    public StartTopologyManager(CodeGearManager cgm, TopologyManagerConfig conf, CodeGear startCG) {
+        super(cgm);
+        cgm.setup(new TopologyManager());
+        cgm.setup(new Start());
+        cgm.getLocalDGM().put("startCG", startCG);
+        cgm.getLocalDGM().put("topologyNodeConfig", conf);
+
     }
 
 
-    public StartTopologyManager(TopologyManagerConfig topologyManagerConfig){
-        super(createCGM(topologyManagerConfig.localPort));
-        getLocalDGM().put("topologyManagerConfig", topologyManagerConfig);
-    }
 
     public static void main(String[] args) {
         TopologyManagerConfig topologyManagerConfig = new TopologyManagerConfig(args);
         new StartTopologyManager(topologyManagerConfig);
     }
 
-    @Override
-    protected void run(CodeGearManager cgm){
-        cgm.setup(new TopologyManager());
-    }
+
 }
 
--- a/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Dec 11 15:43:45 2018 +0900
+++ b/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Dec 11 15:46:09 2018 +0900
@@ -9,8 +9,6 @@
 
 
 public class IncomingConnectionInfo extends CodeGear {
-    @Peek
-    String nodeName;
 
     @Take
     HostMessage remoteNodeInfo;
@@ -25,8 +23,8 @@
         cgm.createRemoteDGM(connectionName,
                             remoteNodeInfo.getHostName(),
                             remoteNodeInfo.getPort());
-        getDGM(connectionName).put("reverseNodeName", nodeName);
-
+        
+        getDGM(connectionName).put("reverseNodeName", "node");
         getLocalDGM().put("cMember", connectionName);
         cgm.setup(new CreateConnectionList());
         cgm.setup(new IncomingConnectionInfo());