changeset 42:4419ac56cbfd

implemented serverName filed
author one
date Thu, 11 Jul 2013 19:58:36 +0900
parents b8b9668da13c
children 12d87bb4b84d
files .classpath src/alice/jungle/codesegment/LogUpdateCodeSegment.java src/alice/jungle/core/NetworkDefaultJungle.java src/alice/jungle/remote/RemoteConfig.java src/alice/jungle/transaction/NetworkDefaultJungleTree.java src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java src/alice/jungle/transaction/NetworkTransactionManager.java src/jungle/test/bbs/DistributeApp.java src/jungle/test/bbs/JungleManager.java src/jungle/test/bbs/NetworkJungleBulletinBoard.java src/jungle/test/bbs/codesegment/PutAnotherLogCodeSegment.java src/jungle/test/bbs/codesegment/PutHostLogCodeSegment.java src/jungle/test/codesegment/persistence/AliceJournal.java
diffstat 13 files changed, 70 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/.classpath	Tue Jul 09 17:37:09 2013 +0900
+++ b/.classpath	Thu Jul 11 19:58:36 2013 +0900
@@ -11,7 +11,6 @@
 	<classpathentry kind="lib" path="lib/functionaljava.jar"/>
 	<classpathentry kind="lib" path="lib/guava-12.0-sources.jar"/>
 	<classpathentry kind="lib" path="lib/guava-12.0.jar"/>
-	<classpathentry kind="lib" path="/jungle-core/target/jungle-core-0.0.1-SNAPSHOT.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
--- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java	Thu Jul 11 19:58:36 2013 +0900
@@ -15,21 +15,30 @@
 
 public class LogUpdateCodeSegment extends CodeSegment {
 	
-	public Receiver arg1 = ids.create(CommandType.TAKE);
+	public Receiver arg1 = ids.create(CommandType.PEEK);
+	private final String rh;
+	private final String key;
 	
-	public LogUpdateCodeSegment() {
-		
+	public LogUpdateCodeSegment(String _rh, String _key) {
+		rh = _rh;
+		key = _key;
 	}
 	
 	public void run() {
+		System.out.println("--LogUpdateCodeSegment--");
+		int index = arg1.index;
 		DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class);
+		if(!updaterIsMe(container)) {
+			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
+			updateCS.arg1.setKey(rh, key, index+1);
+			return;
+		}
 		DefaultTreeOperationLog log = null;
 		try {
 			log = container.convert();
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
-		
 		JungleManager jm = new JungleManager();
 		JungleTree tree = jm.getJungle().getTreeByName("boards");
 		JungleTreeEditor editor = tree.getTreeEditor();
@@ -39,5 +48,15 @@
 		}
 		editor = either.b();
 		editor.success();
+		LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment(rh, key);
+		updateCS.arg1.setKey(rh, key, index+1);
 	}
+	
+	private boolean updaterIsMe(DefaultTreeOperationLogContainer container) {
+
+		return true;
+	}
+	
+	
+	
 }
--- a/src/alice/jungle/core/NetworkDefaultJungle.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/core/NetworkDefaultJungle.java	Thu Jul 11 19:58:36 2013 +0900
@@ -24,13 +24,15 @@
 	private ConcurrentHashMap<String,JungleTree> trees;
 	private String uuid;
 	private TreeEditor editor;
+	private String serverName;
 	
-	public NetworkDefaultJungle(Journal _journal,String _uuid,TreeEditor _editor)
+	public NetworkDefaultJungle(Journal _journal,String _uuid,TreeEditor _editor, String _serverName)
 	{
 		journal = new AliceJournal();
 		trees = new ConcurrentHashMap<String,JungleTree>();
 		uuid = _uuid;
 		editor = _editor;
+		serverName = _serverName;
 	}
 
 	@Override
@@ -52,7 +54,7 @@
 		DefaultTreeNode root = new DefaultTreeNode();
 		ChangeSet set = new DefaultChangeSet(root.getAsNode(),null,list,uuid,0);
 		DefaultTreeContext<DefaultTreeNode> tc = new DefaultTreeContext<DefaultTreeNode>(root,set);
