Mercurial > hg > Members > nobuyasu > jungle-network
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/app/bbs/codesegment/StartmaTrixBBSCodeSegment.java Fri Oct 17 15:16:56 2014 +0900 @@ -0,0 +1,145 @@ +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(); + } + +}