154
|
1 package test.channeltest;
|
|
2
|
|
3 import java.util.ArrayList;
|
|
4 import java.util.Random;
|
|
5 import rep.channel.REPLogger;
|
161
|
6 import rep.channel.REPServerSocketChannel;
|
154
|
7
|
|
8 public class testNetworkSimulator {
|
|
9 private ArrayList<testSeMa> semaList;
|
|
10 private ArrayList<testSeMaSlave> semasList;
|
|
11 private ArrayList<testEditor> editorList;
|
|
12 private int NoSemaMaster;
|
|
13 private int NoSemaSlave;
|
|
14 private int NoEditor;
|
174
|
15 static public REPLogger logger = REPLogger.singleton();
|
154
|
16
|
|
17 public static void main(String[] args){
|
314
|
18 REPServerSocketChannel.isSimulation = true;
|
248
|
19 testNetworkSimulator testns = new testNetworkSimulator(3, 10, 90);
|
175
|
20 logger.setLogLevel(5);
|
154
|
21
|
|
22 testns.startTest();
|
|
23 }
|
|
24
|
|
25
|
|
26 /** Constructor. */
|
|
27 public testNetworkSimulator(int sm, int ss,int e){
|
|
28 semaList = new ArrayList<testSeMa>();
|
|
29 semasList = new ArrayList<testSeMaSlave>();
|
|
30 editorList = new ArrayList<testEditor>();
|
|
31 NoSemaMaster = sm;
|
|
32 NoSemaSlave = ss;
|
|
33 NoEditor = e;
|
|
34 }
|
|
35
|
|
36 public void startTest(){
|
161
|
37 int port = 11000;
|
|
38 int masterPort = port;
|
|
39 int slavePort;
|
|
40 String host = "localhost";
|
154
|
41 Random rand = new Random();
|
|
42 for (int i=0; i<NoSemaMaster; i++){
|
161
|
43 testSeMa sm = new testSeMa("SeMa"+i, host, port++);
|
154
|
44 semaList.add(sm);
|
|
45 sm.start();
|
|
46 }
|
174
|
47 logger.writeLog("all master SessionManagers were created",1);
|
208
|
48 sleep(100);
|
161
|
49 slavePort = port;
|
154
|
50 for (int i=0; i<NoSemaSlave; i++){
|
161
|
51 testSeMaSlave sm = new testSeMaSlave("SeMaS"+i,
|
|
52 host, port++, // own ip address
|
|
53 host, masterPort+rand.nextInt(NoSemaMaster)); // random server address to connect
|
154
|
54 semasList.add(sm);
|
|
55 sm.start();
|
|
56 }
|
203
|
57 logger.writeLog("all slave SessionManagers were created "+slavePort,1);
|
208
|
58 sleep(100);
|
154
|
59 for (int i=0; i<NoEditor; i++){
|
161
|
60 testEditor te = new testEditor("Editor"+i,host, masterPort+rand.nextInt(NoSemaMaster+NoSemaSlave));
|
154
|
61 editorList.add(te);
|
|
62 te.start();
|
|
63 }
|
174
|
64 logger.writeLog("all SessionManagers and Editors ware constructed.");
|
154
|
65 Checker();
|
|
66
|
|
67 try {
|
|
68 for (testEditor te: editorList)
|
|
69 te.join();
|
174
|
70 logger.writeLog("main: all clients exited.");
|
196
|
71 for (testSeMa te: semaList)
|
|
72 te.join();
|
|
73 for (testSeMaSlave te: semasList)
|
|
74 te.join();
|
154
|
75
|
|
76 } catch (InterruptedException e) {
|
|
77 e.printStackTrace();
|
|
78 }
|
196
|
79 //System.exit(0);
|
154
|
80 }
|
208
|
81
|
|
82
|
|
83 private void sleep(int time) {
|
230
|
84 try {
|
|
85 Thread.sleep(time);
|
|
86 } catch (InterruptedException e) {
|
|
87 // TODO Auto-generated catch block
|
|
88 e.printStackTrace();
|
208
|
89 }
|
|
90 }
|
154
|
91
|
|
92 public void Checker(){
|
|
93
|
|
94 }
|
|
95 }
|