-		JungleTree newTree = new NetworkDefaultJungleTree<DefaultTreeNode>(_name, tc,uuid,journal.getWriter(),editor);
+		JungleTree newTree = new NetworkDefaultJungleTree<DefaultTreeNode>(_name, tc,uuid,journal.getWriter(),editor, serverName);
 		if(trees.putIfAbsent(_name,newTree) != null){
 			return null;
 		}
--- a/src/alice/jungle/remote/RemoteConfig.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/remote/RemoteConfig.java	Thu Jul 11 19:58:36 2013 +0900
@@ -1,24 +1,11 @@
 package alice.jungle.remote;
-import alice.daemon.Config;
+import alice.topology.node.TopologyNodeConfig;
 
 
-public class RemoteConfig  extends Config {
-	
-	public String hostname;
-	public int connectPort = 10000;
-	public String key = "remote";
+public class RemoteConfig  extends TopologyNodeConfig {
 	
 	public RemoteConfig(String[] args) {
 		super(args);
-		for (int i = 0; i< args.length; i++) {
-			if ("-h".equals(args[i])) {
-				hostname = args[++i];
-			} else if ("-cp".equals(args[i])) {
-				connectPort = Integer.parseInt(args[++i]);
-			} else if ("-key".equals(args[i])) {
-				key = args[++i];
-			}
-		}
 	}
 
 }
--- a/src/alice/jungle/transaction/NetworkDefaultJungleTree.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkDefaultJungleTree.java	Thu Jul 11 19:58:36 2013 +0900
@@ -17,21 +17,23 @@
 	private final String treeName;
 	private final ChangeListWriter writer;
 	private final TreeEditor editor;
+	private final String serverName;
 	
-	public NetworkDefaultJungleTree(String _treeName, TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor)
+	public NetworkDefaultJungleTree(String _treeName, TreeContext<T> _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor, String _serverName)
 	{
 		treeName = _treeName;
 		repository = new AtomicReservableReference<TreeContext<T>>(_tc);
 		uuid = _uuid;
 		writer = _writer;
 		editor = _editor;
+		serverName = _serverName;
 	}
 
 	@Override
 	public JungleTreeEditor getTreeEditor()
 	{
 		TreeContext<T> tc = repository.get();
-		NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid);
+		NetworkTransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer,tc,repository,uuid, serverName);
 		T root = tc.getTreeNode();
 		return new NetworkDefaultJungleTreeEditor<T>(treeName, root,txManager,editor);
 	}
--- a/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java	Thu Jul 11 19:58:36 2013 +0900
@@ -1,7 +1,10 @@
 package alice.jungle.transaction;
 
+import java.io.IOException;
 import java.nio.ByteBuffer;
 
