Mercurial > hg > Members > nobuyasu > jungle-network
view src/main/java/app/bbs/codesegment/StartmaTrixBBSCodeSegment.java @ 190:269bada9eedc
add
author | tatsuki |
---|---|
date | Fri, 17 Oct 2014 15:16:56 +0900 |
parents | |
children |
line wrap: on
line source
package app.bbs.codesegment; import java.util.regex.Pattern; import java.util.regex.Matcher; import javax.servlet.Servlet; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.thread.ThreadPool; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardMessageServlet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.CreateBoardServlet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageServlet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.EditMessageUseGetServlet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.bbs.ShowBoardsServlet; import alice.codesegment.CodeSegment; import alice.datasegment.CommandType; import alice.datasegment.Receiver; import app.bbs.NetworkBulletinBoard; import app.bbs.NetworkJungleBulletinBoard; import app.bbs.RequestNumCheckServlet; import app.bbs.ShowMessageWithTimeStampServlet; import app.bbs.thinks.CreateNode; import app.bbs.thinks.EditAttributeServlet; import app.bbs.thinks.EditNodeName; import app.bbs.thinks.NetworkMatrixJungleBulletinBoard; import app.bbs.thinks.ShowBoardsServletMatrix; import app.bbs.thinks.ShowMatrix; import app.bbs.thinks.ShowMessageWithTimeStampServletMatrix; import app.bbs.thinks.createAttributeMatrix; import app.bbs.thinks.deleteAttributeServlet; import app.bbs.thinks.deleteNodeServlet; import app.bbs.thinks.permission; public class StartmaTrixBBSCodeSegment extends CodeSegment { int bbsPort = 8080; Receiver host = ids.create(CommandType.PEEK); private Pattern pattern = Pattern.compile("^(node|cli)([0-9]+)$"); private String[] args; boolean persistentFlag = false; public StartmaTrixBBSCodeSegment(String[] _args, int p) { args = _args; bbsPort = p; host.setKey("host"); } public StartmaTrixBBSCodeSegment() { args = null; host.setKey("host"); } @Override public void run() { String name = host.asString(); Matcher matcher = pattern.matcher(name); matcher.find(); // String type = matcher.group(1); for(String arg: args) { if(arg.equals("-persistent")){ persistentFlag = true; } } NetworkBulletinBoard cassaBBS = null; if(persistentFlag) { System.out.println("log loading..."); cassaBBS = NetworkMatrixJungleBulletinBoard.NewPersistentJungle(name); cassaBBS.init(); } else { cassaBBS = new NetworkJungleBulletinBoard(name); cassaBBS.init(); } System.out.println("StartBBSCodeSegment"); System.out.println("name : "+ name); /* Jetty registration */ String createBoardMessagePath = "/createBoardMessage"; String createFolderPath = "/createFolder"; String createBoardPath = "/createBoard"; String editMessagePath = "/editMessage"; String showBoardMessagePath = "/showBoardMessage"; String showMatrixPath = "/showMatrix"; String createAttributePath = "/createAttribute"; String editAttributePath = "/editAttribute"; String deleteAttributePath = "/deleteAttribute"; String deleteNodePath = "/deleteNode"; String editNodePath = "/editNode"; String permissionPath = "/permission"; Server serv = new Server(bbsPort); ThreadPool thp = serv.getThreadPool(); Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS); Servlet createFolder = new CreateNode(cassaBBS); Servlet createBoard = new CreateBoardServlet(cassaBBS); Servlet editNode = new EditNodeName(cassaBBS); Servlet createAttribute = new createAttributeMatrix(cassaBBS); Servlet editAttribute = new EditAttributeServlet(cassaBBS); Servlet deleteAttribute = new deleteAttributeServlet(cassaBBS); Servlet deleteNode = new deleteNodeServlet(cassaBBS); Servlet editBoardMessage = new EditMessageServlet(cassaBBS); Servlet index = new ShowBoardsServletMatrix(cassaBBS,createBoardPath,showMatrixPath); // Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath); Servlet board = new ShowMessageWithTimeStampServletMatrix(cassaBBS,createBoardMessagePath,editMessagePath,showMatrixPath, thp); Servlet matrix = new ShowMatrix(cassaBBS,createFolderPath,editNodePath, showMatrixPath, createAttributePath, editAttributePath,deleteAttributePath,deleteNodePath,thp); Servlet per = new permission(cassaBBS,permissionPath,thp); ServletHandler context = new ServletHandler(); context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath); context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath); context.addServletWithMapping(new ServletHolder(createFolder),createFolderPath); context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath); context.addServletWithMapping(new ServletHolder(editNode),editNodePath); context.addServletWithMapping(new ServletHolder(createAttribute),createAttributePath); context.addServletWithMapping(new ServletHolder(index),"/"); context.addServletWithMapping(new ServletHolder(deleteAttribute),deleteAttributePath); context.addServletWithMapping(new ServletHolder(deleteNode),deleteNodePath); context.addServletWithMapping(new ServletHolder(editAttribute),editAttributePath); context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath); context.addServletWithMapping(new ServletHolder(matrix),showMatrixPath); context.addServletWithMapping(new ServletHolder(per),permissionPath); /* * For write benchmark */ String editMessageUseGetPath = "/editMessageUseGet"; Servlet editMessageUseGet = new EditMessageUseGetServlet(cassaBBS); context.addServletWithMapping(new ServletHolder(editMessageUseGet), editMessageUseGetPath); String requestNumCheckPath = "/requestNum"; Servlet requestNumCheckServlet = new RequestNumCheckServlet(cassaBBS); context.addServletWithMapping(new ServletHolder(requestNumCheckServlet), requestNumCheckPath); serv.setHandler(context); try { serv.start(); } catch (Exception e) { e.printStackTrace(); } new LogUpdateCodeSegment(); } }