Mercurial > hg > Members > nobuyasu > jungle-network
comparison src/main/java/app/bbs/codesegment/StartmaTrixBBSCodeSegment.java @ 190:269bada9eedc
add
author | tatsuki |
---|---|
date | Fri, 17 Oct 2014 15:16:56 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
189:8788cc341358 | 190:269bada9eedc |
---|---|
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 } |