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;
|
|
24
|
|
25 public class StartBBSCodeSegment extends CodeSegment {
|
|
26
|
|
27 Receiver host = ids.create(CommandType.PEEK);
|
|
28 private Pattern pattern = Pattern.compile("^(node|cli)([0-9]+)$");
|
|
29
|
|
30 public StartBBSCodeSegment() {
|
|
31 host.setKey("host");
|
|
32 }
|
|
33
|
|
34 public void run() {
|
|
35 System.out.println("StartBBSCodeSegment");
|
|
36 String name = host.asString();
|
|
37 Matcher matcher = pattern.matcher(name);
|
|
38 matcher.find();
|
|
39 String type = matcher.group(1);
|
|
40 int num = new Integer(matcher.group(2));
|
|
41
|
|
42
|
|
43 BulletinBoard cassaBBS = new NetworkJungleBulletinBoard(name);
|
|
44 String createBoardMessagePath = "/createBoardMessage";
|
|
45 String createBoardPath = "/createBoard";
|
|
46 String editMessagePath = "/editMessage";
|
|
47 String showBoardMessagePath = "/showBoardMessage";
|
|
48
|
|
49 Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
|
|
50 Servlet createBoard = new CreateBoardServlet(cassaBBS);
|
|
51 Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
|
|
52 Servlet index = new ShowBoardsServlet(cassaBBS,createBoardPath,showBoardMessagePath);
|
|
53 Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
|
|
54
|
|
55 Server serv = null;
|
|
56 serv = new Server(9090);
|
|
57 ServletHandler context = new ServletHandler();
|
|
58 context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath);
|
|
59 context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath);
|
|
60 context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath);
|
|
61 context.addServletWithMapping(new ServletHolder(index),"/");
|
|
62 context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath);
|
|
63 serv.addHandler(context);
|
|
64 try {
|
|
65 serv.start();
|
|
66 } catch (Exception e) {
|
|
67 e.printStackTrace();
|
|
68 }
|
|
69
|
|
70 }
|
|
71
|
|
72 }
|