changeset 61:20d4c0cce914

refactor Topology Node
author akahori
date Tue, 28 Aug 2018 18:56:45 +0900
parents cfd79a71f9cd
children ea03d9c01601
files src/main/java/christie/topology/node/ConfigurationFinish.java src/main/java/christie/topology/node/IncomingAbstractHostName.java src/main/java/christie/topology/node/IncomingConnectionInfo.java src/main/java/christie/topology/node/IncomingReverseKey.java src/main/java/christie/topology/node/Start.java src/main/java/christie/topology/node/StartTopologyNode.java src/main/java/christie/topology/node/TopologyNode.java
diffstat 7 files changed, 48 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/christie/topology/node/ConfigurationFinish.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/ConfigurationFinish.java	Tue Aug 28 18:56:45 2018 +0900
@@ -1,6 +1,7 @@
 package christie.topology.node;
 
 import christie.annotation.Peek;
+import christie.annotation.Take;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import christie.daemon.Config;
@@ -18,19 +19,16 @@
     @Peek
     TopologyNodeConfig config;
 
-    private CodeGear startCS;
-
-    public ConfigurationFinish(CodeGear startCS) {
+    public ConfigurationFinish() {
         // System.err.println("config finish ...") ;
-        this.startCS = startCS;
     }
 
     @Override
     protected void run(CodeGearManager cgm) {
         // System.err.println(" rcount = " + Integer.toString(rcount) + " " + Integer.toString(ncount));
         if (reverseCount == configNodeNum) {
-            getDGM("manager").put( "done", ValueFactory.createNilValue());
-            cgm.setup(new Start(startCS));
+            getDGM("manager").put( "done", "done");
+            cgm.setup(new Start());
 
             if (config.useKeepAlive)
                 cgm.setup(new KeepAlive());
@@ -40,6 +38,6 @@
             return;
         }
 
-        new ConfigurationFinish(startCS);
+        new ConfigurationFinish();
     }
 }
--- a/src/main/java/christie/topology/node/IncomingAbstractHostName.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/IncomingAbstractHostName.java	Tue Aug 28 18:56:45 2018 +0900
@@ -2,7 +2,6 @@
 
 
 import christie.annotation.Peek;
-import christie.annotation.Take;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 
--- a/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/IncomingConnectionInfo.java	Tue Aug 28 18:56:45 2018 +0900
@@ -1,7 +1,6 @@
 package christie.topology.node;
 
 
-import christie.annotation.Take;
 import christie.annotation.TakeFrom;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
@@ -29,10 +28,11 @@
 
     @Override
     protected void run(CodeGearManager cgm) {
+
         log.info(hostInfo.toString());
         if ( hostInfo.hostName.equals("")) { // end case
             log.info(" topology node finished " + absName);
-            getLocalDGM().put("configNodeNum", count);
+            getLocalDGM().put("configNodeNum", 0);
             return ;
         }
         log.info("topology node " + absName + " will connect to " + hostInfo.hostName );
@@ -41,11 +41,16 @@
             getDGM("manager").put(absName, hostInfo);
         } else {
             cgm.createRemoteDGM(hostInfo.connectionName, hostInfo.hostName, hostInfo.port);
+
             getDGM(hostInfo.connectionName).put("reverseKey", hostInfo.reverseName);
+            getDGM(hostInfo.connectionName).put("reverseHostName", hostInfo.hostName);
+            getDGM(hostInfo.connectionName).put("reverseKeyPort", hostInfo.port);
+
             count++;
 
             getLocalDGM().put("cMember", hostInfo.connectionName);
             cgm.setup(new CreateConnectionList());
+
         }
         cgm.setup(new IncomingConnectionInfo(absName, count, managerKey));
     }
--- a/src/main/java/christie/topology/node/IncomingReverseKey.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/IncomingReverseKey.java	Tue Aug 28 18:56:45 2018 +0900
@@ -12,14 +12,23 @@
     @Take
     String reverseKey;
 