+import alice.jungle.datasegment.store.operations.DefaultTreeOperationLogContainer;
+
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
@@ -25,6 +28,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.IterableConverter;
+import jungle.test.bbs.codesegment.NullCodeSegmentForUpdate;
 
 public class NetworkDefaultJungleTreeEditor<T extends TreeNode<T>> implements JungleTreeEditor {
 
@@ -137,12 +141,7 @@
 	@Override
 	public Node getRoot()
 	{
-		return null;
-	}
-	
-	public JungleTreeEditor setNewLogAndGetEditor(TreeOperationLog _log) {
-		JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor<T>(treeName, root,txManager,editor, _log);
-		return newEditor;
+		return (Node)root;
 	}
 	
 	public TreeOperationLog getTreeOperationLog() {
--- a/src/alice/jungle/transaction/NetworkTransactionManager.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/alice/jungle/transaction/NetworkTransactionManager.java	Thu Jul 11 19:58:36 2013 +0900
@@ -24,6 +24,7 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.DefaultError;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
+import jungle.test.bbs.codesegment.NullCodeSegmentForUpdate;
 
 public class NetworkTransactionManager<T extends TreeNode<T>> implements TransactionManager<T> 
 {
@@ -33,15 +34,17 @@
 	private final ChangeListWriter writer;
 	private final String uuid;	
 	private final String treeName;	
+	private final String serverName;
 	
 	public NetworkTransactionManager(String _treeName, ChangeListWriter _writer,TreeContext<T> _tip,
-			AtomicReservableReference<TreeContext<T>> _repository,String _uuid)
+			AtomicReservableReference<TreeContext<T>> _repository,String _uuid, String _serverName)
 	{
 		repository = _repository;
 		tip = _tip;
 		writer = _writer;
 		uuid = _uuid;
 		treeName = _treeName;
+		serverName = _serverName;
 	}
 	
 	@Override
@@ -71,22 +74,22 @@
 			return DefaultEither.newA((Error)new DefaultError());
 		}
 		try {
-			updateDataSegment(uuid, treeName, list);
+			putDataSegment(uuid, treeName, list);
 		} catch (IOException e) {
 			e.printStackTrace();
 		}
 		reservation.confirm();
-		TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid);
+		TransactionManager<T> txManager = new NetworkTransactionManager<T>(treeName, writer, newContext, repository, uuid, serverName);
 		return DefaultEither.newB(txManager);
 	}
 	
-	private void updateDataSegment(String _uuid, String _treeName, Iterable<TreeOperation> _log) throws IOException {
+	private void putDataSegment(String _uuid, String _treeName, Iterable<TreeOperation> _log) throws IOException {
 		DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer();
 		container.setTreeName(_treeName);
 		container.setUUID(_uuid);
 		container.unconvert(_log);
-		LogUpdateCodeSegment cs = new LogUpdateCodeSegment();
-		cs.ods.update("local", "log", container);
+		NullCodeSegmentForUpdate cs = new NullCodeSegmentForUpdate();
+		cs.ods.put("local", "log", container);
 		
 	}
 
--- a/src/jungle/test/bbs/DistributeApp.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/bbs/DistributeApp.java	Thu Jul 11 19:58:36 2013 +0900
@@ -4,6 +4,7 @@
 
 import jungle.test.bbs.codesegment.PutAnotherLogCodeSegment;
 import jungle.test.bbs.codesegment.PutHostLogCodeSegment;
+import jungle.test.bbs.codesegment.StartBBSCodeSegment;
 
 import org.mortbay.jetty.Server;
 import org.mortbay.jetty.servlet.ServletHandler;
@@ -13,6 +14,8 @@
 import alice.datasegment.DataSegment;
 import alice.jungle.codesegment.LogUpdateCodeSegment;
 import alice.jungle.remote.RemoteConfig;
+import alice.topology.node.StartTopologyNode;
+import alice.topology.node.TopologyNode;
 
 /**
  * Hello world!
@@ -22,43 +25,23 @@
 {
     public static void main( String[] args ) throws Exception
     {
-    	BulletinBoard cassaBBS = null;
-   		cassaBBS = new NetworkJungleBulletinBoard();
+
    		RemoteConfig conf = new RemoteConfig(args);
+   		new TopologyNode(conf, new StartBBSCodeSegment());
+/*
    		if(conf.hostname == null) {
-   			/* Host Side */
    			new AliceDaemon(conf).listen();
    			PutHostLogCodeSegment cs = new PutHostLogCodeSegment();
    			cs.arg1.setKey("local","log");
+   			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment("local", "anotherLog");
+   			updateCS.arg1.setKey("local", "anotherLog");
    		} else {
-   			/* Client Side */
    			DataSegment.connect(conf.key, "", conf.hostname, conf.connectPort);
-   			LogUpdateCodeSegment cs = new LogUpdateCodeSegment();
-   			cs.arg1.setKey("remote", "hostLog");
-   			PutAnotherLogCodeSegment cs2 = new PutAnotherLogCodeSegment();
-   			cs2.arg1.setKey("local", "log");
+   			PutAnotherLogCodeSegment cs = new PutAnotherLogCodeSegment();
+   			cs.arg1.setKey("local", "log");
+   			LogUpdateCodeSegment updateCS = new LogUpdateCodeSegment("remote", "hostLog");
+   			updateCS.arg1.setKey("remote", "hostLog");
    		}
