# HG changeset patch # User one # Date 1373850814 -32400 # Node ID 4851344e120e4b7f858add69fe0a826bd5437288 # Parent 1bfd13f831eaeffd34a4e083cda6800ff16dedc2 fix bug LogUpdateCodeSegment and ChildLogCheckCodeSegment diff -r 1bfd13f831ea -r 4851344e120e src/alice/jungle/codesegment/HashLogUpdateCodeSegment.java --- a/src/alice/jungle/codesegment/HashLogUpdateCodeSegment.java Sun Jul 14 21:46:40 2013 +0900 +++ b/src/alice/jungle/codesegment/HashLogUpdateCodeSegment.java Mon Jul 15 10:13:34 2013 +0900 @@ -22,5 +22,4 @@ ds.hash.add(str); ods.put("hashLog", ds); } - } diff -r 1bfd13f831ea -r 4851344e120e src/alice/jungle/codesegment/LogUpdateCodeSegment.java --- a/src/alice/jungle/codesegment/LogUpdateCodeSegment.java Sun Jul 14 21:46:40 2013 +0900 +++ b/src/alice/jungle/codesegment/LogUpdateCodeSegment.java Mon Jul 15 10:13:34 2013 +0900 @@ -34,7 +34,7 @@ public LogUpdateCodeSegment(int index) { parentLog.setKey("parent", "log", index); host.setKey("host"); - hashLog.setKey("hashLog"); + hashLog.setKey("hashLog"); } public void run() { @@ -64,10 +64,10 @@ JungleTreeEditor editor = tree.getTreeEditor(); Either e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp()); Either either; - if(e.isB()) { + if(e.isA()) { either = JungleManager.edit(editor, log, container.getPosition()); } else { - either = JungleManager.edit(editor, log); + either = JungleManager.edit(editor, log, e.b()); } if(either.isA()) { throw new IllegalStateException(); @@ -79,7 +79,6 @@ } ds.hash.add(container.getHashLogString()); ods.update("hashLog", ds); - System.out.println("ods.put log container"); ods.put("log", container); new LogUpdateCodeSegment(index); } @@ -103,7 +102,4 @@ } return DefaultEither.newB(count); } - - - } diff -r 1bfd13f831ea -r 4851344e120e src/alice/jungle/core/NetworkDefaultJungle.java --- a/src/alice/jungle/core/NetworkDefaultJungle.java Sun Jul 14 21:46:40 2013 +0900 +++ b/src/alice/jungle/core/NetworkDefaultJungle.java Mon Jul 15 10:13:34 2013 +0900 @@ -3,6 +3,7 @@ import java.util.Iterator; import java.util.concurrent.ConcurrentHashMap; +import alice.jungle.persistence.AliceJournal; import alice.jungle.transaction.NetworkDefaultJungleTree; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle; @@ -15,7 +16,6 @@ import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultChangeSet; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeContext; import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; -import jungle.test.codesegment.persistence.AliceJournal; import fj.data.List; public class NetworkDefaultJungle implements Jungle { diff -r 1bfd13f831ea -r 4851344e120e src/alice/jungle/persistence/AliceJournal.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/alice/jungle/persistence/AliceJournal.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,83 @@ +package alice.jungle.persistence; + +import java.nio.ByteBuffer; + +import alice.jungle.datasegment.store.operations.DefaultNodeOperationContainer; +import alice.jungle.datasegment.store.operations.DefaultTreeOperationContainer; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; +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; + +public class AliceJournal implements Journal { + + private static final AliceChangeListWriter ALICE_WRITER = new AliceChangeListWriter(); + private static final AliceChangeListReader ALICE_READER = new AliceChangeListReader(); + @Override + public ChangeListReader getReader() { + return ALICE_READER; + } + @Override + public ChangeListWriter getWriter() { + return ALICE_WRITER; + } + + private static class AliceChangeListWriter implements ChangeListWriter + { + @Override + public Result write(ChangeList _operations) + { + for(TreeOperation op : _operations){ + NodePath p = op.getNodePath(); + NodeOperation nodeOp = op.getNodeOperation(); + Command c = nodeOp.getCommand(); + String args = ""; + switch(c){ + case PUT_ATTRIBUTE: + String key = nodeOp.getKey(); + ByteBuffer value = nodeOp.getValue(); + if(value.limit() < 100){ + args = String.format("key:%s,value:%s",key,new String(value.array())); + }else{ + args = String.format("key:%s,value:%d",key,value.limit()); + } + break; + case DELETE_ATTRIBUTE: + args = String.format("key:%s",nodeOp.getKey()); + break; + case APPEND_CHILD: + args = String.format("pos:%d",nodeOp.getPosition()); + break; + case DELETE_CHILD: + args = String.format("pos:%d",nodeOp.getPosition()); + break; + } + System.out.println(String.format("[%s:%s:%s]",c,p,args)); + } + return Result.SUCCESS; + } + } + + private static class AliceChangeListReader implements ChangeListReader + { + @Override + public ChangeListReader newReader() + { + return this; + } + + @Override + public ChangeList read() + { + return null; + } + } + + +} diff -r 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/CheckDoubleTreeAttr.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/CheckDoubleTreeAttr.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,58 @@ +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 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/CopyAttrJungle2.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/CopyAttrJungle2.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,55 @@ +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.test.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.operations.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 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/DoubleJungleManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/DoubleJungleManager.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,74 @@ +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 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/HashSetConvertTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/HashSetConvertTest.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,41 @@ +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 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/LocalDoubleJungleTree.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/LocalDoubleJungleTree.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,20 @@ +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 1bfd13f831ea -r 4851344e120e src/jungle/test/alice/PutAttrJungle1.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/jungle/test/alice/PutAttrJungle1.java Mon Jul 15 10:13:34 2013 +0900 @@ -0,0 +1,47 @@ +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 1bfd13f831ea -r 4851344e120e src/jungle/test/bbs/NetworkJungleBulletinBoard.java --- a/src/jungle/test/bbs/NetworkJungleBulletinBoard.java Sun Jul 14 21:46:40 2013 +0900 +++ b/src/jungle/test/bbs/NetworkJungleBulletinBoard.java Mon Jul 15 10:13:34 2013 +0900 @@ -242,7 +242,6 @@ container.unconvert(_log); container.setTimeStamp(timestamp); HashLogUpdateCodeSegment cs = new HashLogUpdateCodeSegment(); - container.getHashLogString(); cs.ods.put("log", container); cs.ods.put("logString", container.getHashLogString()); System.out.println("putDataSegment : "+container.getHashLogString()); diff -r 1bfd13f831ea -r 4851344e120e src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java --- a/src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java Sun Jul 14 21:46:40 2013 +0900 +++ b/src/jungle/test/bbs/codesegment/ChildLogCheckCodeSegment.java Mon Jul 15 10:13:34 2013 +0900 @@ -32,9 +32,18 @@ childLog.setKey("local","childLog"); hashLog.setKey("hashLog"); } + + public ChildLogCheckCodeSegment(int index) { + host.setKey("host"); + childLog.setKey("local","childLog", index); + hashLog.setKey("hashLog"); + } + public void run() { System.out.println("--ChildLogCheckCodeSegment--"); + int index = childLog.index; + HashSetDataSegment ds = hashLog.asClass(HashSetDataSegment.class); String hostName = host.asString(); DefaultTreeOperationLogContainer container = childLog.asClass(DefaultTreeOperationLogContainer.class); DefaultTreeOperationLog log = null; @@ -53,12 +62,11 @@ JungleTreeEditor editor = tree.getTreeEditor(); Either e = checkTimeStamp(tree.getRootNode(), container.getTimeStamp()); Either either; - if(e.isB()) { + if(e.isA()) { either = JungleManager.edit(editor, log, container.getPosition()); } else { - either = JungleManager.edit(editor, log); + either = JungleManager.edit(editor, log, e.b()); } -// Either either = JungleManager.edit(editor, log); if(either.isA()) { throw new IllegalStateException(); } @@ -67,11 +75,10 @@ if(either.isA()) { throw new IllegalStateException(); } - HashSetDataSegment ds = hashLog.asClass(HashSetDataSegment.class); ds.hash.add(container.getHashLogString()); ods.update("hashLog", ds); ods.put("log", container); - new ChildLogCheckCodeSegment(); + new ChildLogCheckCodeSegment(index); if(!hostName.equals("node0")) { ods.put("parent", "childLog", container); } diff -r 1bfd13f831ea -r 4851344e120e src/jungle/test/codesegment/persistence/AliceJournal.java --- a/src/jungle/test/codesegment/persistence/AliceJournal.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -package jungle.test.codesegment.persistence; - -import java.nio.ByteBuffer; - -import alice.jungle.datasegment.store.operations.DefaultNodeOperationContainer; -import alice.jungle.datasegment.store.operations.DefaultTreeOperationContainer; - -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeList; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListReader; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.ChangeListWriter; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Journal; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.persistent.Result; -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; - -public class AliceJournal implements Journal { - - private static final AliceChangeListWriter ALICE_WRITER = new AliceChangeListWriter(); - private static final AliceChangeListReader ALICE_READER = new AliceChangeListReader(); - @Override - public ChangeListReader getReader() { - return ALICE_READER; - } - @Override - public ChangeListWriter getWriter() { - return ALICE_WRITER; - } - - private static class AliceChangeListWriter implements ChangeListWriter - { - @Override - public Result write(ChangeList _operations) - { - for(TreeOperation op : _operations){ - NodePath p = op.getNodePath(); - NodeOperation nodeOp = op.getNodeOperation(); - Command c = nodeOp.getCommand(); - String args = ""; - switch(c){ - case PUT_ATTRIBUTE: - String key = nodeOp.getKey(); - ByteBuffer value = nodeOp.getValue(); - if(value.limit() < 100){ - args = String.format("key:%s,value:%s",key,new String(value.array())); - }else{ - args = String.format("key:%s,value:%d",key,value.limit()); - } - break; - case DELETE_ATTRIBUTE: - args = String.format("key:%s",nodeOp.getKey()); - break; - case APPEND_CHILD: - args = String.format("pos:%d",nodeOp.getPosition()); - break; - case DELETE_CHILD: - args = String.format("pos:%d",nodeOp.getPosition()); - break; - } - System.out.println(String.format("[%s:%s:%s]",c,p,args)); - } - return Result.SUCCESS; - } - } - - private static class AliceChangeListReader implements ChangeListReader - { - @Override - public ChangeListReader newReader() - { - return this; - } - - @Override - public ChangeList read() - { - return null; - } - } - - -} diff -r 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/CheckDoubleTreeAttr.java --- a/src/test/alice/jungle/codesegment/CheckDoubleTreeAttr.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -package test.alice.jungle.codesegment; - -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 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/CopyAttrJungle2.java --- a/src/test/alice/jungle/codesegment/CopyAttrJungle2.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -package test.alice.jungle.codesegment; - -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.test.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.operations.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 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/DoubleJungleManager.java --- a/src/test/alice/jungle/codesegment/DoubleJungleManager.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -package test.alice.jungle.codesegment; - -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 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/HashSetConvertTest.java --- a/src/test/alice/jungle/codesegment/HashSetConvertTest.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -package test.alice.jungle.codesegment; - -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 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/LocalDoubleJungleTree.java --- a/src/test/alice/jungle/codesegment/LocalDoubleJungleTree.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -package test.alice.jungle.codesegment; - -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 1bfd13f831ea -r 4851344e120e src/test/alice/jungle/codesegment/PutAttrJungle1.java --- a/src/test/alice/jungle/codesegment/PutAttrJungle1.java Sun Jul 14 21:46:40 2013 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -package test.alice.jungle.codesegment; - -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); - - } - -}