44
|
1 package jungle.test.bbs.codesegment;
|
|
2
|
|
3 import java.util.regex.Pattern;
|
|
4 import java.util.regex.Matcher;
|
|
5
|
|
6 import javax.servlet.Servlet;
|
|
7
|
|
8 import jungle.test.bbs.BulletinBoard;
|
|
9 import jungle.test.bbs.CreateBoardMessageServlet;
|
|
10 import jungle.test.bbs.CreateBoardServlet;
|
|
11 import jungle.test.bbs.EditMessageServlet;
|
|
12 import jungle.test.bbs.JungleManager;
|
|
13 import jungle.test.bbs.NetworkJungleBulletinBoard;
|
|
14 import jungle.test.bbs.ShowBoardMessageServlet;
|
|
15 import jungle.test.bbs.ShowBoardsServlet;
|
|
16
|
|
17 import org.mortbay.jetty.Server;
|
|
18 import org.mortbay.jetty.servlet.ServletHandler;
|
|
19 import org.mortbay.jetty.servlet.ServletHolder;
|
|
20
|
|
21 import alice.codesegment.CodeSegment;
|
|
22 import alice.datasegment.CommandType;
|
|
23 import alice.datasegment.Receiver;
|
47
|
24 import alice.jungle.codesegment.LogUpdateCodeSegment;
|
44
|
25
|
|
26 public class StartBBSCodeSegment extends CodeSegment {
|
|
27
|
48
|
28 int bbsPort = 8080;
|
44
|
29 Receiver host = ids.create(CommandType.PEEK);
|
|
30 private Pattern pattern = Pattern.compile("^(node|cli)([0-9]+)$");
|
|
31
|
48
|
32 public StartBBSCodeSegment(int p) {
|
|
33 bbsPort = p;
|
|
34 host.setKey("host");
|
|
35 }
|
|
36
|
44
|
37 public StartBBSCodeSegment() {
|
|
38 host.setKey("host");
|
|
39 }
|
|
40
|
|
41 public void run() {
|
|
42 System.out.println("StartBBSCodeSegment");
|
|
43 String name = host.asString();
|
46
|
44 System.out.println("name : "+ name);
|
44
|
45 Matcher matcher = pattern.matcher(name);
|
|
46 matcher.find();
|
|
47 String type = matcher.group(1);
|
47
|
48
|
44
|
49 BulletinBoard cassaBBS = new NetworkJungleBulletinBoard(name);
|
|
50 String createBoardMessagePath = "/createBoardMessage";
|
|
51 String createBoardPath = "/createBoard";
|
|
52 String editMessagePath = "/editMessage";
|
|
53 String showBoardMessagePath = "/showBoardMessage";
|
|
54
|
|
55 Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
|
|
56 Servlet createBoard = new CreateBoardServlet(cassaBBS);
|
|
57 Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
|
|
58 Servlet index = new ShowBoardsServlet(cassaBBS,createBoardPath,showBoardMessagePath);
|
|
59 Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
|
|
60
|
48
|
61 Server serv = new Server(bbsPort);
|
44
|
62 ServletHandler context = new ServletHandler();
|
|
63 context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath);
|
|
64 context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath);
|
|
65 context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath);
|
|
66 context.addServletWithMapping(new ServletHolder(index),"/");
|
|
67 context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath);
|
|
68 serv.addHandler(context);
|
|
69 try {
|
|
70 serv.start();
|
|
71 } catch (Exception e) {
|
|
72 e.printStackTrace();
|
|
73 }
|
49
|
74
|
|
75 LogUpdateCodeSegment cs = new LogUpdateCodeSegment();
|
|
76
|
|
77 int num = new Integer(matcher.group(2));
|
|
78 if (num != 0) {
|
|
79 // try {Thread.sleep(100);} catch(Exception e) { e.printStackTrace(); }
|
|
80 LogUpdateCodeSegment cs2 = new LogUpdateCodeSegment("parent");
|
|
81 }
|
|
82
|
|
83
|
44
|
84
|
|
85 }
|
|
86
|
|
87 }
|