-		
-
-    	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);
-    	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);
-    	serv.addHandler(context);
-    	serv.start();
+*/		
     }
 }
--- a/src/jungle/test/bbs/JungleManager.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/bbs/JungleManager.java	Thu Jul 11 19:58:36 2013 +0900
@@ -18,10 +18,10 @@
 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
 
 public class JungleManager {
-	static Jungle jungle = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
+	static Jungle jungle;
 
-	public JungleManager() {
-	
+	public JungleManager(String _serverName) {
+		jungle = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()), _serverName);	
 	}
 	
 	public Jungle getJungle() {
--- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java	Thu Jul 11 19:58:36 2013 +0900
@@ -22,13 +22,13 @@
 
 public class NetworkJungleBulletinBoard implements BulletinBoard
 {
-	private JungleManager jvm;
+	private JungleManager jm;
 	private final Jungle jungle;
 	
 	public NetworkJungleBulletinBoard()
 	{
-		jvm = new JungleManager();
-		jungle = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()));
+		jm = new JungleManager();
+		jungle = jm.getJungle();
 		jungle.createNewTree("boards");
 	}
 
--- a/src/jungle/test/bbs/codesegment/PutAnotherLogCodeSegment.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/bbs/codesegment/PutAnotherLogCodeSegment.java	Thu Jul 11 19:58:36 2013 +0900
@@ -5,17 +5,18 @@
 import alice.codesegment.CodeSegment;
 import alice.datasegment.CommandType;
 import alice.datasegment.Receiver;
+import alice.jungle.codesegment.LogUpdateCodeSegment;
 
 public class PutAnotherLogCodeSegment extends CodeSegment {
 	
 	public Receiver arg1 = ids.create(CommandType.TAKE);
 	
 	public void run() {
+		System.out.println("Client: PutAnotherLogCodeSegment");
 		Value v = (Value)arg1.getVal();
 		ods.put("remote", "anotherLog", v);
 		PutAnotherLogCodeSegment cs = new PutAnotherLogCodeSegment();
 		cs.arg1.setKey("local", "log");		
-		
 	}
 
 }
--- a/src/jungle/test/bbs/codesegment/PutHostLogCodeSegment.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/bbs/codesegment/PutHostLogCodeSegment.java	Thu Jul 11 19:58:36 2013 +0900
@@ -11,6 +11,7 @@
 	public Receiver arg1 = ids.create(CommandType.TAKE);
 	
 	public void run() {
+		System.out.println("Host: PutHostLogCodeSegment");
 		Value v = (Value) arg1.getVal();
 		ods.put("local", "hostLog", v);
 		PutHostLogCodeSegment cs = new PutHostLogCodeSegment();
--- a/src/jungle/test/codesegment/persistence/AliceJournal.java	Tue Jul 09 17:37:09 2013 +0900
+++ b/src/jungle/test/codesegment/persistence/AliceJournal.java	Thu Jul 11 19:58:36 2013 +0900
@@ -35,13 +35,6 @@
 		{
 /*
 			for(TreeOperation op : _operations){
-				DefaultTreeOperationContainer container = new DefaultTreeOperationContainer();
-				container.unconvert(op);
-				cs.ods.update("local", "op", op);
-			}
-			
-*/				
-			for(TreeOperation op : _operations){
 				NodePath p = op.getNodePath();
 				NodeOperation nodeOp = op.getNodeOperation();
 				Command c = nodeOp.getCommand();
@@ -68,6 +61,7 @@
 				}
 				System.out.println(String.format("[%s:%s:%s]",c,p,args));
 			}
+*/
 			return Result.SUCCESS;
 		}
 	}