# HG changeset patch # User one # Date 1381924424 -32400 # Node ID 60d28fedcbf210cdbde5974fea1cfede39b44f24 # Parent b9dd8ec0e66ea68db61cd2f6edbbc14131d4c13a Remove unnecessary files and move some files diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/CheckDoubleTreeAttr.java --- a/src/jungle/test/alice/CheckDoubleTreeAttr.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -package jungle.test.alice; - -import java.nio.ByteBuffer; -import java.util.Iterator; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class CheckDoubleTreeAttr extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public CheckDoubleTreeAttr() { - arg1.setKey("count"); - } - - public void run() { - int count = arg1.asInteger(); - - DoubleJungleManager djm = new DoubleJungleManager(); - Jungle jungle1 = djm.getJungle1(); - Jungle jungle2 = djm.getJungle2(); - JungleTree tree1 = jungle1.getTreeByName("tree"); - JungleTree tree2 = jungle2.getTreeByName("tree"); - - Node node1 = tree1.getRootNode(); - Node node2 = tree2.getRootNode(); - Children chs1 = node1.getChildren(); - Children chs2 = node2.getChildren(); - - Iterator iter1 = chs1.iterator(); - Iterator iter2 = chs2.iterator(); - - for(; iter1.hasNext() && iter2.hasNext();) { - Node n1 = iter1.next(); - Node n2 = iter2.next(); - ByteBuffer b1 = n1.getAttributes().get("key"); - ByteBuffer b2 = n2.getAttributes().get("key"); - String str1 = new String(b1.array()); - String str2 = new String(b2.array()); - if(!str1.equals(str2)) { - System.out.println("Failed "); - System.out.println("str1 "+ str1); - System.out.println("str2 "+ str2); - System.exit(0); - } else { - System.out.println("success: " + str1); - } - } - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/CopyAttrJungle2.java --- a/src/jungle/test/alice/CopyAttrJungle2.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -package jungle.test.alice; - -import java.io.IOException; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import jungle.app.bbs.JungleManager; -import jungle.test.core.practice.PrintChildrenAttribute; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; - -public class CopyAttrJungle2 extends CodeSegment { - - Receiver logReceiver = ids.create(CommandType.TAKE); - Receiver countReceiver = ids.create(CommandType.TAKE); - - public CopyAttrJungle2() { - logReceiver.setKey("log"); - countReceiver.setKey("count2"); - } - - public void run() { - System.out.println("CopyAttrJungle2"); - int count = countReceiver.asInteger(); - DefaultTreeOperationLogContainer container = logReceiver.asClass(DefaultTreeOperationLogContainer.class); - DefaultTreeOperationLog log = null; - try { - log = container.convert(); - } catch (IOException e) { - e.printStackTrace(); - System.exit(0); - } - String treeName = container.getTreeName(); - DoubleJungleManager djm = new DoubleJungleManager(); - Jungle jungle2 = djm.getJungle2(); - JungleTree tree = jungle2.getTreeByName(treeName); - - JungleTreeEditor editor = tree.getTreeEditor(); - Either either = djm.edit(editor, log); - if (either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - editor.success(); - new CheckDoubleTreeAttr(); - ods.update("count", count); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/DoubleJungleManager.java --- a/src/jungle/test/alice/DoubleJungleManager.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -package jungle.test.alice; - -import java.nio.ByteBuffer; - -import alice.jungle.core.NetworkDefaultJungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; - -public class DoubleJungleManager { - - static Jungle jungle1 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()), ""); - static Jungle jungle2 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()), ""); - - - public DoubleJungleManager() { - - } - - public Jungle getJungle1() { - return jungle1; - } - - public Jungle getJungle2() { - return jungle2; - } - - - public Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) { - JungleTreeEditor editor = _editor; - Either either = null; - for (TreeOperation op : _log) { - either = _edit(editor, op); - if(either.isA()) { - return either; - } - editor = either.b(); - } - return either; - } - - private Either _edit(JungleTreeEditor editor, - TreeOperation op) { - NodePath path = op.getNodePath(); - NodeOperation nodeOp = op.getNodeOperation(); - Command c = nodeOp.getCommand(); - String key = ""; - switch (c) { - case PUT_ATTRIBUTE: - key = nodeOp.getKey(); - ByteBuffer value = nodeOp.getValue(); - return editor.putAttribute(path, key, value); - case DELETE_ATTRIBUTE: - key = nodeOp.getKey(); - return editor.deleteAttribute(path, key); - case APPEND_CHILD: - return editor.addNewChildAt(path, 0); - case DELETE_CHILD: - return editor.deleteChildAt(path, 0); - } - return null; - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/HashSetConvertTest.java --- a/src/jungle/test/alice/HashSetConvertTest.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -package jungle.test.alice; - -import java.util.HashSet; - -import org.msgpack.annotation.Message; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class HashSetConvertTest extends CodeSegment { - - Receiver hash = ids.create(CommandType.TAKE); - - public HashSetConvertTest() { - hash.setKey("hash"); - } - - public static void main(String[] args) { - HashSetDataSegment h = new HashSetDataSegment(); - h.hash.add("test1"); - h.hash.add("test2"); - - HashSetConvertTest cs = new HashSetConvertTest(); - cs.ods.put("hash", h); - } - - public void run() { - HashSetDataSegment h = hash.asClass(HashSetDataSegment.class); - for(String s : h.hash ) { - System.out.println("s : "+s); - } - System.exit(0); - } - - @Message - private static class HashSetDataSegment { - public HashSet hash = new HashSet(); - public HashSetDataSegment() {} - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/LocalDoubleJungleTree.java --- a/src/jungle/test/alice/LocalDoubleJungleTree.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -package jungle.test.alice; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; - -public class LocalDoubleJungleTree { - - public static void main(String[] args) { - System.out.println("LocalDoubleJungleTree"); - DoubleJungleManager djm = new DoubleJungleManager(); - Jungle jungle1 = djm.getJungle1(); - Jungle jungle2 = djm.getJungle2(); - jungle1.createNewTree("tree"); - jungle2.createNewTree("tree"); - - PutAttrJungle1 cs = new PutAttrJungle1(); - cs.ods.update("count1", 0); - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/alice/PutAttrJungle1.java --- a/src/jungle/test/alice/PutAttrJungle1.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -package jungle.test.alice; - -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class PutAttrJungle1 extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public PutAttrJungle1() { - arg1.setKey("count1"); - } - - public void run() { - System.out.println("PutAttrJungle1"); - int count = arg1.asInteger(); - Jungle jungle1 = new DoubleJungleManager().getJungle1(); - JungleTree tree = jungle1.getTreeByName("tree"); - JungleTreeEditor editor = tree.getTreeEditor(); - DefaultNodePath root = new DefaultNodePath(); - Either either = editor.addNewChildAt(root, 0); - if(either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - either = editor.putAttribute(root.add(0), "key", ByteBuffer.wrap("message".getBytes())); - if(either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - editor.success(); - - new CopyAttrJungle2(); - ods.update("count2", count); - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/local/HasFieldCodeSegment.java --- a/src/jungle/test/codesegment/local/HasFieldCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -package jungle.test.codesegment.local; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class HasFieldCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - String str; - - public HasFieldCodeSegment(String s) { - str = s; - } - - - public void run() { - int count = arg1.asInteger(); - System.out.println("-HasFieldCodeSegment- : "+str); - System.exit(0); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/local/StartLocalCodeSegment.java --- a/src/jungle/test/codesegment/local/StartLocalCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -package jungle.test.codesegment.local; - -public class StartLocalCodeSegment { - - public static void main(String[] arg) { - HasFieldCodeSegment cs = new HasFieldCodeSegment("test"); - cs.arg1.setKey("count"); - cs.ods.update("count", 0); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/log/practice/StartCodeSegment.java --- a/src/jungle/test/codesegment/log/practice/StartCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -package jungle.test.codesegment.log.practice; - -import java.io.IOException; -import java.nio.ByteBuffer; -import java.util.LinkedList; -import java.util.List; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.AppendChildAtOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; -import alice.codesegment.CodeSegment; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; - -public class StartCodeSegment extends CodeSegment { - - @Override - public void run() { - System.out.println("run StartCodeSegment"); - - TestCodeSegment cs = new TestCodeSegment(); - cs.arg1.setKey("log"); - System.out.println("create TestCodeSegment"); - - DefaultTreeOperationLog log = getSampleOperationLog(); - DefaultTreeOperationLogContainer logContainer = new DefaultTreeOperationLogContainer(); - try { - logContainer.unconvert(log); - ods.update("local", "log", logContainer); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public DefaultTreeOperationLog getSampleOperationLog() { - String key = "hoge"; - ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes()); - DefaultNodePath nodePath1 = new DefaultNodePath(); - nodePath1 = nodePath1.add(1); - DefaultNodePath nodePath2 = nodePath1.add(2); - AppendChildAtOperation appendChildOp1 = new AppendChildAtOperation(1); - AppendChildAtOperation appendChildOp2 = new AppendChildAtOperation(2); - PutAttributeOperation putOp = new PutAttributeOperation(key, b); - DeleteAttributeOperation deleteOp = new DeleteAttributeOperation("hoge"); - DeleteChildAtOperation deleteChild = new DeleteChildAtOperation(2); - List list = new LinkedList(); - list.add(new DefaultTreeOperation(new DefaultNodePath(), appendChildOp1)); - list.add(new DefaultTreeOperation(nodePath1, appendChildOp2)); - list.add(new DefaultTreeOperation(nodePath2, putOp)); - list.add(new DefaultTreeOperation(nodePath2, deleteOp)); - list.add(new DefaultTreeOperation(nodePath1, deleteChild)); - DefaultTreeOperationLog log = new DefaultTreeOperationLog(list, list.size()); - return log; - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/log/practice/TestCodeSegment.java --- a/src/jungle/test/codesegment/log/practice/TestCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -package jungle.test.codesegment.log.practice; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -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.Command; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.jungle.core.NetworkDefaultJungle; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; -import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; -import alice.test.topology.aquarium.FishPoint; - -import org.msgpack.MessagePack; -import org.msgpack.type.Value; - -public class TestCodeSegment extends CodeSegment { - - static Jungle jungle = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()), "serverName"); - - // create input datasegment arg1 - Receiver arg1 = ids.create(CommandType.PEEK); - - public TestCodeSegment() { - arg1.setKey("log"); - jungle.createNewTree("tree"); - } - - @Override - public void run() { - System.out.println("type = " + arg1.type); - System.out.println("index = " + arg1.index); - System.out.println("data = " + arg1.getVal()); - System.out.println(((Value)arg1.getVal()).getType()); - - DefaultTreeOperationLogContainer convertedLogContainer = arg1.asClass(DefaultTreeOperationLogContainer.class); - TreeOperationLog convertedLog = null; - try { - convertedLog = convertedLogContainer.convert(); - } catch (IOException e) { - e.printStackTrace(); - } - printLog(convertedLog); - - JungleTree tree = jungle.getTreeByName("tree"); - NetworkDefaultJungleTreeEditor editor = (NetworkDefaultJungleTreeEditor) tree.getTreeEditor(); -/* - JungleTreeEditor tEditor = editor.setNewLogAndGetEditor(convertedLog); - - Either either = tEditor.success(); - if (either.isA()) { - throw new IllegalStateException(); - } -*/ - System.exit(0); - } - - public void printLog(TreeOperationLog log) { - for (TreeOperation treeOp : log) { - NodePath path = treeOp.getNodePath(); - NodeOperation nodeOp = treeOp.getNodeOperation(); - Command c = nodeOp.getCommand(); - String str = ""; - switch (c) { - case PUT_ATTRIBUTE: - String k = nodeOp.getKey(); - ByteBuffer value = nodeOp.getValue(); - if (value.limit() < 100) { - str = String.format("key:%s,value:%s", k, - new String(value.array())); - } else { - str = String.format("key:%s,value:%d", k, value.limit()); - } - break; - case DELETE_ATTRIBUTE: - str = String.format("key:%s", nodeOp.getKey()); - break; - case APPEND_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - break; - case DELETE_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - break; - } - System.out.println(String.format("[%s:%s]", c, str)); - System.out.println("path:"); - for (int i: path ) { - System.out.println(i); - } - } - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/log/practice/TestLocalAlice.java --- a/src/jungle/test/codesegment/log/practice/TestLocalAlice.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -package jungle.test.codesegment.log.practice; - -import alice.daemon.AliceDaemon; -import alice.daemon.Config; - -public class TestLocalAlice { - public static void main(String args[]) { - new AliceDaemon(new Config(args)).listen(); // logger off - new StartCodeSegment().execute(); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/operation/ShowAttribute.java --- a/src/jungle/test/codesegment/operation/ShowAttribute.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -package jungle.test.codesegment.operation; - -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import jungle.app.bbs.JungleManager; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class ShowAttribute extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public ShowAttribute() { - arg1.setKey("show"); - } - - public void run() { - System.out.println("--ShowAttribute--"); - - Jungle jungle = JungleManager.getJungle(); - JungleTree tree = jungle.getTreeByName("tree"); - Node node = tree.getRootNode(); - Children chs = node.getChildren(); - System.out.println("children size : "+chs.size()); - for(Node n : chs) { - ByteBuffer b = n.getAttributes().get("key1"); - System.out.println(new String(b.array())); - } - - System.exit(0); - - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/operation/StartJungleCodeSegment.java --- a/src/jungle/test/codesegment/operation/StartJungleCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -package jungle.test.codesegment.operation; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; -import jungle.app.bbs.JungleManager; -import alice.codesegment.CodeSegment; -import alice.jungle.datasegment.store.container.DefaultTreeOperationContainer; - -public class StartJungleCodeSegment { - - public static void main(String[] args) { - System.out.println("--StartJungleCodeSegment--"); - - JungleTree tree = JungleManager.createNewTree("tree"); - JungleTreeEditor editor = tree.getTreeEditor(); - DefaultNodePath path = new DefaultNodePath(); - path = path.add(0); - editor.addNewChildAt(path, 0); - editor.success(); - - TestPutAttributeCodeSegment cs = new TestPutAttributeCodeSegment(); - DefaultTreeOperation treeOp = cs.getSampleOperation("message0"); - DefaultTreeOperationContainer treeOperationContainer = new DefaultTreeOperationContainer(); - try { - treeOperationContainer.unconvert(treeOp); - } catch (IOException e) { - e.printStackTrace(); - } - cs.ods.update("local", "log", treeOperationContainer); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/operation/TestPutAttributeCodeSegment.java --- a/src/jungle/test/codesegment/operation/TestPutAttributeCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -package jungle.test.codesegment.operation; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import jungle.app.bbs.JungleManager; - -import org.msgpack.type.Value; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.jungle.datasegment.store.container.DefaultTreeOperationContainer; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; -import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; - -public class TestPutAttributeCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public TestPutAttributeCodeSegment() { - arg1.setKey("log"); - } - - public void run() { - System.out.println("--TestPutAttributeCodeSegment--"); - DefaultTreeOperationContainer convertedOpContainer = arg1 - .asClass(DefaultTreeOperationContainer.class); - TreeOperation convertedOp = null; - try { - convertedOp = convertedOpContainer.convert(); - } catch (IOException e) { - e.printStackTrace(); - } - Jungle jungle = JungleManager.getJungle(); - JungleTree tree = jungle.getTreeByName("tree"); - JungleTreeEditor editor = tree.getTreeEditor(); - DefaultNodePath root = new DefaultNodePath(); - Either either = editor.addNewChildAt(root, 0); - if (either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - editor.success(); - NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) tree - .getTreeEditor(); - either = edit(nEditor, convertedOp); - if (either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - editor.success(); - if (arg1.index >= 10) { - new ShowAttribute(); - ods.update("local", "show", 1); - return; - } - TestPutAttributeCodeSegment cs = new TestPutAttributeCodeSegment(); - DefaultTreeOperation treeOp = cs.getSampleOperation("message"+ arg1.index); - DefaultTreeOperationContainer treeOperationContainer = new DefaultTreeOperationContainer(); - try { - treeOperationContainer.unconvert(treeOp); - } catch (IOException e) { - e.printStackTrace(); - } - ods.update("local", "log", treeOperationContainer); - } - - public DefaultTreeOperation getSampleOperation(String message) { - /* Create TreeOperation */ - String key = "key1"; - ByteBuffer b = ByteBuffer.wrap(message.getBytes()); - PutAttributeOperation op = new PutAttributeOperation(key, b); - DefaultNodePath p = new DefaultNodePath(); - p = p.add(0); - DefaultTreeOperation treeOp = new DefaultTreeOperation(p, op); - return treeOp; - } - - public Either edit(JungleTreeEditor editor, - TreeOperation op) { - NodePath path = op.getNodePath(); - NodeOperation nodeOp = op.getNodeOperation(); - Command c = nodeOp.getCommand(); - String str = ""; - String key = ""; - switch (c) { - case PUT_ATTRIBUTE: - key = nodeOp.getKey(); - ByteBuffer value = nodeOp.getValue(); - if (value.limit() < 100) { - str = String.format("key:%s,value:%s", key, - new String(value.array())); - } else { - str = String.format("key:%s,value:%d", key, value.limit()); - } - return editor.putAttribute(path, key, value); - case DELETE_ATTRIBUTE: - key = nodeOp.getKey(); - str = String.format("key:%s", nodeOp.getKey()); - return editor.deleteAttribute(path, key); - case APPEND_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - return editor.addNewChildAt(path, 0); - case DELETE_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - return editor.deleteChildAt(path, 0); - } - return null; - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/persistence/TestJungle.java --- a/src/jungle/test/codesegment/persistence/TestJungle.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -package jungle.test.codesegment.persistence; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; -import jungle.app.bbs.JungleManager; -import jungle.test.codesegment.operation.TestPutAttributeCodeSegment; - -public class TestJungle { - - public static void main(String[] args) { - JungleTree tree = JungleManager.createNewTree("tree1"); - JungleTreeEditor editor = tree.getTreeEditor(); - - new TestPutAttributeCodeSegment().execute(); - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/ClientCodeSegment.java --- a/src/jungle/test/codesegment/remote/ClientCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class ClientCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public void run() { - System.out.println("--ClientCodeSegment--"); - System.out.println("from : " + arg1.from); - System.out.println("index : "+ arg1.index); - int num = arg1.asInteger(); - System.out.println("num : "+num); - num++; - ods.put("remote", "num", num); - System.exit(0); - - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/ClientFirstSetKey.java --- a/src/jungle/test/codesegment/remote/ClientFirstSetKey.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.codesegment.CodeSegment; - -public class ClientFirstSetKey extends CodeSegment { - - public void run() { - System.out.println("--ClientFirstSetKey--"); - ClientCodeSegment cs = new ClientCodeSegment(); - cs.arg1.setKey("remote","num"); - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/HostCodeSegment.java --- a/src/jungle/test/codesegment/remote/HostCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class HostCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public void run() { - System.out.println("--HostCodeSegment--"); - System.out.println("index : "+ arg1.index); - System.out.println("from : "+ arg1.from); - int num = arg1.asInteger(); - System.out.println("num : "+ num); - num++; - ods.put("local", "num", num); - System.exit(0); -/* - HostCodeSegment cs = new HostCodeSegment(); - cs.arg1.setKey("local","num"); -*/ - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/HostFirstPut.java --- a/src/jungle/test/codesegment/remote/HostFirstPut.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.codesegment.CodeSegment; - -public class HostFirstPut extends CodeSegment { - - public void run() { - System.out.println("--HostFirstPut--"); - ods.put("local", "num", 0); - HostCodeSegment cs = new HostCodeSegment(); - cs.arg1.setKey("local", "num", 1); - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/StartClientCodeSegment.java --- a/src/jungle/test/codesegment/remote/StartClientCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.datasegment.DataSegment; -import alice.test.codesegment.remote.TestRemoteConfig; - -public class StartClientCodeSegment { - - static public void main(String[] args) { - System.out.println("--StartClientCodeSegment--"); - TestRemoteConfig conf = new TestRemoteConfig(args); - DataSegment.connect("remote", "", conf.hostname, conf.connectPort); - new ClientFirstSetKey().execute(); - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/codesegment/remote/StartHostCodeSegment.java --- a/src/jungle/test/codesegment/remote/StartHostCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -package jungle.test.codesegment.remote; - -import alice.daemon.AliceDaemon; -import alice.jungle.remote.RemoteConfig; - -public class StartHostCodeSegment { - - static public void main(String[] args) { - System.out.println("--StartHostCodeSegment--"); - RemoteConfig conf = new RemoteConfig(args); - new AliceDaemon(conf).listen(); - new HostFirstPut().execute(); - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/core/practice/LogReadCodeSegment.java --- a/src/jungle/test/core/practice/LogReadCodeSegment.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -package jungle.test.core.practice; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import jungle.app.bbs.JungleManager; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; - -public class LogReadCodeSegment extends CodeSegment { - - Receiver arg1 = ids.create(CommandType.TAKE); - - public LogReadCodeSegment() { - arg1.setKey("log"); - } - - public void run() { - System.out.println("--LogReadCodeSegment--"); - - DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class); - DefaultTreeOperationLog log = null; - try { - log = container.convert(); - } catch (IOException e) { - e.printStackTrace(); - } - Jungle jungle = JungleManager.getJungle(); - JungleTree tree = jungle.getTreeByName("tree"); - JungleTreeEditor editor = tree.getTreeEditor(); - Either either = edit(editor, log); - if (either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - editor.success(); - new PrintChildrenAttribute("key1"); - ods.update("key1", "key1"); - } - - private Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) { - JungleTreeEditor editor = _editor; - Either either = null; - for (TreeOperation op : _log) { - either = _edit(editor, op); - if(either.isA()) { - return either; - } - editor = either.b(); - } - return either; - } - - private Either _edit(JungleTreeEditor editor, - TreeOperation op) { - NodePath path = op.getNodePath(); - NodeOperation nodeOp = op.getNodeOperation(); - Command c = nodeOp.getCommand(); - String str = ""; - String key = ""; - switch (c) { - case PUT_ATTRIBUTE: - key = nodeOp.getKey(); - ByteBuffer value = nodeOp.getValue(); - if (value.limit() < 100) { - str = String.format("key:%s,value:%s", key, - new String(value.array())); - } else { - str = String.format("key:%s,value:%d", key, value.limit()); - } - return editor.putAttribute(path, key, value); - case DELETE_ATTRIBUTE: - key = nodeOp.getKey(); - str = String.format("key:%s", nodeOp.getKey()); - return editor.deleteAttribute(path, key); - case APPEND_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - return editor.addNewChildAt(path, 0); - case DELETE_CHILD: - str = String.format("pos:%d", nodeOp.getPosition()); - return editor.deleteChildAt(path, 0); - } - return null; - } -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/core/practice/LogSendTest.java --- a/src/jungle/test/core/practice/LogSendTest.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -package jungle.test.core.practice; - -import java.io.IOException; -import java.nio.ByteBuffer; - -import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; -import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; -import jungle.app.bbs.JungleManager; - -public class LogSendTest { - - public static void main(String[] args) { - System.out.println("Start LogSendTest"); - JungleTree tree = JungleManager.createNewTree("tree"); - JungleTreeEditor editor = tree.getTreeEditor(); - - DefaultNodePath root = new DefaultNodePath(); - Either either = editor.addNewChildAt(root, 0); - if(either.isA()) { - throw new IllegalStateException(); - } - editor = either.b(); - either = editor.putAttribute(root.add(0), "key1", ByteBuffer.wrap("first message".getBytes())); - if(either.isA()) { - throw new IllegalStateException(); - } - NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) either.b(); - TreeOperationLog log = nEditor.getTreeOperationLog(); - - DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer(); - try { - container.unconvert(log); - } catch (IOException e) { - e.printStackTrace(); - } - LogReadCodeSegment cs = new LogReadCodeSegment(); - cs.ods.update("log", container); - } - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/core/practice/PrintChildrenAttribute.java --- a/src/jungle/test/core/practice/PrintChildrenAttribute.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -package jungle.test.core.practice; - -import java.nio.ByteBuffer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; -import jungle.app.bbs.JungleManager; -import alice.codesegment.CodeSegment; -import alice.datasegment.CommandType; -import alice.datasegment.Receiver; - -public class PrintChildrenAttribute extends CodeSegment { - - Receiver key = ids.create(CommandType.TAKE); - - public PrintChildrenAttribute(String _key) { - key.setKey(_key); - } - - public void run() { - System.out.println("--PrintChildrenAttribute--"); - String k = key.asString(); - System.out.println("key : "+ k); - Jungle jungle = JungleManager.getJungle(); - JungleTree tree = jungle.getTreeByName("tree"); - Node node = tree.getRootNode(); - Children chs = node.getChildren(); - System.out.println("children size : "+chs.size()); - for(Node n : chs) { - ByteBuffer b = n.getAttributes().get(k); - System.out.println(new String(b.array())); - } - - System.exit(0); - - } - - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/functionalJava/ListTest.java --- a/src/jungle/test/functionalJava/ListTest.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -package jungle.test.functionalJava; - -import java.util.Iterator; -import java.util.concurrent.atomic.AtomicInteger; - -import fj.P2; -import fj.data.List; - -public class ListTest { - - public static void main(String[] args) { - List list = List.nil(); - list = list.cons(2); - list = list.cons(3); - list = list.cons(5); - list = list.snoc(1); - System.out.println("list :"+list); - System.out.println("list.reverse() :"+list.reverse()); - System.out.println("list.index(0) :"+list.index(0)); - System.out.println("list.head() :"+ list.head()); - System.out.println("list.tail() :"+list.tail()); - System.out.println("list.splitAt(2)"); - P2, List> p2 = list.splitAt(2); - List list1 = p2._1(); - List list2 = p2._2(); - System.out.println(list1); - System.out.println(list2); - - final int INSERT_NUM = 4; - list = insertInteger(list, INSERT_NUM); - System.out.println("newList :"+ list); - - - - } - - public static List insertInteger(List list, final int insertNum) { - int count = 0; - for(Iterator iter = list.iterator(); iter.hasNext();){ - int num = iter.next(); - if(insertNum > num ) { - break; - } - count++; - } - P2, List> p2 = list.splitAt(count); - List newList = List.nil(); - newList = p2._2().cons(insertNum); - newList = p2._1().append(newList); - return newList; - } - - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/jungle/test/operations/messagepack/PackOperationLog.java --- a/src/jungle/test/operations/messagepack/PackOperationLog.java Wed Oct 16 19:57:18 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -package jungle.test.operations.messagepack; - -import java.io.IOException; -import java.util.Iterator; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; - -import org.msgpack.MessagePack; -import org.msgpack.type.Value; - -import alice.jungle.operations.NetworkAppendChildAtOperation; -import alice.jungle.operations.NetworkNodePath; -import alice.jungle.operations.NetworkTreeOperationLog; - -public class PackOperationLog { - - public static void main(String[] args) throws IOException { - MessagePack msgpack = new MessagePack(); - final NetworkTreeOperationLog n = new NetworkTreeOperationLog(); - NetworkNodePath p = new NetworkNodePath(); - p = p.add(1).add(2).add(3); - System.out.println(p.toString()); - NetworkTreeOperationLog n2 = n.add(p, new NetworkAppendChildAtOperation(1)); - System.out.println("n.length() = "+n.length()); - - Value v = msgpack.unconvert(n2); - final NetworkTreeOperationLog log = msgpack.convert(v, NetworkTreeOperationLog.class); - - System.out.println("nn.lenght() = " + log.length()); - ChangeList list = new ChangeList(){ - @Override - public Iterator iterator(){ - return log.iterator(); - } - }; - for (TreeOperation op : list) { - NodePath nPath = op.getNodePath(); - NodeOperation nodeOp = op.getNodeOperation(); - Command c = nodeOp.getCommand(); - System.out.println("Command : "+ c.toString()); - System.out.println(nPath.toString()); - } - } - - - - -} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/local/HasFieldCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/local/HasFieldCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,23 @@ +package test.java.alice.codesegment.local; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class HasFieldCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + String str; + + public HasFieldCodeSegment(String s) { + str = s; + } + + + public void run() { + int count = arg1.asInteger(); + System.out.println("-HasFieldCodeSegment- : "+str); + System.exit(0); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/local/StartLocalCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/local/StartLocalCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,11 @@ +package test.java.alice.codesegment.local; + +public class StartLocalCodeSegment { + + public static void main(String[] arg) { + HasFieldCodeSegment cs = new HasFieldCodeSegment("test"); + cs.arg1.setKey("count"); + cs.ods.update("count", 0); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/ClientCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/ClientCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,23 @@ +package test.java.alice.codesegment.remote; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class ClientCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public void run() { + System.out.println("--ClientCodeSegment--"); + System.out.println("from : " + arg1.from); + System.out.println("index : "+ arg1.index); + int num = arg1.asInteger(); + System.out.println("num : "+num); + num++; + ods.put("remote", "num", num); + System.exit(0); + + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/ClientFirstSetKey.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/ClientFirstSetKey.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,12 @@ +package test.java.alice.codesegment.remote; + +import alice.codesegment.CodeSegment; + +public class ClientFirstSetKey extends CodeSegment { + + public void run() { + System.out.println("--ClientFirstSetKey--"); + ClientCodeSegment cs = new ClientCodeSegment(); + cs.arg1.setKey("remote","num"); + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/HostCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/HostCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,25 @@ +package test.java.alice.codesegment.remote; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class HostCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public void run() { + System.out.println("--HostCodeSegment--"); + System.out.println("index : "+ arg1.index); + System.out.println("from : "+ arg1.from); + int num = arg1.asInteger(); + System.out.println("num : "+ num); + num++; + ods.put("local", "num", num); + System.exit(0); +/* + HostCodeSegment cs = new HostCodeSegment(); + cs.arg1.setKey("local","num"); +*/ + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/HostFirstPut.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/HostFirstPut.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,13 @@ +package test.java.alice.codesegment.remote; + +import alice.codesegment.CodeSegment; + +public class HostFirstPut extends CodeSegment { + + public void run() { + System.out.println("--HostFirstPut--"); + ods.put("local", "num", 0); + HostCodeSegment cs = new HostCodeSegment(); + cs.arg1.setKey("local", "num", 1); + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/StartClientCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/StartClientCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,14 @@ +package test.java.alice.codesegment.remote; + +import alice.datasegment.DataSegment; +import alice.test.codesegment.remote.TestRemoteConfig; + +public class StartClientCodeSegment { + + static public void main(String[] args) { + System.out.println("--StartClientCodeSegment--"); + TestRemoteConfig conf = new TestRemoteConfig(args); + DataSegment.connect("remote", "", conf.hostname, conf.connectPort); + new ClientFirstSetKey().execute(); + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/codesegment/remote/StartHostCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/codesegment/remote/StartHostCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,14 @@ +package test.java.alice.codesegment.remote; + +import alice.daemon.AliceDaemon; +import alice.jungle.remote.RemoteConfig; + +public class StartHostCodeSegment { + + static public void main(String[] args) { + System.out.println("--StartHostCodeSegment--"); + RemoteConfig conf = new RemoteConfig(args); + new AliceDaemon(conf).listen(); + new HostFirstPut().execute(); + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/CheckDoubleTreeAttr.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/CheckDoubleTreeAttr.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,58 @@ +package test.java.alice.jungle; + +import java.nio.ByteBuffer; +import java.util.Iterator; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class CheckDoubleTreeAttr extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public CheckDoubleTreeAttr() { + arg1.setKey("count"); + } + + public void run() { + int count = arg1.asInteger(); + + DoubleJungleManager djm = new DoubleJungleManager(); + Jungle jungle1 = djm.getJungle1(); + Jungle jungle2 = djm.getJungle2(); + JungleTree tree1 = jungle1.getTreeByName("tree"); + JungleTree tree2 = jungle2.getTreeByName("tree"); + + Node node1 = tree1.getRootNode(); + Node node2 = tree2.getRootNode(); + Children chs1 = node1.getChildren(); + Children chs2 = node2.getChildren(); + + Iterator iter1 = chs1.iterator(); + Iterator iter2 = chs2.iterator(); + + for(; iter1.hasNext() && iter2.hasNext();) { + Node n1 = iter1.next(); + Node n2 = iter2.next(); + ByteBuffer b1 = n1.getAttributes().get("key"); + ByteBuffer b2 = n2.getAttributes().get("key"); + String str1 = new String(b1.array()); + String str2 = new String(b2.array()); + if(!str1.equals(str2)) { + System.out.println("Failed "); + System.out.println("str1 "+ str1); + System.out.println("str2 "+ str2); + System.exit(0); + } else { + System.out.println("success: " + str1); + } + } + + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/CopyAttrJungle2.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/CopyAttrJungle2.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,56 @@ +package test.java.alice.jungle; + +import java.io.IOException; + +import test.java.alice.jungle.log.example.PrintChildrenAttribute; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jungle.app.bbs.JungleManager; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; + +public class CopyAttrJungle2 extends CodeSegment { + + Receiver logReceiver = ids.create(CommandType.TAKE); + Receiver countReceiver = ids.create(CommandType.TAKE); + + public CopyAttrJungle2() { + logReceiver.setKey("log"); + countReceiver.setKey("count2"); + } + + public void run() { + System.out.println("CopyAttrJungle2"); + int count = countReceiver.asInteger(); + DefaultTreeOperationLogContainer container = logReceiver.asClass(DefaultTreeOperationLogContainer.class); + DefaultTreeOperationLog log = null; + try { + log = container.convert(); + } catch (IOException e) { + e.printStackTrace(); + System.exit(0); + } + String treeName = container.getTreeName(); + DoubleJungleManager djm = new DoubleJungleManager(); + Jungle jungle2 = djm.getJungle2(); + JungleTree tree = jungle2.getTreeByName(treeName); + + JungleTreeEditor editor = tree.getTreeEditor(); + Either either = djm.edit(editor, log); + if (either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + editor.success(); + new CheckDoubleTreeAttr(); + ods.update("count", count); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/DoubleJungleManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/DoubleJungleManager.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,74 @@ +package test.java.alice.jungle; + +import java.nio.ByteBuffer; + +import alice.jungle.core.NetworkDefaultJungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; + +public class DoubleJungleManager { + + static Jungle jungle1 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()), ""); + static Jungle jungle2 = new NetworkDefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()), ""); + + + public DoubleJungleManager() { + + } + + public Jungle getJungle1() { + return jungle1; + } + + public Jungle getJungle2() { + return jungle2; + } + + + public Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) { + JungleTreeEditor editor = _editor; + Either either = null; + for (TreeOperation op : _log) { + either = _edit(editor, op); + if(either.isA()) { + return either; + } + editor = either.b(); + } + return either; + } + + private Either _edit(JungleTreeEditor editor, + TreeOperation op) { + NodePath path = op.getNodePath(); + NodeOperation nodeOp = op.getNodeOperation(); + Command c = nodeOp.getCommand(); + String key = ""; + switch (c) { + case PUT_ATTRIBUTE: + key = nodeOp.getKey(); + ByteBuffer value = nodeOp.getValue(); + return editor.putAttribute(path, key, value); + case DELETE_ATTRIBUTE: + key = nodeOp.getKey(); + return editor.deleteAttribute(path, key); + case APPEND_CHILD: + return editor.addNewChildAt(path, 0); + case DELETE_CHILD: + return editor.deleteChildAt(path, 0); + } + return null; + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/HashSetConvertTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/HashSetConvertTest.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,41 @@ +package test.java.alice.jungle; + +import java.util.HashSet; + +import org.msgpack.annotation.Message; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class HashSetConvertTest extends CodeSegment { + + Receiver hash = ids.create(CommandType.TAKE); + + public HashSetConvertTest() { + hash.setKey("hash"); + } + + public static void main(String[] args) { + HashSetDataSegment h = new HashSetDataSegment(); + h.hash.add("test1"); + h.hash.add("test2"); + + HashSetConvertTest cs = new HashSetConvertTest(); + cs.ods.put("hash", h); + } + + public void run() { + HashSetDataSegment h = hash.asClass(HashSetDataSegment.class); + for(String s : h.hash ) { + System.out.println("s : "+s); + } + System.exit(0); + } + + @Message + private static class HashSetDataSegment { + public HashSet hash = new HashSet(); + public HashSetDataSegment() {} + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/LocalDoubleJungleTree.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/LocalDoubleJungleTree.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,20 @@ +package test.java.alice.jungle; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; + +public class LocalDoubleJungleTree { + + public static void main(String[] args) { + System.out.println("LocalDoubleJungleTree"); + DoubleJungleManager djm = new DoubleJungleManager(); + Jungle jungle1 = djm.getJungle1(); + Jungle jungle2 = djm.getJungle2(); + jungle1.createNewTree("tree"); + jungle2.createNewTree("tree"); + + PutAttrJungle1 cs = new PutAttrJungle1(); + cs.ods.update("count1", 0); + + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/PutAttrJungle1.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/PutAttrJungle1.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,47 @@ +package test.java.alice.jungle; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class PutAttrJungle1 extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public PutAttrJungle1() { + arg1.setKey("count1"); + } + + public void run() { + System.out.println("PutAttrJungle1"); + int count = arg1.asInteger(); + Jungle jungle1 = new DoubleJungleManager().getJungle1(); + JungleTree tree = jungle1.getTreeByName("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + DefaultNodePath root = new DefaultNodePath(); + Either either = editor.addNewChildAt(root, 0); + if(either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + either = editor.putAttribute(root.add(0), "key", ByteBuffer.wrap("message".getBytes())); + if(either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + editor.success(); + + new CopyAttrJungle2(); + ods.update("count2", count); + + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/ListTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/ListTest.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,54 @@ +package test.java.alice.jungle.log.example; + +import java.util.Iterator; +import java.util.concurrent.atomic.AtomicInteger; + +import fj.P2; +import fj.data.List; + +public class ListTest { + + public static void main(String[] args) { + List list = List.nil(); + list = list.cons(2); + list = list.cons(3); + list = list.cons(5); + list = list.snoc(1); + System.out.println("list :"+list); + System.out.println("list.reverse() :"+list.reverse()); + System.out.println("list.index(0) :"+list.index(0)); + System.out.println("list.head() :"+ list.head()); + System.out.println("list.tail() :"+list.tail()); + System.out.println("list.splitAt(2)"); + P2, List> p2 = list.splitAt(2); + List list1 = p2._1(); + List list2 = p2._2(); + System.out.println(list1); + System.out.println(list2); + + final int INSERT_NUM = 4; + list = insertInteger(list, INSERT_NUM); + System.out.println("newList :"+ list); + + + + } + + public static List insertInteger(List list, final int insertNum) { + int count = 0; + for(Iterator iter = list.iterator(); iter.hasNext();){ + int num = iter.next(); + if(insertNum > num ) { + break; + } + count++; + } + P2, List> p2 = list.splitAt(count); + List newList = List.nil(); + newList = p2._2().cons(insertNum); + newList = p2._1().append(newList); + return newList; + } + + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/LogReadCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/LogReadCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,98 @@ +package test.java.alice.jungle.log.example; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jungle.app.bbs.JungleManager; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; + +public class LogReadCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public LogReadCodeSegment() { + arg1.setKey("log"); + } + + public void run() { + System.out.println("--LogReadCodeSegment--"); + + DefaultTreeOperationLogContainer container = arg1.asClass(DefaultTreeOperationLogContainer.class); + DefaultTreeOperationLog log = null; + try { + log = container.convert(); + } catch (IOException e) { + e.printStackTrace(); + } + Jungle jungle = JungleManager.getJungle(); + JungleTree tree = jungle.getTreeByName("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + Either either = edit(editor, log); + if (either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + editor.success(); + new PrintChildrenAttribute("key1"); + ods.update("key1", "key1"); + } + + private Either edit(JungleTreeEditor _editor ,TreeOperationLog _log) { + JungleTreeEditor editor = _editor; + Either either = null; + for (TreeOperation op : _log) { + either = _edit(editor, op); + if(either.isA()) { + return either; + } + editor = either.b(); + } + return either; + } + + private Either _edit(JungleTreeEditor editor, + TreeOperation op) { + NodePath path = op.getNodePath(); + NodeOperation nodeOp = op.getNodeOperation(); + Command c = nodeOp.getCommand(); + String str = ""; + String key = ""; + switch (c) { + case PUT_ATTRIBUTE: + key = nodeOp.getKey(); + ByteBuffer value = nodeOp.getValue(); + if (value.limit() < 100) { + str = String.format("key:%s,value:%s", key, + new String(value.array())); + } else { + str = String.format("key:%s,value:%d", key, value.limit()); + } + return editor.putAttribute(path, key, value); + case DELETE_ATTRIBUTE: + key = nodeOp.getKey(); + str = String.format("key:%s", nodeOp.getKey()); + return editor.deleteAttribute(path, key); + case APPEND_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + return editor.addNewChildAt(path, 0); + case DELETE_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + return editor.deleteChildAt(path, 0); + } + return null; + } +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/LogSendTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/LogSendTest.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,47 @@ +package test.java.alice.jungle.log.example; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; +import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jungle.app.bbs.JungleManager; + +public class LogSendTest { + + public static void main(String[] args) { + System.out.println("Start LogSendTest"); + JungleTree tree = JungleManager.createNewTree("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + + DefaultNodePath root = new DefaultNodePath(); + Either either = editor.addNewChildAt(root, 0); + if(either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + either = editor.putAttribute(root.add(0), "key1", ByteBuffer.wrap("first message".getBytes())); + if(either.isA()) { + throw new IllegalStateException(); + } + NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) either.b(); + TreeOperationLog log = nEditor.getTreeOperationLog(); + + DefaultTreeOperationLogContainer container = new DefaultTreeOperationLogContainer(); + try { + container.unconvert(log); + } catch (IOException e) { + e.printStackTrace(); + } + LogReadCodeSegment cs = new LogReadCodeSegment(); + cs.ods.update("log", container); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/PrintChildrenAttribute.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/PrintChildrenAttribute.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,41 @@ +package test.java.alice.jungle.log.example; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; +import jungle.app.bbs.JungleManager; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class PrintChildrenAttribute extends CodeSegment { + + Receiver key = ids.create(CommandType.TAKE); + + public PrintChildrenAttribute(String _key) { + key.setKey(_key); + } + + public void run() { + System.out.println("--PrintChildrenAttribute--"); + String k = key.asString(); + System.out.println("key : "+ k); + Jungle jungle = JungleManager.getJungle(); + JungleTree tree = jungle.getTreeByName("tree"); + Node node = tree.getRootNode(); + Children chs = node.getChildren(); + System.out.println("children size : "+chs.size()); + for(Node n : chs) { + ByteBuffer b = n.getAttributes().get(k); + System.out.println(new String(b.array())); + } + + System.exit(0); + + } + + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/StartCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/StartCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,60 @@ +package test.java.alice.jungle.log.example; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.util.LinkedList; +import java.util.List; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.AppendChildAtOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DeleteChildAtOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; +import alice.codesegment.CodeSegment; +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; + +public class StartCodeSegment extends CodeSegment { + + @Override + public void run() { + System.out.println("run StartCodeSegment"); + + TestCodeSegment cs = new TestCodeSegment(); + cs.arg1.setKey("log"); + System.out.println("create TestCodeSegment"); + + DefaultTreeOperationLog log = getSampleOperationLog(); + DefaultTreeOperationLogContainer logContainer = new DefaultTreeOperationLogContainer(); + try { + logContainer.unconvert(log); + ods.update("local", "log", logContainer); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public DefaultTreeOperationLog getSampleOperationLog() { + String key = "hoge"; + ByteBuffer b = ByteBuffer.wrap("messagepack value".getBytes()); + DefaultNodePath nodePath1 = new DefaultNodePath(); + nodePath1 = nodePath1.add(1); + DefaultNodePath nodePath2 = nodePath1.add(2); + AppendChildAtOperation appendChildOp1 = new AppendChildAtOperation(1); + AppendChildAtOperation appendChildOp2 = new AppendChildAtOperation(2); + PutAttributeOperation putOp = new PutAttributeOperation(key, b); + DeleteAttributeOperation deleteOp = new DeleteAttributeOperation("hoge"); + DeleteChildAtOperation deleteChild = new DeleteChildAtOperation(2); + List list = new LinkedList(); + list.add(new DefaultTreeOperation(new DefaultNodePath(), appendChildOp1)); + list.add(new DefaultTreeOperation(nodePath1, appendChildOp2)); + list.add(new DefaultTreeOperation(nodePath2, putOp)); + list.add(new DefaultTreeOperation(nodePath2, deleteOp)); + list.add(new DefaultTreeOperation(nodePath1, deleteChild)); + DefaultTreeOperationLog log = new DefaultTreeOperationLog(list, list.size()); + return log; + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/TestCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/TestCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,109 @@ +package test.java.alice.jungle.log.example; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +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.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.DefaultTreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.jungle.core.NetworkDefaultJungle; +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; +import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; +import alice.test.topology.aquarium.FishPoint; + +import org.msgpack.MessagePack; +import org.msgpack.type.Value; + +public class TestCodeSegment extends CodeSegment { + + static Jungle jungle = new NetworkDefaultJungle(null,"hoge",new DefaultTreeEditor(new DefaultTraverser()), "serverName"); + + // create input datasegment arg1 + Receiver arg1 = ids.create(CommandType.PEEK); + + public TestCodeSegment() { + arg1.setKey("log"); + jungle.createNewTree("tree"); + } + + @Override + public void run() { + System.out.println("type = " + arg1.type); + System.out.println("index = " + arg1.index); + System.out.println("data = " + arg1.getVal()); + System.out.println(((Value)arg1.getVal()).getType()); + + DefaultTreeOperationLogContainer convertedLogContainer = arg1.asClass(DefaultTreeOperationLogContainer.class); + TreeOperationLog convertedLog = null; + try { + convertedLog = convertedLogContainer.convert(); + } catch (IOException e) { + e.printStackTrace(); + } + printLog(convertedLog); + + JungleTree tree = jungle.getTreeByName("tree"); + NetworkDefaultJungleTreeEditor editor = (NetworkDefaultJungleTreeEditor) tree.getTreeEditor(); +/* + JungleTreeEditor tEditor = editor.setNewLogAndGetEditor(convertedLog); + + Either either = tEditor.success(); + if (either.isA()) { + throw new IllegalStateException(); + } +*/ + System.exit(0); + } + + public void printLog(TreeOperationLog log) { + for (TreeOperation treeOp : log) { + NodePath path = treeOp.getNodePath(); + NodeOperation nodeOp = treeOp.getNodeOperation(); + Command c = nodeOp.getCommand(); + String str = ""; + switch (c) { + case PUT_ATTRIBUTE: + String k = nodeOp.getKey(); + ByteBuffer value = nodeOp.getValue(); + if (value.limit() < 100) { + str = String.format("key:%s,value:%s", k, + new String(value.array())); + } else { + str = String.format("key:%s,value:%d", k, value.limit()); + } + break; + case DELETE_ATTRIBUTE: + str = String.format("key:%s", nodeOp.getKey()); + break; + case APPEND_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + break; + case DELETE_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + break; + } + System.out.println(String.format("[%s:%s]", c, str)); + System.out.println("path:"); + for (int i: path ) { + System.out.println(i); + } + } + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/TestLocalAlice.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/TestLocalAlice.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,12 @@ +package test.java.alice.jungle.log.example; + +import alice.daemon.AliceDaemon; +import alice.daemon.Config; + +public class TestLocalAlice { + public static void main(String args[]) { + new AliceDaemon(new Config(args)).listen(); // logger off + new StartCodeSegment().execute(); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/codesement/operation/ShowAttribute.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/codesement/operation/ShowAttribute.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,44 @@ +package test.java.alice.jungle.log.example.codesement.operation; + +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Children; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.Node; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jungle.app.bbs.JungleManager; +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; + +public class ShowAttribute extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public ShowAttribute() { + arg1.setKey("show"); + } + + public void run() { + System.out.println("--ShowAttribute--"); + + Jungle jungle = JungleManager.getJungle(); + JungleTree tree = jungle.getTreeByName("tree"); + Node node = tree.getRootNode(); + Children chs = node.getChildren(); + System.out.println("children size : "+chs.size()); + for(Node n : chs) { + ByteBuffer b = n.getAttributes().get("key1"); + System.out.println(new String(b.array())); + } + + System.exit(0); + + + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/codesement/operation/StartJungleCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/codesement/operation/StartJungleCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,38 @@ +package test.java.alice.jungle.log.example.codesement.operation; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; +import jungle.app.bbs.JungleManager; +import alice.codesegment.CodeSegment; +import alice.jungle.datasegment.store.container.DefaultTreeOperationContainer; + +public class StartJungleCodeSegment { + + public static void main(String[] args) { + System.out.println("--StartJungleCodeSegment--"); + + JungleTree tree = JungleManager.createNewTree("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + DefaultNodePath path = new DefaultNodePath(); + path = path.add(0); + editor.addNewChildAt(path, 0); + editor.success(); + + TestPutAttributeCodeSegment cs = new TestPutAttributeCodeSegment(); + DefaultTreeOperation treeOp = cs.getSampleOperation("message0"); + DefaultTreeOperationContainer treeOperationContainer = new DefaultTreeOperationContainer(); + try { + treeOperationContainer.unconvert(treeOp); + } catch (IOException e) { + e.printStackTrace(); + } + cs.ods.update("local", "log", treeOperationContainer); + } + +} diff -r b9dd8ec0e66e -r 60d28fedcbf2 src/test/java/alice/jungle/log/example/codesement/operation/TestPutAttributeCodeSegment.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/test/java/alice/jungle/log/example/codesement/operation/TestPutAttributeCodeSegment.java Wed Oct 16 20:53:44 2013 +0900 @@ -0,0 +1,125 @@ +package test.java.alice.jungle.log.example.codesement.operation; + +import java.io.IOException; +import java.nio.ByteBuffer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.Command; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.TreeEditor; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.logger.TreeOperationLog; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.DefaultTreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.NodeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.PutAttributeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.operations.TreeOperation; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; +import jungle.app.bbs.JungleManager; + +import org.msgpack.type.Value; + +import alice.codesegment.CodeSegment; +import alice.datasegment.CommandType; +import alice.datasegment.Receiver; +import alice.jungle.datasegment.store.container.DefaultTreeOperationContainer; +import alice.jungle.datasegment.store.container.DefaultTreeOperationLogContainer; +import alice.jungle.transaction.NetworkDefaultJungleTreeEditor; + +public class TestPutAttributeCodeSegment extends CodeSegment { + + Receiver arg1 = ids.create(CommandType.TAKE); + + public TestPutAttributeCodeSegment() { + arg1.setKey("log"); + } + + public void run() { + System.out.println("--TestPutAttributeCodeSegment--"); + DefaultTreeOperationContainer convertedOpContainer = arg1 + .asClass(DefaultTreeOperationContainer.class); + TreeOperation convertedOp = null; + try { + convertedOp = convertedOpContainer.convert(); + } catch (IOException e) { + e.printStackTrace(); + } + Jungle jungle = JungleManager.getJungle(); + JungleTree tree = jungle.getTreeByName("tree"); + JungleTreeEditor editor = tree.getTreeEditor(); + DefaultNodePath root = new DefaultNodePath(); + Either either = editor.addNewChildAt(root, 0); + if (either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + editor.success(); + NetworkDefaultJungleTreeEditor nEditor = (NetworkDefaultJungleTreeEditor) tree + .getTreeEditor(); + either = edit(nEditor, convertedOp); + if (either.isA()) { + throw new IllegalStateException(); + } + editor = either.b(); + editor.success(); + if (arg1.index >= 10) { + new ShowAttribute(); + ods.update("local", "show", 1); + return; + } + TestPutAttributeCodeSegment cs = new TestPutAttributeCodeSegment(); + DefaultTreeOperation treeOp = cs.getSampleOperation("message"+ arg1.index); + DefaultTreeOperationContainer treeOperationContainer = new DefaultTreeOperationContainer(); + try { + treeOperationContainer.unconvert(treeOp); + } catch (IOException e) { + e.printStackTrace(); + } + ods.update("local", "log", treeOperationContainer); + } + + public DefaultTreeOperation getSampleOperation(String message) { + /* Create TreeOperation */ + String key = "key1"; + ByteBuffer b = ByteBuffer.wrap(message.getBytes()); + PutAttributeOperation op = new PutAttributeOperation(key, b); + DefaultNodePath p = new DefaultNodePath(); + p = p.add(0); + DefaultTreeOperation treeOp = new DefaultTreeOperation(p, op); + return treeOp; + } + + public Either edit(JungleTreeEditor editor, + TreeOperation op) { + NodePath path = op.getNodePath(); + NodeOperation nodeOp = op.getNodeOperation(); + Command c = nodeOp.getCommand(); + String str = ""; + String key = ""; + switch (c) { + case PUT_ATTRIBUTE: + key = nodeOp.getKey(); + ByteBuffer value = nodeOp.getValue(); + if (value.limit() < 100) { + str = String.format("key:%s,value:%s", key, + new String(value.array())); + } else { + str = String.format("key:%s,value:%d", key, value.limit()); + } + return editor.putAttribute(path, key, value); + case DELETE_ATTRIBUTE: + key = nodeOp.getKey(); + str = String.format("key:%s", nodeOp.getKey()); + return editor.deleteAttribute(path, key); + case APPEND_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + return editor.addNewChildAt(path, 0); + case DELETE_CHILD: + str = String.format("pos:%d", nodeOp.getPosition()); + return editor.deleteChildAt(path, 0); + } + return null; + } +}