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();
|
46
|
37 System.out.println("name : "+ name);
|
44
|
38 Matcher matcher = pattern.matcher(name);
|
|
39 matcher.find();
|
|
40 String type = matcher.group(1);
|
|
41 int num = new Integer(matcher.group(2));
|
|
42
|
|
43
|
|
44 BulletinBoard cassaBBS = new NetworkJungleBulletinBoard(name);
|
|
45 String createBoardMessagePath = "/createBoardMessage";
|
|
46 String createBoardPath = "/createBoard";
|
|
47 String editMessagePath = "/editMessage";
|
|
48 String showBoardMessagePath = "/showBoardMessage";
|
|
49
|
|
50 Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
|
|
51 Servlet createBoard = new CreateBoardServlet(cassaBBS);
|
|
52 Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
|
|
53 Servlet index = new ShowBoardsServlet(cassaBBS,createBoardPath,showBoardMessagePath);
|
|
54 Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
|
|
55
|
45
|
56 Server serv = new Server(8080);
|
44
|
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 }
|