190
|
1 package app.bbs.codesegment;
|
|
2
|
|
3 import java.util.regex.Pattern;
|
|
4 import java.util.regex.Matcher;
|
|
5
|
|
6 import javax.servlet.Servlet;
|
|
7
|
|
8 import org.eclipse.jetty.server.Server;
|
|
9 import org.eclipse.jetty.servlet.ServletHandler;
|
|
10 import org.eclipse.jetty.servlet.ServletHolder;
|
|
11 import org.eclipse.jetty.util.thread.ThreadPool;
|
|
12
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardMessageServlet;
|
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardServlet;
|
|
15 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageServlet;
|
|
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageUseGetServlet;
|
|
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.ShowBoardsServlet;
|
|
18
|
|
19
|
|
20
|
|
21 import alice.codesegment.CodeSegment;
|
|
22 import alice.datasegment.CommandType;
|
|
23 import alice.datasegment.Receiver;
|
|
24 import app.bbs.NetworkBulletinBoard;
|
|
25 import app.bbs.NetworkJungleBulletinBoard;
|
|
26 import app.bbs.RequestNumCheckServlet;
|
|
27 import app.bbs.ShowMessageWithTimeStampServlet;
|
|
28 import app.bbs.thinks.CreateNode;
|
|
29 import app.bbs.thinks.EditAttributeServlet;
|
|
30 import app.bbs.thinks.EditNodeName;
|
|
31 import app.bbs.thinks.NetworkMatrixJungleBulletinBoard;
|
|
32 import app.bbs.thinks.ShowBoardsServletMatrix;
|
|
33 import app.bbs.thinks.ShowMatrix;
|
|
34 import app.bbs.thinks.ShowMessageWithTimeStampServletMatrix;
|
|
35 import app.bbs.thinks.createAttributeMatrix;
|
|
36 import app.bbs.thinks.deleteAttributeServlet;
|
|
37 import app.bbs.thinks.deleteNodeServlet;
|
|
38 import app.bbs.thinks.permission;
|
|
39
|
|
40 public class StartmaTrixBBSCodeSegment extends CodeSegment {
|
|
41
|
|
42 int bbsPort = 8080;
|
|
43 Receiver host = ids.create(CommandType.PEEK);
|
|
44 private Pattern pattern = Pattern.compile("^(node|cli)([0-9]+)$");
|
|
45 private String[] args;
|
|
46 boolean persistentFlag = false;
|
|
47
|
|
48 public StartmaTrixBBSCodeSegment(String[] _args, int p) {
|
|
49 args = _args;
|
|
50 bbsPort = p;
|
|
51 host.setKey("host");
|
|
52 }
|
|
53
|
|
54 public StartmaTrixBBSCodeSegment() {
|
|
55 args = null;
|
|
56 host.setKey("host");
|
|
57 }
|
|
58
|
|
59 @Override
|
|
60 public void run() {
|
|
61 String name = host.asString();
|
|
62 Matcher matcher = pattern.matcher(name);
|
|
63 matcher.find();
|
|
64 // String type = matcher.group(1);
|
|
65 for(String arg: args) {
|
|
66 if(arg.equals("-persistent")){
|
|
67 persistentFlag = true;
|
|
68 }
|
|
69 }
|
|
70 NetworkBulletinBoard cassaBBS = null;
|
|
71 if(persistentFlag) {
|
|
72 System.out.println("log loading...");
|
|
73 cassaBBS = NetworkMatrixJungleBulletinBoard.NewPersistentJungle(name);
|
|
74 cassaBBS.init();
|
|
75 } else {
|
|
76 cassaBBS = new NetworkJungleBulletinBoard(name);
|
|
77 cassaBBS.init();
|
|
78 }
|
|
79
|
|
80 System.out.println("StartBBSCodeSegment");
|
|
81 System.out.println("name : "+ name);
|
|
82 /* Jetty registration */
|
|
83 String createBoardMessagePath = "/createBoardMessage";
|
|
84 String createFolderPath = "/createFolder";
|
|
85 String createBoardPath = "/createBoard";
|
|
86 String editMessagePath = "/editMessage";
|
|
87 String showBoardMessagePath = "/showBoardMessage";
|
|
88 String showMatrixPath = "/showMatrix";
|
|
89 String createAttributePath = "/createAttribute";
|
|
90 String editAttributePath = "/editAttribute";
|
|
91 String deleteAttributePath = "/deleteAttribute";
|
|
92 String deleteNodePath = "/deleteNode";
|
|
93 String editNodePath = "/editNode";
|
|
94 String permissionPath = "/permission";
|
|
95 Server serv = new Server(bbsPort);
|
|
96 ThreadPool thp = serv.getThreadPool();
|
|
97 Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
|
|
98 Servlet createFolder = new CreateNode(cassaBBS);
|
|
99 Servlet createBoard = new CreateBoardServlet(cassaBBS);
|
|
100 Servlet editNode = new EditNodeName(cassaBBS);
|
|
101 Servlet createAttribute = new createAttributeMatrix(cassaBBS);
|
|
102 Servlet editAttribute = new EditAttributeServlet(cassaBBS);
|
|
103 Servlet deleteAttribute = new deleteAttributeServlet(cassaBBS);
|
|
104 Servlet deleteNode = new deleteNodeServlet(cassaBBS);
|
|
105 Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
|
|
106 Servlet index = new ShowBoardsServletMatrix(cassaBBS,createBoardPath,showMatrixPath);
|
|
107 // Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
|
|
108 Servlet board = new ShowMessageWithTimeStampServletMatrix(cassaBBS,createBoardMessagePath,editMessagePath,showMatrixPath, thp);
|
|
109 Servlet matrix = new ShowMatrix(cassaBBS,createFolderPath,editNodePath, showMatrixPath, createAttributePath, editAttributePath,deleteAttributePath,deleteNodePath,thp);
|
|
110 Servlet per = new permission(cassaBBS,permissionPath,thp);
|
|
111 ServletHandler context = new ServletHandler();
|
|
112 context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath);
|
|
113
|
|
114 context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath);
|
|
115 context.addServletWithMapping(new ServletHolder(createFolder),createFolderPath);
|
|
116 context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath);
|
|
117 context.addServletWithMapping(new ServletHolder(editNode),editNodePath);
|
|
118 context.addServletWithMapping(new ServletHolder(createAttribute),createAttributePath);
|
|
119 context.addServletWithMapping(new ServletHolder(index),"/");
|
|
120 context.addServletWithMapping(new ServletHolder(deleteAttribute),deleteAttributePath);
|
|
121 context.addServletWithMapping(new ServletHolder(deleteNode),deleteNodePath);
|
|
122 context.addServletWithMapping(new ServletHolder(editAttribute),editAttributePath);
|
|
123 context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath);
|
|
124 context.addServletWithMapping(new ServletHolder(matrix),showMatrixPath);
|
|
125 context.addServletWithMapping(new ServletHolder(per),permissionPath);
|
|
126 /*
|
|
127 * For write benchmark
|
|
128 */
|
|
129 String editMessageUseGetPath = "/editMessageUseGet";
|
|
130 Servlet editMessageUseGet = new EditMessageUseGetServlet(cassaBBS);
|
|
131 context.addServletWithMapping(new ServletHolder(editMessageUseGet), editMessageUseGetPath);
|
|
132 String requestNumCheckPath = "/requestNum";
|
|
133 Servlet requestNumCheckServlet = new RequestNumCheckServlet(cassaBBS);
|
|
134 context.addServletWithMapping(new ServletHolder(requestNumCheckServlet), requestNumCheckPath);
|
|
135
|
|
136 serv.setHandler(context);
|
|
137 try {
|
|
138 serv.start();
|
|
139 } catch (Exception e) {
|
|
140 e.printStackTrace();
|
|
141 }
|
|
142 new LogUpdateCodeSegment();
|
|
143 }
|
|
144
|
|
145 }
|