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();
+    }
+
+}