annotate src/main/java/app/bbs/codesegment/StartmaTrixBBSCodeSegment.java @ 190:269bada9eedc

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