# HG changeset patch # User one # Date 1373540316 -32400 # Node ID 4419ac56cbfd6fb80caaef40494e15d6a16c8e89 # Parent b8b9668da13c6a2ee35b2a61fbb4e8a273f8b37f implemented serverName filed diff -r b8b9668da13c -r 4419ac56cbfd .classpath --- a/.classpath Tue Jul 09 17:37:09 2013 +0900 +++ b/.classpath Thu Jul 11 19:58:36 2013 +0900 @@ -11,7 +11,6 @@ - diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/codesegment/LogUpdateCodeSegment.java --- 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; + } + + + } diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/core/NetworkDefaultJungle.java --- 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 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(); 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 tc = new DefaultTreeContext(root,set); - JungleTree newTree = new NetworkDefaultJungleTree(_name, tc,uuid,journal.getWriter(),editor); + JungleTree newTree = new NetworkDefaultJungleTree(_name, tc,uuid,journal.getWriter(),editor, serverName); if(trees.putIfAbsent(_name,newTree) != null){ return null; } diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/remote/RemoteConfig.java --- 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]; - } - } } } diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/transaction/NetworkDefaultJungleTree.java --- 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 _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor) + public NetworkDefaultJungleTree(String _treeName, TreeContext _tc,String _uuid,ChangeListWriter _writer,TreeEditor _editor, String _serverName) { treeName = _treeName; repository = new AtomicReservableReference>(_tc); uuid = _uuid; writer = _writer; editor = _editor; + serverName = _serverName; } @Override public JungleTreeEditor getTreeEditor() { TreeContext tc = repository.get(); - NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid); + NetworkTransactionManager txManager = new NetworkTransactionManager(treeName, writer,tc,repository,uuid, serverName); T root = tc.getTreeNode(); return new NetworkDefaultJungleTreeEditor(treeName, root,txManager,editor); } diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/transaction/NetworkDefaultJungleTreeEditor.java --- 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> implements JungleTreeEditor { @@ -137,12 +141,7 @@ @Override public Node getRoot() { - return null; - } - - public JungleTreeEditor setNewLogAndGetEditor(TreeOperationLog _log) { - JungleTreeEditor newEditor = new NetworkDefaultJungleTreeEditor(treeName, root,txManager,editor, _log); - return newEditor; + return (Node)root; } public TreeOperationLog getTreeOperationLog() { diff -r b8b9668da13c -r 4419ac56cbfd src/alice/jungle/transaction/NetworkTransactionManager.java --- 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> implements TransactionManager { @@ -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 _tip, - AtomicReservableReference> _repository,String _uuid) + AtomicReservableReference> _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 txManager = new NetworkTransactionManager(treeName, writer, newContext, repository, uuid); + TransactionManager txManager = new NetworkTransactionManager(treeName, writer, newContext, repository, uuid, serverName); return DefaultEither.newB(txManager); } - private void updateDataSegment(String _uuid, String _treeName, Iterable _log) throws IOException { + private void putDataSegment(String _uuid, String _treeName, Iterable _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); } diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/bbs/DistributeApp.java --- 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(); +*/ } } diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/bbs/JungleManager.java --- 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() { diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/bbs/NetworkJungleBulletinBoard.java --- 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"); } diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/bbs/codesegment/PutAnotherLogCodeSegment.java --- 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"); - } } diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/bbs/codesegment/PutHostLogCodeSegment.java --- 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(); diff -r b8b9668da13c -r 4419ac56cbfd src/jungle/test/codesegment/persistence/AliceJournal.java --- 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; } }