+    @Take
+    int reverseKeyPort;
+
+    @Take
+    String reverseKeyHostName;
+
+
     @Peek
     int reverseCount;
 
     @Override
     protected void run(CodeGearManager cgm) {
         //String from = this.reverseKey.from;
+
         //IncomingTcpConnection s = DataSegment.getAccept(from);
         //if (s != null) s.setReverseKey(reverseKey);
+        cgm.createRemoteDGM(reverseKey,reverseKeyHostName,reverseKeyPort);
 
         reverseCount++;
         getLocalDGM().put( "reverseCount", reverseCount);
--- a/src/main/java/christie/topology/node/Start.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/Start.java	Tue Aug 28 18:56:45 2018 +0900
@@ -1,21 +1,24 @@
 package christie.topology.node;
 
 import christie.annotation.Peek;
+import christie.annotation.PeekFrom;
+import christie.annotation.Take;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import org.apache.log4j.Logger;
 
 public class Start extends CodeGear {
 
-    @Peek
+    @PeekFrom("manager")
     boolean start;
 
     private Logger logger = Logger.getLogger(Start.class);
-    private CodeGear startCS;
+
+    @Take
+    CodeGear startCS;
 
 
-    public Start(CodeGear startCS) {
-        this.startCS = startCS;
+    public Start() {
     }
 
     @Override
--- a/src/main/java/christie/topology/node/StartTopologyNode.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/StartTopologyNode.java	Tue Aug 28 18:56:45 2018 +0900
@@ -10,13 +10,15 @@
 
     public StartTopologyNode(CodeGearManager cgm, TopologyNodeConfig conf, CodeGear startCG) {
         super(cgm);
-        cgm.setup(new TopologyNode(conf, startCG));
+        cgm.setup(new TopologyNode());
+        cgm.getLocalDGM().put("startCG", startCG);
+        cgm.getLocalDGM().put("topologyNodeConfig", conf);
 
     }
 
     public static void main(String[] args) {
         TopologyNodeConfig conf = new TopologyNodeConfig(args);
-        new TopologyNode(conf, null);
+        //new TopologyNode(conf, null);
     }
 
     @Override
--- a/src/main/java/christie/topology/node/TopologyNode.java	Tue Aug 28 10:49:26 2018 +0900
+++ b/src/main/java/christie/topology/node/TopologyNode.java	Tue Aug 28 18:56:45 2018 +0900
@@ -1,5 +1,6 @@
 package christie.topology.node;
 
+import christie.annotation.Peek;
 import christie.codegear.CodeGear;
 import christie.codegear.CodeGearManager;
 import christie.topology.HostMessage;
@@ -11,48 +12,46 @@
 
 public class TopologyNode extends CodeGear{
 
-    private final String manager;
-    private TopologyNodeConfig topologyNodeConfig;
-    private CodeGear startCS;
+    @Peek
+    TopologyNodeConfig topologyNodeConfig;
 
-    public TopologyNode(TopologyNodeConfig conf, CodeGear startCS) {
-        this.topologyNodeConfig = conf;
-        this.startCS = startCS;
-        this.manager = conf.getManagerKey();
+    public TopologyNode() {
     }
 
     @Override
     protected void run(CodeGearManager cgm) {
-        cgm.createRemoteDGM(manager,
+
+        cgm.createRemoteDGM(topologyNodeConfig.getManagerKey(),
                             topologyNodeConfig.getManagerHostName(),
                             topologyNodeConfig.getManagerPort());
+
+
         String localHostName = null;
         try {
             localHostName = InetAddress.getLocalHost().getHostAddress();
         } catch (UnknownHostException e) {
             e.printStackTrace();
         }
-        cgm.setup(new SaveCookie());
+
+
         if (cgm.localPort == 0) {
             // local test mode
             localHostName = topologyNodeConfig.getLocalKey();
+
         }
         getLocalDGM().put("config" , topologyNodeConfig);
 
         HostMessage host = new HostMessage(localHostName, cgm.localPort);
         host.cookie = topologyNodeConfig.cookie;
-        getDGM(manager).put("hostMessage", host);
 
+        getDGM(topologyNodeConfig.getManagerKey()).put("hostMessage", host);
         getLocalDGM().put("_CLIST", new ArrayList<String>());
-        //getDGM(local).put("_CLIST", new ArrayList<String>());
-
-        cgm.setup(new IncomingAbstractHostName(topologyNodeConfig));
-
-        cgm.setup(new IncomingReverseKey());
-
         getLocalDGM().put("reverseCount", 0);
 
-        cgm.setup(new ConfigurationFinish(startCS));
+        cgm.setup(new SaveCookie());
+        cgm.setup(new IncomingAbstractHostName(topologyNodeConfig));
+        cgm.setup(new IncomingReverseKey());
+        cgm.setup(new ConfigurationFinish());
 
     }
 }