changeset 245:725a0176a873 Implementation_of_communication

remove delete file
author tatsuki
date Tue, 28 Jun 2016 07:06:10 +0900
parents 5d033ad129b2
children 4b4e3f25ca1b
files src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BoardMessage.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BulletinBoard.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageUseGetServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/GetAttributeImp.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/HectorSample.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardMessageServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/core/AttributesContainer.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/error/BasicErrors.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/Constants.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/Transaction.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/IndexTreeEditor.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/AbstractTreeMapThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMark.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMarkThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/JungleWriteThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/TatsukiTreeMapGetThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/TreeMapBenchMark.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/UtilTreeMapGetThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/findMongoAttributeThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/findTreeAttributeThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/readTreeAttributeThread.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/util/Triple.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/BoardRenewTime.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/BulletinBoardJungleManager.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/DistributeApp.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/NetworkBulletinBoard.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/NetworkJungleBulletinBoard.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/RequestNumCheckServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/ShowMessageWithTimeStampServlet.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/LogPutCodeSegment.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/LogUpdateCodeSegment.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/StartBBSCodeSegment.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/io/NullOutputStream.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/codesegment/LogPutCodeSegment.java src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/transaction/NetworkDefaultJungleTreeEditor.java src/test/java/jp/ac/u_ryukyu/ie/cr/junglenetwork/showMessageTest.java
diffstat 44 files changed, 21 insertions(+), 2808 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/App.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import me.prettyprint.hector.api.HConsistencyLevel;
-import org.mortbay.jetty.Connector;
-import org.mortbay.jetty.Server;
-import org.mortbay.jetty.nio.SelectChannelConnector;
-import org.mortbay.jetty.servlet.ServletHandler;
-import org.mortbay.jetty.servlet.ServletHolder;
-import org.mortbay.thread.QueuedThreadPool;
-
-import javax.servlet.Servlet;
-
-
-/**
- * Hello world!
- *
- */
-public class App 
-{
-    public static void main( String[] args ) throws Exception
-    {
-    	BulletinBoard cassaBBS = null;
-    	if(args.length == 0){
-    		cassaBBS = new JungleBulletinBoard();
-    	}else{
-    		HConsistencyLevel cLevel = HConsistencyLevel.QUORUM;
-    		int rep_factor = 1;
-    		int i=0;
-    		while(i<args.length) {
-    			if(args[i].equals("-all")) {
-    				cLevel = HConsistencyLevel.ALL;
-    			}else if(args[i].equals("-one")){
-    				cLevel = HConsistencyLevel.ONE;
-    			}else if(args[i].equals("-quorum")){
-    				cLevel = HConsistencyLevel.QUORUM;
-    			}else if(args[i].equals("-any")){
-    				cLevel = HConsistencyLevel.ANY;
-    			}else if(args[i].equals("-rep")){
-    				i++;
-    				rep_factor = Integer.parseInt(args[i]);
-    			}
-    			i++;
-    		}
-			System.out.println("ConsistencyLevel "+cLevel.toString());
-			System.out.println("Replication factor "+rep_factor);
-       		cassaBBS = new CassandraBulletinBoard("test-cluster","localhost:9160","cassaBBS2", cLevel, rep_factor);
-   		}
-    	
-    	String createBoardMessagePath = "/createBoardMessage";
-    	String createBoardPath = "/createBoard";
-    	String editMessagePath = "/editMessage";
-    	String showBoardMessagePath = "/showBoardMessage";
-    	
-    	Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
-    	Servlet createBoard = new CreateBoardServlet(cassaBBS);
-    	Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
-    	Servlet index = new ShowBoardsServlet(cassaBBS,createBoardPath,showBoardMessagePath);
-    	Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
-    	
-//    	Server serv = new Server(8080);
-    	Server serv = new Server();
-    	SelectChannelConnector connector = new SelectChannelConnector();
-    	connector.setPort(8080);
-    	connector.setThreadPool(new QueuedThreadPool(1000));
-    	serv.setConnectors(new Connector[] { connector });
-    	
-    	ServletHandler context = new ServletHandler();
-    	context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath);
-    	context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath);
-    	context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath);
-    	context.addServletWithMapping(new ServletHolder(index),"/");
-    	context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath);
-    	/* 
-    	 * For write benchmark 
-    	 */
-    	String editMessageUseGetPath = "/editMessageUseGet";
-    	Servlet editMessageUseGet = new EditMessageUseGetServlet(cassaBBS);
-    	context.addServletWithMapping(new ServletHolder(editMessageUseGet), editMessageUseGetPath);
-    	
-    	serv.addHandler(context);
-    	serv.start();
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BoardMessage.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-public interface BoardMessage
-{
-	public String getUUID();
-	public String getAuthor();
-	public String getMessage();
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/BulletinBoard.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-public interface BulletinBoard
-{
-	public Iterable<String> getBoards();
-	public void createBoards(String _name, String _author, String _initMessage, String _editKey);
-	public void createBoardMessage(String _board, String _author, String _message, String _editKey);
-	public void editMessage(String _board, String _uuid, String _author, String _message, String _editKey);
-	public String sanitize(String str);
-  GetAttributeImp getAttribute(String _bname, String _nodeNum, String revisionStr);
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CassandraBulletinBoard.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import me.prettyprint.cassandra.model.ConfigurableConsistencyLevel;
-import me.prettyprint.cassandra.serializers.StringSerializer;
-import me.prettyprint.cassandra.serializers.UUIDSerializer;
-import me.prettyprint.cassandra.service.template.SuperCfResult;
-import me.prettyprint.cassandra.service.template.SuperCfUpdater;
-import me.prettyprint.cassandra.service.template.ThriftSuperCfTemplate;
-import me.prettyprint.cassandra.utils.TimeUUIDUtils;
-import me.prettyprint.hector.api.Cluster;
-import me.prettyprint.hector.api.HConsistencyLevel;
-import me.prettyprint.hector.api.Keyspace;
-import me.prettyprint.hector.api.beans.HSuperColumn;
-import me.prettyprint.hector.api.beans.OrderedSuperRows;
-import me.prettyprint.hector.api.beans.SuperRow;
-import me.prettyprint.hector.api.beans.SuperSlice;
-import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
-import me.prettyprint.hector.api.ddl.ColumnType;
-import me.prettyprint.hector.api.ddl.ComparatorType;
-import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
-import me.prettyprint.hector.api.factory.HFactory;
-import me.prettyprint.hector.api.query.QueryResult;
-import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
-import me.prettyprint.hector.api.query.SuperSliceQuery;
-import org.apache.cassandra.locator.SimpleStrategy;
-
-import java.util.*;
-
-public class CassandraBulletinBoard implements BulletinBoard
-{
-	private final String address;
-	private final String clusterName;
-	private final Cluster cluster;
-	private final String keyspace;
-	private final ConfigurableConsistencyLevel configurableConsistencyLevel = new ConfigurableConsistencyLevel(); 
-	
-	private static final String COLUMN_FAMILY_BOARD = "boards";
-	private final int REP_FACTOR;
-	
-	public CassandraBulletinBoard(String _clusterName,String _address,String _keyspaceName, HConsistencyLevel cLevel,int rep_factor )
-	{
-		address = _address;
-		clusterName = _clusterName;
-		keyspace = _keyspaceName;
-		cluster = HFactory.getOrCreateCluster(clusterName,address);
-		Map<String, HConsistencyLevel> clmap = new HashMap<String, HConsistencyLevel>();
-		clmap.put(COLUMN_FAMILY_BOARD, cLevel);
-		configurableConsistencyLevel.setReadCfConsistencyLevels(clmap);
-		configurableConsistencyLevel.setWriteCfConsistencyLevels(clmap);
-		REP_FACTOR = rep_factor;
-		initialize();
-	}
-	
-	public CassandraBulletinBoard(String _clusterName,String _address,String _keyspaceName, HConsistencyLevel cLevel)
-	{
-		this(_clusterName, _address, _keyspaceName, cLevel, 1);		
-	}
-	
-	
-	
-	private void initialize()
-	{
-		if(cluster.describeKeyspace(keyspace) == null){
-			KeyspaceDefinition keyspaceDefinition = HFactory.createKeyspaceDefinition(keyspace,
-					SimpleStrategy.class.getName(),REP_FACTOR,Collections.<ColumnFamilyDefinition> emptyList());
-			cluster.addKeyspace(keyspaceDefinition,false);
-			ColumnFamilyDefinition columnFamilyDefinition = HFactory.createColumnFamilyDefinition(keyspace,COLUMN_FAMILY_BOARD,ComparatorType.UUIDTYPE);
-			columnFamilyDefinition.setColumnType(ColumnType.SUPER);
-			cluster.addColumnFamily(columnFamilyDefinition);
-		}
-	}
-	
-	public Iterable<String> getBoards()
-	{
-		Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
-		RangeSuperSlicesQuery<String,UUID,String,String> query = HFactory.createRangeSuperSlicesQuery(ksp,StringSerializer.get(),
-				UUIDSerializer.get(),StringSerializer.get(),StringSerializer.get());
-		query.setColumnFamily(COLUMN_FAMILY_BOARD).setKeys(null,null).setRange(null,null,false,0);
-		
-		QueryResult<OrderedSuperRows<String,UUID,String,String>> result = query.execute();
-		OrderedSuperRows<String,UUID,String,String> rows = result.get();
-		List<SuperRow<String,UUID,String,String>> list = rows.getList();
-		
-		IterableConverter.Converter<String,SuperRow<String,UUID,String,String>> converter
-			= new IterableConverter.Converter<String, SuperRow<String,UUID,String,String>>(){
-				public String conv(SuperRow<String, UUID, String, String> _b) {
-					return _b.getKey();
-				}
-			};
-		
-		return new IterableConverter<String,SuperRow<String,UUID,String,String>>(list,converter);
-	}
-	
-	private static final String COLUMN_MESSAGE_AUTHOR = "author";
-	private static final String COLUMN_MESSAGE_BODY = "message";
-	private static final String COLUMN_MESSAGE_EDIT_KEY = "edit";
-
-	public void createBoardMessage(UUID _time,String _name,String _author,String _message,String _editKey)
-	{
-		Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
-		ThriftSuperCfTemplate<String,UUID,String> template = 
-				new ThriftSuperCfTemplate<String,UUID,String>(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
-						UUIDSerializer.get(),StringSerializer.get());
-		
-		SuperCfUpdater<String,UUID,String> updater = template.createUpdater(_name,_time);
-		updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
-		updater.setString(COLUMN_MESSAGE_BODY,_message);
-		updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
-		
-		template.update(updater);
-	}
-	
-	public void createBoards(String _name,String _author,String _initMessage,String _editKey)
-	{
-		UUID time = TimeUUIDUtils.getTimeUUID(0);
-		createBoardMessage(time,_name,_author,_initMessage,_editKey);
-	}
-
-	public Iterable<BoardMessage> getMessages(String _boardName)
-	{
-		Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
-		SuperSliceQuery<String, UUID, String, String> query = HFactory.createSuperSliceQuery(ksp, StringSerializer.get(), UUIDSerializer.get(), StringSerializer.get(), StringSerializer.get());
-		
-		UUID start = TimeUUIDUtils.getTimeUUID(0);
-		query.setKey(_boardName).setColumnFamily(COLUMN_FAMILY_BOARD).setRange(start,null,false,100);
-		
-		QueryResult<SuperSlice<UUID, String, String>> result = query.execute();
-		SuperSlice<UUID,String,String> ss = result.get();
-		List<HSuperColumn<UUID,String,String>> list = ss.getSuperColumns();
-		
-		IterableConverter.Converter<BoardMessage,HSuperColumn<UUID,String,String>> converter =
-				new IterableConverter.Converter<BoardMessage,HSuperColumn<UUID,String,String>>(){
-					public BoardMessage conv(HSuperColumn<UUID, String, String> _b){
-						UUID uuid = _b.getName();
-						String author = _b.getSubColumnByName(COLUMN_MESSAGE_AUTHOR).getValue();
-						String message = _b.getSubColumnByName(COLUMN_MESSAGE_BODY).getValue();
-						BoardMessageImpl bm = new BoardMessageImpl(author,message,uuid.toString());
-						return bm;
-					}
-				};
-		
-		
-		return new IterableConverter<BoardMessage,HSuperColumn<UUID,String,String>>(list,converter);
-	}
-	
-	private static class BoardMessageImpl implements BoardMessage
-	{
-		private final String author;
-		private final String message;
-		private final String uuid;
-		
-		public BoardMessageImpl(String _author,String _message,String _uuid)
-		{
-			author = _author;
-			message = _message;
-			uuid = _uuid;
-		}
-
-		public String getAuthor()
-		{
-			return author;
-		}
-
-		public String getMessage()
-		{
-			return message;
-		}
-
-		public String getUUID()
-		{
-			return uuid;
-		}
-	}
-
-	public void createBoardMessage(String _board, String _author, String _message,String _editKey)
-	{
-		UUID time = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
-		createBoardMessage(time,_board,_author,_message,_editKey);
-	}
-
-	public void editMessage(String _board,String _uuid,String _author,String _message,String _editKey)
-	{
-		Keyspace ksp = HFactory.createKeyspace(keyspace, cluster, configurableConsistencyLevel);
-		UUID time = UUID.fromString(_uuid);
-		ThriftSuperCfTemplate<String,UUID,String> template = 
-				new ThriftSuperCfTemplate<String,UUID,String>(ksp,COLUMN_FAMILY_BOARD,StringSerializer.get(),
-						UUIDSerializer.get(),StringSerializer.get());
-		
-		SuperCfResult<String,UUID,String> result = template.querySuperColumn(_board,time);
-		String editKey = result.getString(COLUMN_MESSAGE_EDIT_KEY);
-		if(!editKey.equals(editKey)){
-			return;
-		}
-		
-		SuperCfUpdater<String, UUID, String> updater = template.createUpdater(_board,time);
-		updater.setString(COLUMN_MESSAGE_AUTHOR,_author);
-		updater.setString(COLUMN_MESSAGE_BODY,_message);
-		updater.setString(COLUMN_MESSAGE_EDIT_KEY,_editKey);
-		
-		template.update(updater);
-	}
-	
-	public String sanitize( String str ) {
-	    if(str==null) {
-	        return str;
-	    }
-	    str = str.replaceAll("&" , "&amp;" );
-	    str = str.replaceAll("<" , "&lt;"  );
-	    str = str.replaceAll(">" , "&gt;"  );
-	    str = str.replaceAll("\"", "&quot;");
-	    str = str.replaceAll("'" , "&#39;" );
-	    return str;
-	 }
-
-  public GetAttributeImp getAttribute(String _bname, String _nodeNum, String revisionStr) {
-    return null; // 未実装 使うときに実装する
-  }
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardMessageServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class CreateBoardMessageServlet extends HttpServlet
-{
-	private final BulletinBoard bbs;
-	private static final String PARAM_BOARD_NAME = "bname";
-	private static final String PARAM_BOARD_AUTHOR = "author";
-	private static final String PARAM_BOARD_MESSAGE= "msg";
-	private static final String PARAM_BOARD_EDITKEY = "key";
-	
-	private static final long serialVersionUID = 1L;
-	
-	public CreateBoardMessageServlet(BulletinBoard _bbs)
-	{
-		bbs = _bbs;
-	}
-	
-	@Override
-	public void doPost(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		String boardName = _req.getParameter(PARAM_BOARD_NAME);
-		String author = _req.getParameter(PARAM_BOARD_AUTHOR);
-		String msg = _req.getParameter(PARAM_BOARD_MESSAGE);
-		String key = _req.getParameter(PARAM_BOARD_EDITKEY);
-		
-		try{
-			bbs.createBoardMessage(boardName,author,msg,key);
-			PrintWriter pw = _res.getWriter();
-			pw.write("successfully written");
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/CreateBoardServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import org.apache.commons.lang.StringEscapeUtils;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class CreateBoardServlet extends HttpServlet
-{
-	private final BulletinBoard bbs;
-	private static final String PARAM_BOARD_NAME = "bname";
-	private static final String PARAM_BOARD_AUTHOR = "author";
-	private static final String PARAM_BOARD_INITMESSAGE= "msg";
-	private static final String PARAM_BOARD_EDITKEY = "key";
-	
-	private static final long serialVersionUID = 1L;
-	
-	public CreateBoardServlet(BulletinBoard _bbs)
-	{
-		bbs = _bbs;
-	}
-
-	public void doPost(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		String boardName = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_NAME));
-		String author = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_AUTHOR));
-		String msg = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_INITMESSAGE));
-		String key = StringEscapeUtils.unescapeHtml(_req.getParameter(PARAM_BOARD_EDITKEY));
-		
-		try{
-			bbs.createBoards(boardName,author,msg,key);
-			PrintWriter pw = _res.getWriter();
-			pw.write("successfully written");
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class EditMessageServlet extends HttpServlet
-{
-	private final BulletinBoard bbs;
-	private static final String PARAM_BOARD_NAME = "bname";
-	private static final String PARAM_BOARD_MSGID = "uuid";
-	private static final String PARAM_BOARD_AUTHOR = "author";
-	private static final String PARAM_BOARD_MESSAGE= "msg";
-	private static final String PARAM_BOARD_EDITKEY = "key";
-	
-	private static final long serialVersionUID = 1L;
-	
-	public EditMessageServlet(BulletinBoard _bbs)
-	{
-		bbs = _bbs;
-	}
-	
-	public void doGet(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		String bname = _req.getParameter(PARAM_BOARD_NAME);
-		String uuid = _req.getParameter(PARAM_BOARD_MSGID);
-		System.out.println("write");
-		
-		try{
-			PrintWriter pw = _res.getWriter();
-			pw.write("<html><body><h1>edit message</h1>");
-			pw.write("<form method='POST'\n");
-			pw.write("<p>Author : <input type='text' name='author'/>" +
-					"<input type='hidden' name='key' value='"+uuid+"'/>" +
-					"<input type='hidden' name='bname' value='"+bname+"'</p>\n");
-			pw.write("<p>Message<br/> <input type='textarea' name='msg'/> </p>\n");
-			pw.write("<p><input type='submit' value='submit'/></p>\n");
-			pw.write("</body></html>");
-			pw.flush();
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-	}
-
-	public void doPost(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		String boardName = _req.getParameter(PARAM_BOARD_NAME);
-		String author = _req.getParameter(PARAM_BOARD_AUTHOR);
-		String msg = _req.getParameter(PARAM_BOARD_MESSAGE);
-		String key = _req.getParameter(PARAM_BOARD_EDITKEY);
-		String uuid = _req.getParameter(PARAM_BOARD_MSGID);
-		
-		try{
-			bbs.editMessage(boardName, uuid, author, msg, key);
-			PrintWriter pw = _res.getWriter();
-			pw.write("successfully written");
-			pw.flush();
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/EditMessageUseGetServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class EditMessageUseGetServlet extends HttpServlet{
-		private final BulletinBoard bbs;
-		private static final String PARAM_BOARD_NAME = "bname";
-		private static final String PARAM_BOARD_MSGID = "uuid";
-		private static final String PARAM_BOARD_AUTHOR = "author";
-		private static final String PARAM_BOARD_MESSAGE= "msg";
-		private static final String PARAM_BOARD_EDITKEY = "key";
-		
-		private static final long serialVersionUID = 1L;
-		
-		public EditMessageUseGetServlet(BulletinBoard _bbs)
-		{
-			bbs = _bbs;
-		}
-		
-		public void doGet(HttpServletRequest _req,HttpServletResponse _res)
-		{
-			String boardName = _req.getParameter(PARAM_BOARD_NAME);
-			String author = _req.getParameter(PARAM_BOARD_AUTHOR);
-			String msg = _req.getParameter(PARAM_BOARD_MESSAGE);
-			String key = _req.getParameter(PARAM_BOARD_EDITKEY);
-			String uuid = _req.getParameter(PARAM_BOARD_MSGID);
-			
-			try{
-				bbs.editMessage(boardName, uuid, author, msg, key);
-				PrintWriter pw = _res.getWriter();
-				pw.write("successfully written");
-				pw.flush();
-			}catch(Exception _e){
-				_res.setStatus(500);
-			}
-		}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/GetAttributeImp.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-
-import java.util.Iterator;
-
-public class GetAttributeImp {
-  private final TreeNode node;
-
-  public GetAttributeImp(TreeNode _node) {
-    node = _node;
-  }
-
-  public String getMessage(String key) {
-    return node.getAttributes().getString(key);
-  }
-  
-  public Iterator<String> getKeys() {
-    return node.getAttributes().getKeys();
-  }
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/HectorSample.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import me.prettyprint.cassandra.serializers.StringSerializer;
-import me.prettyprint.cassandra.serializers.UUIDSerializer;
-import me.prettyprint.cassandra.service.template.SuperCfUpdater;
-import me.prettyprint.cassandra.service.template.ThriftSuperCfTemplate;
-import me.prettyprint.cassandra.utils.TimeUUIDUtils;
-import me.prettyprint.hector.api.*;
-import me.prettyprint.hector.api.beans.*;
-import me.prettyprint.hector.api.factory.HFactory;
-import me.prettyprint.hector.api.query.QueryResult;
-import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
-import me.prettyprint.hector.api.query.SuperSliceQuery;
-
-import java.util.List;
-import java.util.UUID;
-
-public class HectorSample
-{
-	public static void main(String _args[])
-	{
-		Cluster myCluster = HFactory.getOrCreateCluster("test-cluster","localhost:9160");
-
-		Keyspace ksp = HFactory.createKeyspace("cassaBBS",myCluster);
-
-		ThriftSuperCfTemplate<String,UUID,String> template =
-				new ThriftSuperCfTemplate<String,UUID,String>(ksp,"boards",StringSerializer.get(),
-						UUIDSerializer.get(),StringSerializer.get());
-		UUID time = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
-		SuperCfUpdater<String,UUID,String> updater = template.createUpdater("board1",TimeUUIDUtils.getTimeUUID(0));
-		updater.setString("name","peter");
-		updater.setString("message",time.toString());
-
-		template.update(updater);
-
-		UUID start = TimeUUIDUtils.getTimeUUID(0);
-
-		SuperSliceQuery<String, UUID, String, String> sq = HFactory.createSuperSliceQuery(ksp, StringSerializer.get(), UUIDSerializer.get(), StringSerializer.get(), StringSerializer.get());
-		sq.setKey("board1").setColumnFamily("ccc").setRange(start,null,false,100);
-
-		QueryResult<SuperSlice<UUID,String,String>> results = sq.execute();
-
-		SuperSlice<UUID,String,String> ss = results.get();
-		List<HSuperColumn<UUID,String,String>> list = ss.getSuperColumns();
-		for(HSuperColumn<UUID,String,String> sc : list){
-			HColumn<String,String> sub = sc.getSubColumnByName("name");
-			System.out.println(sub.getValue());
-			sub = sc.getSubColumnByName("message");
-			System.out.println(sub.getValue());
-		}
-
-		RangeSuperSlicesQuery<String,UUID,String,String> rsq = HFactory.createRangeSuperSlicesQuery(ksp,StringSerializer.get(),
-				UUIDSerializer.get(),StringSerializer.get(),StringSerializer.get());
-		rsq.setKeys(null,null).setRange(null,null,false,0).setColumnFamily("ccc");
-
-		QueryResult<OrderedSuperRows<String,UUID,String,String>> rsqResult = rsq.execute();
-		OrderedSuperRows<String, UUID, String, String> rows = rsqResult.get();
-		for(SuperRow<String, UUID, String, String>  row : rows.getList()){
-			System.out.println(row.getKey());
-		}
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/IterableConverter.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import java.util.Iterator;
-
-public class IterableConverter<A,B> implements Iterable<A>
-{
-	private final Iterable<B> iterable;
-	private final Converter<A,B> converter;
-	
-	public IterableConverter(Iterable<B> _iterable,Converter<A,B> _converter)
-	{
-		iterable = _iterable;
-		converter = _converter;
-	}
-	
-	public Iterator<A> iterator()
-	{
-		return new IteratorConverter<A,B>(iterable.iterator(),converter);
-	}
-	
-	private static final class IteratorConverter<A,B> implements Iterator<A>
-	{
-		private final Iterator<B> iterator;
-		private final Converter<A,B> converter;
-		
-		public IteratorConverter(Iterator<B> _iterator,Converter<A,B> _converter)
-		{
-			iterator = _iterator;
-			converter = _converter;
-		}
-		
-		public boolean hasNext()
-		{
-			return iterator.hasNext();
-		}
-
-		public A next()
-		{
-			return converter.conv(iterator.next());
-		}
-
-		public void remove()
-		{
-			iterator.remove();
-		}
-	}
-
-	public static interface Converter<A,B>
-	{
-		public A conv(B _b);
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/JungleBulletinBoard.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import junit.framework.Assert;
-
-import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class JungleBulletinBoard implements
-		BulletinBoard {
-	private final Jungle jungle;
-
-	public JungleBulletinBoard() {
-		jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(
-				new DefaultTraverser()));
-		jungle.createNewTree("boards");
-	}
-
-	public Iterable<String> getBoards() {
-		JungleTree tree = jungle.getTreeByName("boards");
-		TreeNode node = tree.getRootNode();
-		Children chs = node.getChildren();
-
-		IterableConverter.Converter<String, TreeNode> converter = new IterableConverter.Converter<String, TreeNode>() {
-			public String conv(TreeNode _b) {
-				ByteBuffer e = _b.getAttributes().get("name");
-				return new String(e.array());
-			}
-		};
-
-		return new IterableConverter<String, TreeNode>(chs, converter);
-	}
-
-	public void createBoards(final String _name, final String _author,
-			final String _initMessage, final String _editKey) {
-		if (null == jungle.createNewTree(_name)) {
-			throw new IllegalStateException();
-		}
-		JungleTree tree = jungle.getTreeByName("boards");
-		JungleTreeEditor editor = tree.getTreeEditor();
-		DefaultNodePath root = new DefaultNodePath();
-		Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0);
-		if (either.isA()) {
-			throw new IllegalStateException();
-		}
-		editor = either.b();
-
-		either = editor.putAttribute(root.add(0), "name", ByteBuffer.wrap(_name.getBytes()));
-		if (either.isA()) {
-			throw new IllegalStateException();
-		}
-		editor = either.b();
-		Either<Error, JungleTreeEditor> result = editor.success();
-		if (result.isA()) {
-			throw new IllegalStateException();
-		}
-
-		tree = jungle.getTreeByName(_name);
-		editor = tree.getTreeEditor();
-		editor = editor.putAttribute(root,"author", ByteBuffer.wrap(_author.getBytes())).b();
-		editor = editor.putAttribute(root,"key", ByteBuffer.wrap(_editKey.getBytes())).b();
-		either = editor.putAttribute(root,"mes", ByteBuffer.wrap(_initMessage.getBytes()));
-		
-		if (either.isA()) {
-			throw new IllegalStateException();
-		}
-		editor = either.b();
-		editor.success();
-	}
-
-	public void createBoardMessage(final String _board, final String _author,
-			final String _message, final String _editKey) {
-		JungleTree tree = jungle.getTreeByName(_board);
-		if (tree == null) {
-			throw new IllegalStateException();
-		}
-
-		JungleTreeEditor editor;
-		do {
-			TreeNode node = tree.getRootNode();
-			int size = node.getChildren().size();
-			DefaultNodePath path = new DefaultNodePath();
-
-			editor = tree.getTreeEditor();
-			Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path,
-					size);
-			if (either.isA()) {
-				throw new IllegalStateException();
-			}
-			editor = either.b();
-			editor = editor.putAttribute(path.add(size),"author", ByteBuffer.wrap(_author.getBytes())).b();
-			editor = editor.putAttribute(path.add(size),"key", ByteBuffer.wrap(_editKey.getBytes())).b();
-			either = editor.putAttribute(path.add(size),"mes", ByteBuffer.wrap(_message.getBytes()));
-			
-			if (either.isA()) {
-				throw new IllegalStateException();
-			}
-			editor = either.b();
-		}while (editor.success().isA());
-	}
-
-	public void editMessage(String _board, String _uuid, final String _author,
-			final String _message, final String _editKey) {
-		JungleTreeEditor editor = null;
-		do {
-			DefaultNodePath path = new DefaultNodePath();
-			path = path.add(Integer.parseInt(_uuid));
-
-			JungleTree tree = jungle.getTreeByName(_board);
-			editor = tree.getTreeEditor();
-
-			editor = editor.putAttribute(path,"author", ByteBuffer.wrap(_author.getBytes())).b();
-			editor = editor.putAttribute(path,"key", ByteBuffer.wrap(_editKey.getBytes())).b();
-			Either<Error, JungleTreeEditor> either = editor.putAttribute(path,"mes", ByteBuffer.wrap(_message.getBytes()));
-			
-			if (either.isA()) {
-				throw new IllegalStateException();
-			}
-			editor = either.b();
-		}while (editor.success().isA());
-	}
-
-	public Iterable<BoardMessage> getMessages(String _boardName) {
-		JungleTree tree = jungle.getTreeByName(_boardName);
-		TreeNode node = tree.getRootNode();
-		Children chs = node.getChildren();
-
-		final AtomicInteger counter = new AtomicInteger(0);
-		IterableConverter.Converter<BoardMessage, TreeNode> converter = new IterableConverter.Converter<BoardMessage, TreeNode>() {
-			public BoardMessage conv(TreeNode _b) {
-				String uuid = Integer.toString(counter.get());
-				String author = new String(_b.getAttributes().get("author").array());
-				String message = new String(_b.getAttributes().get("mes").array());
-				counter.incrementAndGet();
-				return new BoardMessageImpl(author, message, uuid);
-			}
-		};
-
-		return new IterableConverter<BoardMessage, TreeNode>(chs, converter);
-	}
-
-	private static class BoardMessageImpl implements BoardMessage {
-		private final String author;
-		private final String message;
-		private final String uuid;
-
-		public BoardMessageImpl(String _author, String _message, String _uuid) {
-			author = _author;
-			message = _message;
-			uuid = _uuid;
-		}
-
-		public String getAuthor() {
-			return author;
-		}
-
-		public String getMessage() {
-			return message;
-		}
-
-		public String getUUID() {
-			return uuid;
-		}
-	}
-
-	public String sanitize(String str) {
-		if (str == null) {
-			return str;
-		}
-		str = str.replaceAll("&", "&amp;");
-		str = str.replaceAll("<", "&lt;");
-		str = str.replaceAll(">", "&gt;");
-		str = str.replaceAll("\"", "&quot;");
-		str = str.replaceAll("'", "&#39;");
-		return str;
-	}
-
-  public GetAttributeImp getAttribute(String _bname, String _nodeNum, String revisionStr) {
-
-    DefaultNodePath path = new DefaultNodePath();
-    try {
-      for (int count = 0; _nodeNum.substring(count, count + 1) != null; count++) {
-        if (!_nodeNum.substring(count, count + 1).equals("/"))
-          path = path.add(Integer.parseInt(_nodeNum.substring(count, count + 1)));
-      }
-    } catch (Exception _e) {
-    }
-    JungleTree tree = jungle.getTreeByName(_bname);
-    System.out.println(tree.revision());
-    Long revision = Long.parseLong(revisionStr);
-    JungleTree oldTree = tree.getOldTree(revision).b();
-    System.out.println(oldTree.revision());
-    TreeNode node = oldTree.getRootNode();
-
-    DefaultTraverser traverser = new DefaultTraverser();
-    DefaultEvaluator evaluator = new DefaultEvaluator(path);
-    Either<Error, Traversal> ret = traverser.traverse(node, evaluator);
-    if (ret.isA()) {
-      Assert.fail();
-    }
-
-    Traversal traversal = ret.b();
-    TreeNode target = traversal.destination();
-    return new GetAttributeImp(target);
-  }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardMessageServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-import java.util.Iterator;
-
-public class ShowBoardMessageServlet extends HttpServlet {
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-    private final BulletinBoard bbs;
-    private final String createBoardMessagePath;
-
-    private static final String PARAM_BOARD_NAME = "bname";
-
-    public ShowBoardMessageServlet(BulletinBoard _bbs, String _createBoardMessagePath, String _editMessagePath) {
-        bbs = _bbs;
-        createBoardMessagePath = _createBoardMessagePath;
-    }
-
-    public void doGet(HttpServletRequest _req, HttpServletResponse _res) {
-        String bname = _req.getParameter(PARAM_BOARD_NAME);
-
-        try {
-            printBoard(bname, _res.getWriter());
-        } catch (Exception _e) {
-            _res.setStatus(500);
-        }
-
-    }
-
-    private void printBoard(String _bname, PrintWriter _pw) throws Exception {
-        _pw.write("<html><body>\n");
-        _pw.write("<h1>" + bbs.sanitize(_bname) + "</h1>\n");
-
-        _pw.write("<form action='" + createBoardMessagePath + "' method='POST'\n");
-        _pw.write("<p>Author : <input type='text' name='author'/> <input type='hidden' name='bname' value='" + _bname + "'/> EditKey : <input type='text' name='key'/></p>\n");
-        _pw.write("<p>Message<br/> <input type='textarea' name='msg'/> </p>\n");
-        _pw.write("<p><input type='submit' value='submit'/></p>\n");
-        GetAttributeImp attribute = bbs.getAttribute(_bname, "[-1]", "1");
-        Iterator<String> keys = attribute.getKeys();
-
-        do  {
-            String key = keys.next();
-            String mesage = attribute.getMessage(key);
-            _pw.write("<p>" + key + " = " + mesage + "</p>\n");
-        }while(keys.hasNext());
-
-        _pw.write("</body></html>");
-        _pw.flush();
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/bbs/ShowBoardsServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-public class ShowBoardsServlet extends HttpServlet
-{
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1L;
-	private final BulletinBoard bbs;
-	private final String createBoardPath;
-	private final String showBoardMessagePath;
-
-	public ShowBoardsServlet(BulletinBoard _bbs, String _createBoardPath,String _showBoardMessagePath)
-	{
-		bbs = _bbs;
-		createBoardPath = _createBoardPath;
-		showBoardMessagePath = _showBoardMessagePath;
-	}
-	
-	public void doGet(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		try{
-			_res.setCharacterEncoding("UTF-8");
-			printBoard(_res.getWriter());
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-		
-	}
-	
-	private void printBoard(PrintWriter _pw) throws Exception
-	{
-		_pw.write("<html><body>\n");
-		_pw.write("<h1>BBS</h1>\n");
-		_pw.write("<form action='"+createBoardPath+"' method='POST'\n");
-		_pw.write("<p>Create new board.</p>");
-		_pw.write("<p>BoardName : <input type='text' name='bname'/></p>\n");
-		_pw.write("<p>Author : <input type='text' name='author'/> EditKey : <input type='text' name='key'/></p>\n");
-		_pw.write("<p>Message<br/> <input type='textarea' name='msg'/> </p>\n");
-		_pw.write("<p><input type='submit' value='submit'/></p><hr/>\n");
-		
-		_pw.write("<h2>list of boards</h2>");
-		for(String board : bbs.getBoards()){
-			_pw.write("<p><a href='"+showBoardMessagePath+"?bname=" + bbs.sanitize(board) + "'>"+ bbs.sanitize(board) + "</a></p>");
-		}
-		
-		_pw.write("</body></html>");
-		_pw.flush();
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/core/AttributesContainer.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-//package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core;
-//
-//public interface AttributesContainer
-//{
-//	public Attributes getAttributes();
-//}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/error/BasicErrors.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.error;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultError;
-
-public class BasicErrors
-{
-	public static final jp.ac.u_ryukyu.ie.cr.jungle.util.Error NULL_VALUE_NOT_ALLOWED = new DefaultError();
-	public static final Error INDEX_OUT_OF_BOUNDS = new DefaultError();
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/Constants.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.store;
-
-public class Constants
-{
-	public static final String DEFAULT_OWNER = "default";
-	public static final long DEFAULT_REVISION_START_NUMBER = 0;
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/Transaction.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.store;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-
-public interface Transaction<T>
-{
-	public Either<Error,T> success();
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/store/impl/IndexTreeEditor.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.store.impl;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Direction;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traverser;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.jungle.data.list.List;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.LoggingNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-
-public class IndexTreeEditor {
-
-  private final Traverser traverser;
-
-  
-  public IndexTreeEditor(Traverser traverser)
-  {
-    this.traverser = traverser;
-  }
-  
-  
-  public Either<Error,LoggingNode> edit(TreeNode root,NodePath path,NodeEditor editor)
-  {
-    DefaultEvaluator e = new DefaultEvaluator(path);
-    Either<jp.ac.u_ryukyu.ie.cr.jungle.util.Error, Traversal> either = traverser.traverse(root,e);
-    
-    if(either.isA()){
-      return DefaultEither.newA(either.a());
-    }
-    
-    Traversal t = either.b();
-    Either<Error,LoggingNode> ret = clone(t,editor);
-    
-    return ret;
-  }
-  
-  private Either<Error,LoggingNode> clone(Traversal t,NodeEditor editor)
-  {
-    // copying nodes from bottom to root
-    List<Direction<TreeNode>> path = new List();
-    for (Direction<TreeNode> direction : t) {
-      path = path.addLast(direction);
-    }
-
-    // target
-    Direction<TreeNode> targetDirection = path.head();
-    TreeNode target = targetDirection.getTarget();
-    
-    Either<Error, LoggingNode> either = editor.edit(target);
-    if (either.isA()) {
-      return DefaultEither.newA(either.a());
-    }
-
-    LoggingNode newWrap = either.b();
-
-    // top
-    int pos = targetDirection.getPosition();
-    TreeNode child = newWrap.getWrap();
-    
-    for (Direction<TreeNode> parentDirection : path.deleteLast()) {
-      TreeNode updateTargetNode = parentDirection.getTarget();
-      TreeNodeChildren chs = updateTargetNode.getChildren();
-      
-          
-      
-      Either<Error, TreeNode> ret = chs.replaceNode(pos, child);
-      if (ret.isA()) {
-        return DefaultEither.newA(ret.a());
-      }
-      
-      TreeNode newParent = ret.b();
-      
-      child = newParent;
-      pos = parentDirection.getPosition();
-    }
-
-    TreeNode newRoot = child;
-    LoggingNode logNode = editor.wrap(newRoot, newWrap.getOperationLog());
-    
-        
-    return DefaultEither.newB(logNode);
-  }
-   
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/AbstractTreeMapThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-public abstract class AbstractTreeMapThread extends Thread{
-    public abstract void set(boolean flag);
-    public abstract long getFindCount();
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMark.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-
-import com.mongodb.MongoClient;
-import com.mongodb.WriteConcern;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoDatabase;
-import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.NodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
-import org.bson.Document;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.*;
-import java.nio.ByteBuffer;
-
-public class DataBaseBenchMark {
-    public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
-
-        if (args.length < 2) {
-            System.out.println("args[0] = jungle or mongo, args[1] = read or write" );
-            System.exit(0);
-        }
-
-        Runtime rt = Runtime.getRuntime();
-        int cpuNum = rt.availableProcessors();
-
-        if (args[0].equals("jungle"))
-            jungleBench(args, cpuNum);
-        else if (args[0].equals("mongo"))
-            mongoBench(args, cpuNum);
-    }
-
-    private static void mongoBench(String[] args, int cpuNum) throws IOException, InterruptedException {
-        MongoClient client = new MongoClient("localhost", 27017);
-        client.setWriteConcern(WriteConcern.JOURNALED);
-        client.dropDatabase("mydb");
-        MongoDatabase database = client.getDatabase("mydb");
-        MongoCollection<Document> coll = database.getCollection("mycoll");
-            for (int i = 0; i < 10000; i++) {
-                if (i % 100 == 0)
-                    System.out.println(i / 100);
-                coll.insertOne(new Document("key",String.valueOf(i)));
-            }
-        coll.createIndex(new Document("key", 1));
-        for (final Document index : coll.listIndexes()) {
-            System.out.println(index.toJson());
-        }
-        File file = new File("./time/" + args[0] + args[1] + "Time");
-        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
-        DataBaseBenchMarkThread readThread[];
-        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-            readThread = new DataBaseBenchMarkThread[THREAD_COUNT];
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count] = new findMongoAttributeThread(coll);
-            }
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count].start();
-            }
-            System.out.println("StartThread");
-            Thread.sleep(1000);
-            long readCount = 0;
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readCount = readCount + readThread[count].getFindCount();
-                readThread[count].set(false);
-                readThread[count] = null;
-            }
-            pw.println(THREAD_COUNT + " " + readCount);
-            System.out.println(THREAD_COUNT + "readCount = " + readCount);
-            System.gc();
-            System.out.println("-------------GC--------------");
-            Thread.sleep(1000);
-        }
-        client.close();
-        pw.close();
-    }
-
-    private static void jungleBench(String[] args, int cpuNum) throws IOException, InterruptedException {
-        JungleTree tree = createJungleTree();
-        File file = new File("./time/" + args[0] + args[0] + "Time");
-        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
-        DataBaseBenchMarkThread readThread[];
-
-        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-            readThread = new DataBaseBenchMarkThread[THREAD_COUNT];
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count] = new findTreeAttributeThread(tree);
-            }
-            JungleWriteThread writeThread = null;
-            if (args[1].equals("write")) {
-                writeThread = new JungleWriteThread(tree);
-                writeThread.start();
-            }
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count].start();
-            }
-            System.out.println("StartThread");
-            Thread.sleep(1000);
-            if (writeThread != null) {
-                writeThread.set(false);
-                writeThread.get();
-            }
-            long readCount = 0;
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readCount = readCount + readThread[count].getFindCount();
-                readThread[count].set(false);
-                readThread[count] = null;
-            }
-            pw.println(THREAD_COUNT + " " + readCount);
-            System.out.println(THREAD_COUNT + "readCount = " + readCount);
-            System.gc();
-            System.out.println("-------------GC--------------");
-            Thread.sleep(1000);
-        }
-        pw.close();
-    }
-
-    private static JungleTree createJungleTree() {
-        Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
-        JungleTree tree = jungle.createNewTree("tree");
-        JungleTreeEditor editor = tree.getTreeEditor();
-        editor = editor.putAttribute(new DefaultNodePath(), "key", ByteBuffer.wrap(String.valueOf(0).getBytes())).b();
-        JungleTreeEditor newEditor = createTree(0, new DefaultNodePath(), editor);
-        if (newEditor.success().isA()) {
-            System.out.println("success faild");
-            System.exit(1);
-        }
-        return tree;
-    }
-
-    static Integer nodeNum = 1;
-
-    public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
-
-        String value1 = String.valueOf(nodeNum);
-        nodeNum++;
-        String value2 = String.valueOf(nodeNum);
-        nodeNum++;
-        editor = editor.addNewChildAt(path, 0).b();
-        editor = editor.putAttribute(path.add(0), "key", ByteBuffer.wrap(value1.getBytes())).b();
-        editor = editor.addNewChildAt(path, 1).b();
-        editor = editor.putAttribute(path.add(1), "key", ByteBuffer.wrap(value2.getBytes())).b();
-        deep++;
-        if (deep < 10) {
-            editor = createTree(deep, path.add(0), editor);
-            editor = createTree(deep, path.add(1), editor);
-        }
-        return editor;
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/DataBaseBenchMarkThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-
-public abstract class DataBaseBenchMarkThread extends Thread{
-    public abstract long getFindCount();
-    public abstract void set(boolean flag);
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/JungleWriteThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
-
-import java.nio.ByteBuffer;
-
-
-public class JungleWriteThread extends Thread {
-
-    JungleTree tree;
-    boolean loop = true;
-    private int writeCount;
-
-    public JungleWriteThread(JungleTree tree) {
-        this.tree = tree;
-    }
-
-    public void set(boolean flag) {
-        loop = flag;
-    }
-
-    public void get() {
-        System.out.println("writeCount = " + writeCount);
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            try {
-                Thread.sleep(100);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            JungleTreeEditor editor = tree.getTreeEditor();
-            editor = editor.putAttribute(new DefaultNodePath(), "key", ByteBuffer.wrap(String.valueOf(0).getBytes())).b();
-            if (editor.success().isA())
-                System.out.println("faild");
-            else
-                writeCount++;
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/TatsukiTreeMapGetThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;
-
-import java.util.Optional;
-
-
-public class TatsukiTreeMapGetThread extends AbstractTreeMapThread {
-    TreeMap<Long, String> map;
-    private long findCount;
-    boolean loop = true;
-
-    public TatsukiTreeMapGetThread(TreeMap<Long,String> map) {
-        this.map = map;
-    }
-
-    @Override
-    public long getFindCount() {
-        System.out.println("thread count = " + findCount);
-        return findCount;
-    }
-
-    @Override
-    public void set(boolean loop) {
-        this.loop = loop;
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            for (long count = 0 ; count < 1000; count++) {
-                Optional<String> value = map.get(count);
-                if (!value.isPresent())
-                    System.out.println("error");
-            }
-            findCount++;
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/TreeMapBenchMark.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.data.treemap.TreeMap;
-
-import java.io.*;
-
-/**
- * Created by e115731 on 15/03/17.
- */
-public class TreeMapBenchMark {
-    public static void main(String[] args) throws InterruptedException, IOException {
-
-        if (args.length == 0) {
-            System.out.println("args get or getLoop or list");
-            System.exit(0);
-        }
-
-        Runtime rt = Runtime.getRuntime();
-        int cpuNum = rt.availableProcessors();
-
-        File file = new File("./time/" + args[0] + "Time");
-
-        PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
-
-        AbstractTreeMapThread readThread[];
-
-        for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
-
-            readThread = new AbstractTreeMapThread[THREAD_COUNT];
-
-            switch (args[0]) {
-                case "util": {
-                    java.util.TreeMap<Long, String> map = new java.util.TreeMap<>();
-                    for (long count = 0; count < 1000; count++) {
-                        map.put(count, String.valueOf(count));
-                    }
-
-                    for (int count = 0; THREAD_COUNT > count; count++) {
-                        readThread[count] = new UtilTreeMapGetThread(map);
-                    }
-                    break;
-                }
-                case "data": {
-                    TreeMap<Long,String> map = new TreeMap<>();
-                    for (long count = 0; count < 1000; count++) {
-                        map = map.put(count, String.valueOf(count));
-                    }
-
-                    for (int count = 0; THREAD_COUNT > count; count++) {
-                        readThread[count] = new TatsukiTreeMapGetThread(map);
-                    }
-                    break;
-                }
-                default:
-                    System.out.println("not allow args");
-                    System.exit(0);
-            }
-
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count].start();
-            }
-
-            System.out.println("StartThread");
-
-            Thread.sleep(1000);
-            long readCount = 0;
-
-            for (int count = 0; THREAD_COUNT > count; count++) {
-                readThread[count].set(false);
-                readCount = readCount + readThread[count].getFindCount();
-                readThread[count].stop();
-            }
-
-            pw.println(THREAD_COUNT + " " + readCount);
-            System.out.println(THREAD_COUNT + "readCount = " + readCount);
-            Thread.sleep(1000);
-        }
-
-        pw.close();
-    }
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/UtilTreeMapGetThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import java.util.TreeMap;
-
-
-public class UtilTreeMapGetThread extends AbstractTreeMapThread {
-    TreeMap<Long, String> map;
-    private long findCount;
-    boolean loop = true;
-
-    public UtilTreeMapGetThread(TreeMap<Long, String> map) {
-        this.map = map;
-    }
-
-    @Override
-    public long getFindCount() {
-        System.out.println("thread count = " + findCount);
-        return findCount;
-    }
-
-    @Override
-    public void set(boolean loop) {
-        this.loop = loop;
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            for (long count = 0; count < 1000; count++) {
-                String value = map.get(count);
-                if (value == null)
-                    System.out.println("error");
-            }
-            findCount++;
-        }
-    }
-}
\ No newline at end of file
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/findMongoAttributeThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import com.mongodb.client.FindIterable;
-import com.mongodb.client.MongoCollection;
-import com.mongodb.client.MongoCursor;
-import org.bson.Document;
-
-
-public class findMongoAttributeThread extends DataBaseBenchMarkThread {
-    private long findCount;
-    boolean loop = true;
-    MongoCollection<Document> coll;
-
-    public findMongoAttributeThread( MongoCollection<Document> coll) {
-        this.coll = coll;
-        this.findCount = 0;
-    }
-
-    @Override
-    public long getFindCount() {
-        System.out.println("thread count = " + findCount);
-        return findCount;
-    }
-
-    public void set(boolean loop) {
-        this.loop = loop;
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            FindIterable<Document> searchResultList = coll.find(new Document("key","1"));
-            MongoCursor<Document> iterator = searchResultList.iterator();
-            if (iterator.hasNext()) {
-                findCount++;
-            }
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/findTreeAttributeThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.InterfaceTraverser;
-import java.util.Iterator;
-
-
-public class findTreeAttributeThread extends DataBaseBenchMarkThread {
-
-    JungleTree tree;
-    private long findCount;
-
-    boolean loop = true;
-
-    public findTreeAttributeThread(JungleTree tree) {
-        this.tree = tree;
-        this.findCount = 0;
-    }
-
-    @Override
-    public long getFindCount() {
-        System.out.println("thread count = " + findCount);
-        return findCount;
-    }
-
-    public void set(boolean loop) {
-        this.loop = loop;
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            InterfaceTraverser traverser = tree.getTraverser(true);
-            Iterator<TreeNode> it = traverser.find(null, "key", "0");
-            if (it.hasNext()) {
-                findCount++;
-            }
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/test/readTreeAttributeThread.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.test;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-
-/**
- * Created by e115731 on 15/03/17.
- */
-public class readTreeAttributeThread extends DataBaseBenchMarkThread {
-
-    JungleTree tree;
-    private long findCount;
-
-    boolean loop = true;
-
-    public readTreeAttributeThread(JungleTree tree) {
-        this.tree = tree;
-        this.findCount = 0;
-    }
-
-    @Override
-    public long getFindCount() {
-        System.out.println("thread couny  = " + findCount);
-        return findCount;
-    }
-
-    public void set(boolean loop) {
-        this.loop = loop;
-    }
-
-    @Override
-    public void run() {
-        while (loop) {
-            TreeNode root = tree.getRootNode();
-            if (root != null) {
-                String attribute = root.getAttributes().getString("key");
-                if (attribute.equals("0"))
-                    findCount++;
-                else
-                    System.out.println("faild");
-            }
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungle/util/Triple.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungle.util;
-
-public class Triple<A,B,C>
-{
-	private A a;
-	private B b;
-	private C c;
-	
-	public Triple(A _a,B _b,C _c)
-	{
-		a = _a;
-		b = _b;
-		c = _c;
-	}
-	
-	public A getA()
-	{
-		return a;
-	}
-	
-	public B getB()
-	{
-		return b;
-	}
-	
-	public C getC()
-	{
-		return c;
-	}
-	
-	public void setA(A _a)
-	{
-		a = _a;
-	}
-	
-	public void setB(B _b)
-	{
-		b = _b;
-	}
-	
-	public void setC(C _c)
-	{
-		c = _c;
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/BoardRenewTime.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-public interface BoardRenewTime {
-
-	public String getboardName();
-	public Long getRenewTime();	
-	
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/BulletinBoardJungleManager.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.JungleUpdater;
-
-import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class BulletinBoardJungleManager {
-	private static BulletinBoardJungleManager instance = new BulletinBoardJungleManager();
-	private Jungle jungle;
-	private static AtomicInteger requestCounter = new AtomicInteger(0);
-
-	private BulletinBoardJungleManager() {
-		jungle = new DefaultJungle(null,"default",new DefaultTreeEditor(new DefaultTraverser()));
-	}
-	
-	public static int requestGetAndIncrement() {
-		return requestCounter.getAndIncrement();
-	}
-	
-	public static int requestIncrementAndGet() {
-		return requestCounter.incrementAndGet();
-	}
-	
-	public static BulletinBoardJungleManager getInstantce() {
-		return instance;
-	}
-	
-	public static void setJungle(Jungle _j) {
-		instance.jungle = _j;
-	}
-	public static AtomicInteger getRequestCounter() {
-		return requestCounter;
-	}
-	
-	public static Jungle getJungle() {
-		return instance.jungle;
-	}
-	
-	public static JungleTree createNewTree(String name) {
-		return instance.jungle.createNewTree(name);	
-	}
-
-	public static Either<Error, JungleTreeEditor> update(NetworkTreeOperationLog netLog) {
-		String treeName = netLog.getTreeName();
-		Jungle jungle = BulletinBoardJungleManager.getJungle(); 
-		if (jungle.getTreeByName(treeName) == null) {
-			if(null == jungle.createNewTree(treeName)){
-				throw new IllegalStateException();
-			}
-		}
-		Either<Error, JungleTreeEditor> either = null;
-		JungleTree tree = jungle.getTreeByName(treeName);
-		
-		long timestamp = System.currentTimeMillis();
-		ByteBuffer tBuffer = ByteBuffer.allocate(16);
-		DefaultNodePath root = new DefaultNodePath();
-		tBuffer.putLong(timestamp);
-		do {
-			JungleTreeEditor editor = tree.getLocalTreeEditor();
-			/* 
-			 * Merge. 
-			 */
-			int pos = calculatePosition(tree.getRootNode(), netLog.getTimeStamp());
-			either = JungleUpdater.edit(editor, netLog, pos);
-			if(either.isA()) {
-				throw new IllegalStateException();
-			}
-			editor = either.b();
-			either = editor.putAttribute(root, "renewtime", tBuffer);
-			if(either.isA()) {
-				throw new IllegalStateException();
-			}
-			editor = either.b();
-			either = editor.success();
-		}while(either.isA());
-		requestIncrementAndGet();
-		return either;
-	}
-	
-	private static int calculatePosition(TreeNode node, long newNodeTimeStamp) {
-		int count = 0;
-		long childTimeStamp = 0;
-		for(TreeNode n : node.getChildren()) {
-			ByteBuffer timestamp = n.getAttributes().get("timestamp");
-			if(timestamp == null) {
-				return count;
-			}
-			childTimeStamp = timestamp.getLong(0);
-			if (newNodeTimeStamp < childTimeStamp) {
-				break;
-			}
-			count++;
-		}
-		return count;
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/DistributeApp.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-import alice.topology.node.TopologyNode;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment.StartBBSCodeSegment;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.remote.RemoteConfig;
-
-public class DistributeApp {
-    public static void main(String[] args) throws Exception {
-        RemoteConfig conf = new RemoteConfig(args);
-        System.out.println("test");
-        if (conf.getManagerHostName() == null) {
-            // String localHostName ="localhost";
-            // HostMessage host = new HostMessage(localHostName, conf.localPort);
-            StartBBSCodeSegment cs1 = new StartBBSCodeSegment(args, conf.bbsPort);
-            cs1.ods.put("host", "node0");
-        } else {
-            new TopologyNode(conf, new StartBBSCodeSegment(args, conf.bbsPort));
-        }
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/NetworkBulletinBoard.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.BulletinBoard;
-
-public interface NetworkBulletinBoard extends BulletinBoard {
-	public void init();
-	public int getRequestNum();
-	public long getRenewTime(String boardName);
-	public void createFolder(String boardName, String author, String msg, String key, String _nodeNum);
-	public void createAttribute(String boardName, String uuid, String author, String msg, String key);
-	public void editAttribute(String boardName, String path, String id, String message);
-	public void deleteAttribute(String _board, String _path, String id);
-	public void deleteNode(String _board, String _path, String id);
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/NetworkJungleBulletinBoard.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,689 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-
-import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.BoardMessage;
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.GetAttributeImp;
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.IterableConverter;
-import jp.ac.u_ryukyu.ie.cr.jungle.core.Children;
-import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList;
-import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeListReader;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultNodePath;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.DefaultTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.DefaultOperationLog;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.LoggingNode;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.impl.logger.OperationLog;
-import jp.ac.u_ryukyu.ie.cr.jungle.store.trasnformer.NodeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultEvaluator;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser;
-import jp.ac.u_ryukyu.ie.cr.jungle.traverser.Traversal;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.DefaultEither;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.core.NetworkDefaultJungle;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.AliceJournal;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.NetworkJournal;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.PersistentJournal;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.JungleUpdater;
-import junit.framework.Assert;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.util.concurrent.atomic.AtomicInteger;
-
-public class NetworkJungleBulletinBoard implements NetworkBulletinBoard {
-    protected final Jungle jungle;
-    private final NetworkJournal journal;
-    private final String LOG_DIR;
-    private Boolean persistentFlag;
-    private AtomicInteger requestCounter;
-    private long renewTime;
-
-    private NetworkJungleBulletinBoard(String _uuid, NetworkJournal _journal) {
-        journal = _journal;
-        jungle = new NetworkDefaultJungle(journal, _uuid, new DefaultTreeEditor(new DefaultTraverser()));
-        BulletinBoardJungleManager.setJungle(jungle);
-        persistentFlag = false;
-        requestCounter = BulletinBoardJungleManager.getRequestCounter();
-        LOG_DIR = "./log";
-        renewTime = 0;
-    }
-
-    public NetworkJungleBulletinBoard(String _uuid) {
-        this(_uuid, new AliceJournal());
-        jungle.createNewTree("boards");
-    }
-
-    public static NetworkBulletinBoard NewPersistentJungle(String _uuid) {
-        NetworkJungleBulletinBoard board = new NetworkJungleBulletinBoard(_uuid, new PersistentJournal());
-        board.persistentFlag = true;
-        return board;
-    }
-
-    public void init() {
-        if (!persistentFlag) {
-            return;
-        }
-        checkAndCreateLogDirectory();
-        try {
-            commitLogRecover();
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void checkAndCreateLogDirectory() {
-        File logFile = new File(LOG_DIR);
-        if (!logFile.exists()) {
-            logFile.mkdir();
-            return;
-        }
-        if (logFile.isFile()) {
-            logFile.delete();
-            logFile.mkdir();
-        }
-    }
-
-    public void commitLogRecover() throws IOException {
-        File[] logFiles = new File(LOG_DIR).listFiles();
-        for (File logFile : logFiles) {
-            commitLogRecover(logFile);
-            logFile.delete();
-        }
-        if (jungle.getTreeByName("boards") == null) {
-            jungle.createNewTree("boards");
-        }
-    }
-
-    private void commitLogRecover(File logFile) throws IOException {
-        journal.setInputFile(logFile);
-        ChangeListReader reader = journal.getReader();
-        if (reader == null)
-            return;
-        for (ChangeList chList : reader) {
-            String treeName = chList.getTreeName();
-            JungleTree tree = jungle.getTreeByName(treeName);
-            if (tree == null) {
-                tree = jungle.createNewTree(treeName);
-            }
-            JungleTreeEditor editor = tree.getLocalTreeEditor();
-            Either<Error, JungleTreeEditor> either = JungleUpdater.edit(editor, chList);
-            editor = either.b();
-            if (either.isA()) {
-                throw new IOException("Failed commit log recovery");
-            }
-            editor.success();
-        }
-    }
-
-    public Iterable<String> getBoards() {
-        JungleTree tree = jungle.getTreeByName("boards");
-        TreeNode node = tree.getRootNode();
-        Children chs = node.getChildren();
-
-        IterableConverter.Converter<String, TreeNode> converter = new IterableConverter.Converter<String, TreeNode>() {
-            public String conv(TreeNode _b) {
-                ByteBuffer e = _b.getAttributes().get("name");
-                System.out.println(new String(e.array()));
-                return new String(e.array());
-            }
-        };
-
-        return new IterableConverter<String, TreeNode>(chs, converter);
-    }
-
-    public long getRenewTime(String _boardName) {
-        return renewTime;
-    }
-
-    public void createBoards(final String _name, final String _author, final String _initMessage, final String _editKey) {
-        requestCounter.incrementAndGet();
-        if (null == jungle.createNewTree(_name)) {
-            throw new IllegalStateException();
-        }
-
-        JungleTree tree = jungle.getTreeByName("boards");
-        JungleTreeEditor editor = tree.getTreeEditor();
-        DefaultNodePath root = new DefaultNodePath();
-        Either<Error, JungleTreeEditor> either = editor.addNewChildAt(root, 0);
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-        editor = either.b();
-
-        either = editor.putAttribute(root.add(0), "name", ByteBuffer.wrap(_name.getBytes()));
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-        editor = either.b();
-        final long timestamp = System.currentTimeMillis();
-        ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        either = editor.putAttribute(root.add(0), "timestamp", tBuffer);
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-        either = either.b().success();
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-
-        tree = jungle.getTreeByName(_name);
-        editor = tree.getTreeEditor();
-        either = editor.addNewChildAt(root, 0);
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-        editor = either.b();
-
-        NodeEditor e = new NodeEditor() {
-            ByteBuffer tBuffer2 = ByteBuffer.allocate(16);
-
-            public Either<Error, LoggingNode> edit(TreeNode node) {
-                LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
-                logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_initMessage.getBytes())).b();
-                logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
-                tBuffer2.putLong(timestamp);
-                logNode = logNode.getAttributes().put("timestamp", tBuffer2).b();
-                return DefaultEither.newB(logNode);
-            }
-
-            @Override
-            public LoggingNode wrap(TreeNode node, OperationLog op) {
-                return new LoggingNode(node, op);
-            }
-        };
-
-        either = editor.edit(root.add(0), e);
-        if (either.isA()) {
-            throw new IllegalStateException();
-        }
-        either.b().success();
-
-    }
-
-    public void createFolder(final String _board, final String _author, final String _message, final String _editKey,
-                             String _path) {
-        JungleTree tree = jungle.getTreeByName(_board);
-        if (tree == null) {
-            throw new IllegalStateException();
-        }
-
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        requestCounter.incrementAndGet();
-        Either<Error, JungleTreeEditor> either;
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-
-        do {
-            TreeNode node = tree.getRootNode();
-            DefaultTraverser traverser = new DefaultTraverser();
-            DefaultEvaluator evaluator = new DefaultEvaluator(path);
-            Either<Error, Traversal> ret = traverser.traverse(node, evaluator);
-            if (ret.isA()) {
-                Assert.fail();
-            }
-
-            Traversal traversal = ret.b();
-            TreeNode target = traversal.destination();
-            int size = target.getChildren().size();
-            JungleTreeEditor editor = tree.getTreeEditor();
-            either = editor.addNewChildAt(path, size);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-
-            NodeEditor e = new NodeEditor() {
-
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp", tBuffer).b();
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-
-            };
-            path = path.add(size);
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-
-    }
-
-    public void createBoardMessage(final String _board, final String _author, final String _message, final String _editKey) {
-        requestCounter.incrementAndGet();
-        JungleTree tree = jungle.getTreeByName(_board);
-        if (tree == null) {
-            throw new IllegalStateException();
-        }
-
-        Either<Error, JungleTreeEditor> either;
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        do {
-
-            TreeNode node = tree.getRootNode();
-            int size = node.getChildren().size();
-            DefaultNodePath path = new DefaultNodePath();
-
-            JungleTreeEditor editor = tree.getTreeEditor();
-            either = editor.addNewChildAt(path, size);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-
-            NodeEditor e = new NodeEditor() {
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
-                    logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp", tBuffer).b();
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            path = path.add(size);
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-
-    }
-
-    public void editMessage(String _board, String _path, final String _author, final String _message,
-                            final String _editKey) {
-        requestCounter.incrementAndGet();
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_board);
-        Either<Error, JungleTreeEditor> either = null;
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-        do {
-
-            JungleTreeEditor editor = tree.getTreeEditor();
-            NodeEditor e = new NodeEditor() {
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    System.out.println(new String(node.getAttributes().get("mes").array()));
-                    logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
-                    logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp", tBuffer).b();
-                    System.out.println(new String(node.getAttributes().get("mes").array()));
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-        renewTime = timestamp;
-    }
-
-    public void createAttribute(String _board, String _path, final String _author, final String _message,
-                                final String _editKey) {
-        requestCounter.incrementAndGet();
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_board);
-        Either<Error, JungleTreeEditor> either = null;
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        do {
-            JungleTreeEditor editor = tree.getTreeEditor();
-            NodeEditor e = new NodeEditor() {
-                String str;
-
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    str = "0";
-                    int count = 0;
-                    for (; logNode.getAttributes().get("mes" + String.valueOf(count)) != null; count++) {
-                    }
-                    str = String.valueOf(count);
-                    logNode = logNode.getAttributes().put("mes" + str, ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp" + str, tBuffer).b();
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-    }
-
-    public void editAttribute(String _bname, String _path, final String id, final String _message) {
-        requestCounter.incrementAndGet();
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_bname);
-        Either<Error, JungleTreeEditor> either = null;
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        do {
-            JungleTreeEditor editor = tree.getTreeEditor();
-            NodeEditor e = new NodeEditor() {
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    logNode = logNode.getAttributes().put("mes" + id, ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp" + id, tBuffer).b();
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-    }
-
-    public void deleteNode(String _board, String _path, String _id) {
-        requestCounter.incrementAndGet();
-        int id = Integer.parseInt(_id);
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_board);
-        Either<Error, JungleTreeEditor> either = null;
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        do {
-            JungleTreeEditor editor = tree.getTreeEditor();
-
-            either = editor.deleteChildAt(path, id);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-
-    }
-
-    public void deleteAttribute(String _board, String _path, final String id) {
-        requestCounter.incrementAndGet();
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_board);
-        Either<Error, JungleTreeEditor> either = null;
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        do {
-            JungleTreeEditor editor = tree.getTreeEditor();
-            NodeEditor e = new NodeEditor() {
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    logNode = logNode.getAttributes().delete("mes" + id).b();
-                    logNode = logNode.getAttributes().delete("timestamp" + id).b();
-                    int count = Integer.parseInt(id);
-                    for (; logNode.getAttributes().get("mes" + String.valueOf(count + 1)) != null; ) {
-                        logNode = logNode.getAttributes()
-                                .put("mes" + count, node.getAttributes().get("mes" + String.valueOf(count + 1))).b();
-                        logNode = logNode.getAttributes().put("timestamp" + count, tBuffer).b();
-                        count++;
-                    }
-                    if (count != Integer.parseInt(id)) {
-                        logNode = logNode.getAttributes().delete("timestamp" + count).b();
-                        logNode = logNode.getAttributes().delete("mes" + count).b();
-                    }
-
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-    }
-
-    public void editMatrixMessage(String _board, String _uuid, final String _author, final String _message,
-                                  final String _editKey) {
-        requestCounter.incrementAndGet();
-        final long timestamp = System.currentTimeMillis();
-        final ByteBuffer tBuffer = ByteBuffer.allocate(16);
-        tBuffer.putLong(timestamp);
-        JungleTree tree = jungle.getTreeByName(_board);
-        Either<Error, JungleTreeEditor> either = null;
-        do {
-            DefaultNodePath path = new DefaultNodePath();
-            path = path.add(Integer.parseInt(_uuid));
-
-            JungleTreeEditor editor = tree.getTreeEditor();
-            NodeEditor e = new NodeEditor() {
-                public Either<Error, LoggingNode> edit(TreeNode node) {
-                    LoggingNode logNode = wrap(node, new DefaultOperationLog());
-                    logNode = logNode.getAttributes().put("author", ByteBuffer.wrap(_author.getBytes())).b();
-                    logNode = logNode.getAttributes().put("mes", ByteBuffer.wrap(_message.getBytes())).b();
-                    logNode = logNode.getAttributes().put("key", ByteBuffer.wrap(_editKey.getBytes())).b();
-                    logNode = logNode.getAttributes().put("timestamp", tBuffer).b();
-                    return DefaultEither.newB(logNode);
-                }
-
-                @Override
-                public LoggingNode wrap(TreeNode node, OperationLog op) {
-                    return new LoggingNode(node, op);
-                }
-            };
-            either = editor.edit(path, e);
-            if (either.isA()) {
-                throw new IllegalStateException();
-            }
-            editor = either.b();
-            either = editor.success();
-        } while (either.isA());
-        renewTime = timestamp;
-    }
-
-    public Iterable<BoardMessage> getFolder(String _boardName, String _nodeNum) {
-        DefaultNodePath path = new DefaultNodePath();
-        System.out.println(_nodeNum.substring(0, 1));
-        String[] nums = _nodeNum.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-        JungleTree tree = jungle.getTreeByName(_boardName);
-        TreeNode node = tree.getRootNode();
-        requestCounter.incrementAndGet();
-
-        DefaultTraverser traverser = new DefaultTraverser();
-        DefaultEvaluator evaluator = new DefaultEvaluator(path);
-        Either<Error, Traversal> ret = traverser.traverse(node, evaluator);
-        if (ret.isA()) {
-            Assert.fail();
-        }
-
-        Traversal traversal = ret.b();
-        TreeNode target = traversal.destination();
-        Children chs = target.getChildren();
-
-        final AtomicInteger counter = new AtomicInteger(0);
-        IterableConverter.Converter<BoardMessage, TreeNode> converter = new IterableConverter.Converter<BoardMessage, TreeNode>() {
-            public BoardMessage conv(TreeNode _b) {
-                String uuid = Integer.toString(counter.get());
-                String message = new String(_b.getAttributes().get("mes").array());
-                counter.incrementAndGet();
-                return new BoardMessageImpl(null, message, uuid);
-            }
-        };
-        return new IterableConverter<BoardMessage, TreeNode>(chs, converter);
-    }
-
-    public boolean compare(TreeNode compareNode, String compareAttribute) {
-        String labName = compareNode.getAttributes().getString("mes");
-        if (labName.equals(compareAttribute))
-            return true;
-
-        for (int loopCount = 0; compareNode.getAttributes().getString("mes" + loopCount) != null; loopCount++) {
-            labName = compareNode.getAttributes().getString("mes" + loopCount);
-            if (labName.equals(compareAttribute))
-                return true;
-        }
-
-        return false;
-    }
-
-    public int getRequestNum() {
-        return requestCounter.get();
-    }
-
-    private static class BoardMessageImpl implements BoardMessage {
-        private final String author;
-        private final String message;
-        private final String uuid;
-
-        public BoardMessageImpl(String _author, String _message, String _uuid) {
-            author = _author;
-            message = _message;
-            uuid = _uuid;
-        }
-
-        public String getAuthor() {
-            return author;
-        }
-
-        public String getMessage() {
-            return message;
-        }
-
-        public String getUUID() {
-            return uuid;
-        }
-
-    }
-
-    public String sanitize(String str) {
-        if (str == null) {
-            return str;
-        }
-        str = str.replaceAll("&", "&amp;");
-        str = str.replaceAll("<", "&lt;");
-        str = str.replaceAll(">", "&gt;");
-        str = str.replaceAll("\"", "&quot;");
-        str = str.replaceAll("'", "&#39;");
-        return str;
-    }
-
-    @Override
-    public GetAttributeImp getAttribute(String _bname, String _path, String revisionStr) {
-        DefaultNodePath path = new DefaultNodePath();
-        String[] nums = _path.split(",");
-        for (String num : nums) {
-            if (!num.equals("-1"))
-                path = path.add(Integer.parseInt(num));
-        }
-
-        JungleTree tree = jungle.getTreeByName(_bname);
-        TreeNode node;
-        if (revisionStr.equals("-1")) {
-            node = tree.getRootNode();
-        } else {
-            Long revision = Long.parseLong(revisionStr);
-            JungleTree oldTree = tree.getOldTree(revision).b();
-            node = oldTree.getRootNode();
-        }
-
-        DefaultTraverser traverser = new DefaultTraverser();
-        DefaultEvaluator evaluator = new DefaultEvaluator(path);
-        Either<Error, Traversal> ret = traverser.traverse(node, evaluator);
-        if (ret.isA()) {
-            Assert.fail();
-        }
-
-        Traversal traversal = ret.b();
-        TreeNode target = traversal.destination();
-        return new GetAttributeImp(target);
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/RequestNumCheckServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-
-
-public class RequestNumCheckServlet extends HttpServlet
-{
-	private final NetworkBulletinBoard bbs;
-	private static final long serialVersionUID = 1L;
-	
-	public RequestNumCheckServlet(NetworkBulletinBoard _bbs)
-	{
-		bbs = _bbs;
-	}
-	
-	public void doGet(HttpServletRequest _req,HttpServletResponse _res)
-	{
-		int num = bbs.getRequestNum();
-		
-		try{
-			PrintWriter pw = _res.getWriter();
-			pw.write(Integer.toString(num));
-			pw.flush();
-		}catch(Exception _e){
-			_res.setStatus(500);
-		}
-		
-		
-	}
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/ShowMessageWithTimeStampServlet.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs;
-
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.GetAttributeImp;
-import org.eclipse.jetty.util.thread.ThreadPool;
-
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.PrintWriter;
-import java.util.Iterator;
-
-public class ShowMessageWithTimeStampServlet extends HttpServlet {
-    /**
-     *
-     */
-    private static final long serialVersionUID = 1L;
-    private final NetworkBulletinBoard bbs;
-    private final String createBoardMessagePath;
-
-    private static final String PARAM_BOARD_NAME = "bname";
-    private final String editMessagePath;
-
-    public ShowMessageWithTimeStampServlet(NetworkBulletinBoard _bbs,
-                                           String _createBoardMessagePath, String _editMessagePath, ThreadPool thp) {
-        bbs = _bbs;
-        createBoardMessagePath = _createBoardMessagePath;
-        editMessagePath = _editMessagePath;
-    }
-
-    public void doGet(HttpServletRequest _req, HttpServletResponse _res) {
-        final String bname = (_req.getParameter(PARAM_BOARD_NAME));
-        try {
-            _res.setCharacterEncoding("UTF-8");
-            printBoard(bname, _res.getWriter());
-        } catch (Exception _e) {
-            _res.setStatus(500);
-        }
-    }
-
-    private void printBoard(String _bname, PrintWriter _pw) throws Exception {
-        _pw.write("<html><body>\n");
-        _pw.write("<h1>" + bbs.sanitize(_bname) + "</h1>\n");
-        _pw.write("<p>Latest renew time : " + bbs.getRenewTime(_bname)
-                + "</p>\n");
-        ;
-
-        _pw.write("<form action='" + createBoardMessagePath + "' method='POST'\n");
-        _pw.write("<p>Author : <input type='text' name='author'/> <input type='hidden' name='bname' value='" + bbs.sanitize(_bname) + "'/> EditKey : <input type='textarea' name='key'/></p>\n");
-        _pw.write("<p>Message<br/> <input type='textarea' name='msg'/> </p>\n");
-        _pw.write("<p><input type='submit' value='submit'/></p>\n");
-
-        GetAttributeImp attribute = bbs.getAttribute(_bname, "[-1]", "0");
-        Iterator<String> keys = attribute.getKeys();
-
-        while (keys.hasNext()) {
-            String key = keys.next();
-            String mesage = attribute.getMessage(key);
-            _pw.write("<p>" + key + " = " + mesage + "</p>\n");
-        }
-        _pw.write("<p><a href='" + editMessagePath + "?bname=" + bbs.sanitize(_bname) + "&uuid=-1,0" + "'>edit" + "</a></p>");
-        _pw.write("</body></html>");
-        _pw.flush();
-    }
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/LogPutCodeSegment.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment;
-
-import alice.codesegment.CodeSegment;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog;
-
-
-public class LogPutCodeSegment extends CodeSegment{
-
-	NetworkTreeOperationLog log;
-	
-	public LogPutCodeSegment(NetworkTreeOperationLog _log) {
-		log = _log;
-	}
-	
-	@Override
-	public void run() {
-		ods.put("log", log);
-	}
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/LogUpdateCodeSegment.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import jp.ac.u_ryukyu.ie.cr.jungle.JungleTreeEditor;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
-import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.BulletinBoardJungleManager;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog;
-
-import java.util.List;
-
-public class LogUpdateCodeSegment extends CodeSegment {
-	
-	Receiver log = ids.create(CommandType.TAKE);
-	Receiver clist = ids.create(CommandType.PEEK);
-	
-	public LogUpdateCodeSegment() {
-		log.setKey("log");
-		clist.setKey("_CLIST");;
-	}
-	
-	public LogUpdateCodeSegment(int index) {
-		log.setKey("log", index);
-		clist.setKey("_CLIST");;
-	}
-	
-	public void run() {
-		int index = log.index;
-		new LogUpdateCodeSegment();
-		NetworkTreeOperationLog netLog = log.asClass(NetworkTreeOperationLog.class);
-		@SuppressWarnings("unchecked")
-		List<String> list = clist.asClass(List.class);
-		for (String node : list) {
-			if (!node.equals(log.from)) {
-				ods.put(node, log.key, log.getVal());
-			}
-		}
-		if (!log.from.equals("local")) {
-			Either<Error, JungleTreeEditor> either = BulletinBoardJungleManager.update(netLog);
-			if(either.isA()) {
-				new LogUpdateCodeSegment(index);
-				throw new IllegalStateException();				
-			}
-		}
-	}
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/codesegment/StartBBSCodeSegment.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment;
-
-import alice.codesegment.CodeSegment;
-import alice.datasegment.CommandType;
-import alice.datasegment.Receiver;
-import jp.ac.u_ryukyu.ie.cr.jungle.bbs.*;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.NetworkBulletinBoard;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.NetworkJungleBulletinBoard;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.RequestNumCheckServlet;
-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 javax.servlet.Servlet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class StartBBSCodeSegment 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 StartBBSCodeSegment(String[] _args, int p) {
-        args = _args;
-        bbsPort = p;
-        host.setKey("host");	
-    }
-
-    public StartBBSCodeSegment() {
-        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 = NetworkJungleBulletinBoard.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 createBoardPath = "/createBoard";
-        String editMessagePath = "/editMessage";
-        String showBoardMessagePath = "/showBoardMessage";
-
-
-        Server serv = new Server(bbsPort);
-        ThreadPool thp = serv.getThreadPool();
-        Servlet createBoardMessage = new CreateBoardMessageServlet(cassaBBS);
-        Servlet createBoard = new CreateBoardServlet(cassaBBS);
-        Servlet editBoardMessage = new EditMessageServlet(cassaBBS);
-        Servlet index = new ShowBoardsServlet(cassaBBS,createBoardPath,showBoardMessagePath);
-        Servlet board = new ShowBoardMessageServlet(cassaBBS,createBoardMessagePath,editMessagePath);
-        //Servlet board = new ShowMessageWithTimeStampServlet(cassaBBS,createBoardMessagePath,thp);
-
-        ServletHandler context = new ServletHandler();
-        context.addServletWithMapping(new ServletHolder(createBoardMessage),createBoardMessagePath);
-        context.addServletWithMapping(new ServletHolder(createBoard),createBoardPath);
-        context.addServletWithMapping(new ServletHolder(editBoardMessage),editMessagePath);
-        context.addServletWithMapping(new ServletHolder(index),"/");
-        context.addServletWithMapping(new ServletHolder(board),showBoardMessagePath);
-        /* 
-         * 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) { }
-        new LogUpdateCodeSegment();
-    }
-
-}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/bbs/io/NullOutputStream.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.io;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class NullOutputStream extends OutputStream {
-	
-	public NullOutputStream() {
-	}
-
-	@Override
-	public void write(int arg0) throws IOException {
-	}
-
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/codesegment/LogPutCodeSegment.java	Tue Jun 28 07:06:10 2016 +0900
@@ -0,0 +1,20 @@
+package jp.ac.u_ryukyu.ie.cr.jungleNetwork.codesegment;
+
+import alice.codesegment.CodeSegment;
+import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog;
+
+
+public class LogPutCodeSegment extends CodeSegment{
+
+	NetworkTreeOperationLog log;
+	
+	public LogPutCodeSegment(NetworkTreeOperationLog _log) {
+		log = _log;
+	}
+	
+	@Override
+	public void run() {
+		ods.put("log", log);
+	}
+
+}
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/transaction/NetworkDefaultJungleTreeEditor.java	Sun Feb 21 18:28:01 2016 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/jungleNetwork/transaction/NetworkDefaultJungleTreeEditor.java	Tue Jun 28 07:06:10 2016 +0900
@@ -19,7 +19,7 @@
 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.jungle.util.IterableConverter;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment.LogPutCodeSegment;
+import jp.ac.u_ryukyu.ie.cr.jungleNetwork.codesegment.LogPutCodeSegment;
 import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkTreeOperationLog;
 
 import java.io.IOException;
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/junglenetwork/showMessageTest.java	Sun Feb 21 18:28:01 2016 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.junglenetwork;
-
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.bbs.codesegment.StartBBSCodeSegment;
-import jp.ac.u_ryukyu.ie.cr.jungleNetwork.remote.RemoteConfig;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.net.Socket;
-
-
-public class showMessageTest {
-
-	public static void main(String args[]) throws Exception {
-		String host = "localhost";
-		int port = 8080;
-		String path = "/showBoardMessage?bname=" + args[0];
-		String url = "http://" + host + ":" + port + path;
-		String str;
-		System.out.println(url);
-		RemoteConfig conf = new RemoteConfig(args);
-		StartBBSCodeSegment cs1 = new StartBBSCodeSegment(args, conf.bbsPort);
-		cs1.ods.put("host", "node0");
-		BufferedReader input = new BufferedReader(new InputStreamReader(
-				System.in));
-		Thread.sleep(1000);
-
-		do{
-			try {
-				Socket socket = new Socket(host, port);
-				BufferedReader readSocket = new BufferedReader(
-						new InputStreamReader(socket.getInputStream()));
-				BufferedWriter writeSocket = new BufferedWriter(
-						new OutputStreamWriter(socket.getOutputStream()));
-
-				writeSocket.write("GET " + url + " HTTP/1.1\r\n");
-				writeSocket.write("Host: " + host + "\n");
-				writeSocket.write("\n");
-				writeSocket.flush();
-				while ((str = readSocket.readLine()) != null) {
-					System.out.println(str);
-				}
-				writeSocket.close();
-				readSocket.close();
-				socket.close();
-				System.out.println("please input  connection tree name  or quit");
-
-			} catch (Exception ex) {
-				ex.printStackTrace();
-			}
-		}while(input.readLine() != "quit");
-	}
-}