# HG changeset patch
# User one
# Date 1419399197 -32400
# Node ID 6615db346bf5900968a38309d7f1b349a9e3f249
# Parent 7be56a1be5d958805dd32b7067012c5d867ef05e
miner change
diff -r 7be56a1be5d9 -r 6615db346bf5 build.gradle
--- a/build.gradle Mon Dec 08 10:49:53 2014 +0900
+++ b/build.gradle Wed Dec 24 14:33:17 2014 +0900
@@ -14,7 +14,7 @@
compile "commons-collections:commons-collections:3.2.1"
compile "org.apache.maven.surefire:surefire-junit4:2.13"
compile "com.google.guava:guava:12.0"
- compile "org.functionaljava:functionaljava:3.1"
+ compile "org.functionaljava:functionaljava:4.2-beta-1"
testCompile "junit:junit:4.7"
}
diff -r 7be56a1be5d9 -r 6615db346bf5 pom.xml
--- a/pom.xml Mon Dec 08 10:49:53 2014 +0900
+++ b/pom.xml Wed Dec 24 14:33:17 2014 +0900
@@ -1,57 +1,58 @@
- 4.0.0
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
- jungle
- jungle-core
- 0.0.3-SNAPSHOT
- jar
+ jungle
+ jungle-core
+ 0.0.3-SNAPSHOT
+ jar
- jungle-core
- http://maven.apache.org
+ jungle-core
+ http://maven.apache.org
-
- UTF-8
-
+
+ UTF-8
+
-
-
- junit
- junit
- 4.7
- test
-
-
- com.google.guava
- guava
- 12.0
-
-
- commons-collections
- commons-collections
- 3.2.1
-
-
- org.functionaljava
- functionaljava
- 4.1
-
-
- org.apache.maven.surefire
- surefire-junit4
- 2.13
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- 1.8
-
-
-
-
+
+
+ junit
+ junit
+ 4.7
+ test
+
+
+ com.google.guava
+ guava
+ 12.0
+
+
+ commons-collections
+ commons-collections
+ 3.2.1
+
+
+ org.functionaljava
+ functionaljava
+ 4.2-beta-1
+
+
+
+ org.apache.maven.surefire
+ surefire-junit4
+ 2.13
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 1.8
+
+
+
+
diff -r 7be56a1be5d9 -r 6615db346bf5 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/transaction/DefaultTransactionManager.java Wed Dec 24 14:33:17 2014 +0900
@@ -64,21 +64,8 @@
};
IndexManager indexManager = new IndexManager(repository.getReservation());
- InterfaceTraverser traverser = new InterfaceTraverser(_newRoot, indexManager, true);
- long t1 = System.currentTimeMillis();
+ InterfaceTraverser traverser = new InterfaceTraverser(_newRoot, indexManager, false);
traverser.createIndex();
- long t2 = System.currentTimeMillis();
- System.out.println("createIndexTime = " + (t2 - t1));
- File file = new File("./time/createParentIndexFunctionalJava");
- try {
- PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file,true)));
- pw.println(t2 - t1);
- pw.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
Index index = traverser.getIndex();
ParentIndex parentIndex = traverser.getParentIndex();
DefaultChangeSet newCs = new DefaultChangeSet(_newRoot, cs, list, uuid, _treeName, nextRevision, index.getIndex(),
diff -r 7be56a1be5d9 -r 6615db346bf5 src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/traverser/InterfaceTraverser.java Wed Dec 24 14:33:17 2014 +0900
@@ -61,12 +61,12 @@
TreeNode targetNode = itNode.next();
if (parentUpdateFlag)
parentIndex = parentIndex.set(targetNode);
-// List keys = targetNode.getAttributes().getKeys();
-// for (String key : keys) {
-// String value = targetNode.getAttributes().getString(key);
-// if (value != null)
-// index = index.set(key, value, targetNode);
-// }
+ List keys = targetNode.getAttributes().getKeys();
+ for (String key : keys) {
+ String value = targetNode.getAttributes().getString(key);
+ if (value != null)
+ index = index.set(key, value, targetNode);
+ }
}
}
diff -r 7be56a1be5d9 -r 6615db346bf5 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/IndexManager.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/IndexManager.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/IndexManager.java Wed Dec 24 14:33:17 2014 +0900
@@ -28,7 +28,7 @@
String treeName = cs.getTreeName();
long revision = cs.revision();
index.get("KER", "value");
- DefaultChangeSet newCs = new DefaultChangeSet(root, prev, cl, uuid, treeName, revision, index, parentIndex);
+ DefaultChangeSet newCs = new DefaultChangeSet(root, prev, cl, uuid, treeName, revision, index.getIndex(), parentIndex.getParentIndex());
DefaultTreeContext newTs = new DefaultTreeContext(root, newCs);
reservation.set(newTs);
}
diff -r 7be56a1be5d9 -r 6615db346bf5 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/store/index/ParentIndex.java Wed Dec 24 14:33:17 2014 +0900
@@ -2,10 +2,10 @@
import java.util.Iterator;
-
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNodeChildren;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.TreeMapOrd;
+import fj.Ord;
import fj.data.Option;
import fj.data.TreeMap;
@@ -14,7 +14,8 @@
private TreeMap parentIndex;
public ParentIndex() {
- parentIndex = TreeMap.empty(TreeMapOrd.treeNodeOrd);
+ Ord aaa = TreeMapOrd.treeNodeOrd;
+ parentIndex = TreeMap.empty(aaa);
}
public ParentIndex(TreeMap parentIndex) {
diff -r 7be56a1be5d9 -r 6615db346bf5 src/test/java/DefaultJungleTreeTest.java
--- a/src/test/java/DefaultJungleTreeTest.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/test/java/DefaultJungleTreeTest.java Wed Dec 24 14:33:17 2014 +0900
@@ -14,53 +14,48 @@
import junit.framework.Assert;
import junit.framework.TestCase;
+public class DefaultJungleTreeTest extends TestCase {
+ public Jungle instance() {
+ Jungle j = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
+ return j;
+ }
-public class DefaultJungleTreeTest extends TestCase
-{
- public Jungle instance()
- {
- Jungle j = new DefaultJungle(null,"hogehoge",new DefaultTraverser());
- return j;
- }
-
- public static final String key = "KEY";
- public static final ByteBuffer value = ByteBuffer.wrap(key.getBytes());
-
- public void testSampleTest()
- {
- Jungle j = instance();
- j.createNewTree("tree");
- JungleTree tree = j.getTreeByName("tree");
- Assert.assertEquals(0,tree.revision());
- JungleTreeEditor editor1 = tree.getTreeEditor();
- JungleTreeEditor editor2 = tree.getTreeEditor();
-
- DefaultNodePath root = new DefaultNodePath();
-
- Either either = editor1.putAttribute(root,key,value);
- if(either.isA()){
- Assert.fail();
- }
- editor1 = either.b();
- editor1.success();
-
- // check the value ;
- TreeNode node = tree.getRootNode();
- ByteBuffer v = node.getAttributes().get(key);
- Assert.assertEquals(0,v.compareTo(value));
- Assert.assertEquals(1,tree.revision());
- // editor2 must fail transction
- either = editor2.putAttribute(root,key,value);
- if(either.isA()){
- Assert.fail();
- }
- editor2 = either.b();
- Either r = editor2.success();
- Assert.assertTrue(r.isA());
- }
-
- public void testIsolation()
- {
-
- }
+ public static final String key = "KEY";
+ public static final ByteBuffer value = ByteBuffer.wrap(key.getBytes());
+
+ public void testSampleTest() {
+ Jungle j = instance();
+ j.createNewTree("tree");
+ JungleTree tree = j.getTreeByName("tree");
+ Assert.assertEquals(0, tree.revision());
+ JungleTreeEditor editor1 = tree.getTreeEditor();
+ JungleTreeEditor editor2 = tree.getTreeEditor();
+
+ DefaultNodePath root = new DefaultNodePath();
+
+ Either either = editor1.putAttribute(root, key, value);
+ if (either.isA()) {
+ Assert.fail();
+ }
+ editor1 = either.b();
+ editor1.success();
+
+ // check the value ;
+ TreeNode node = tree.getRootNode();
+ ByteBuffer v = node.getAttributes().get(key);
+ Assert.assertEquals(0, v.compareTo(value));
+ Assert.assertEquals(1, tree.revision());
+ // editor2 must fail transction
+ either = editor2.putAttribute(root, key, value);
+ if (either.isA()) {
+ Assert.fail();
+ }
+ editor2 = either.b();
+ Either r = editor2.success();
+ Assert.assertTrue(r.isA());
+ }
+
+ public void testIsolation() {
+
+ }
}
diff -r 7be56a1be5d9 -r 6615db346bf5 src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetOldTreeTest.java
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetOldTreeTest.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/GetOldTreeTest.java Wed Dec 24 14:33:17 2014 +0900
@@ -22,7 +22,7 @@
@Test
public void getOldTreeTest() {
- Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTraverser());
+ Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
jungle.createNewTree("tree");
JungleTree tree = jungle.getTreeByName("tree");
JungleTreeEditor editor = tree.getTreeEditor();
diff -r 7be56a1be5d9 -r 6615db346bf5 src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java
--- a/src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java Mon Dec 08 10:49:53 2014 +0900
+++ b/src/test/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/index/AddChildrenIndexTest.java Wed Dec 24 14:33:17 2014 +0900
@@ -1,7 +1,5 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.index;
-
-
import java.nio.ByteBuffer;
import java.util.Iterator;
@@ -21,87 +19,87 @@
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.IndexTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.IndexJungleTreeEditor;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Pair;
+import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.Index;
import junit.framework.Assert;
public class AddChildrenIndexTest {
- @Test
- public void DeleteChildrenTest(){
- Jungle jungle = new DefaultJungle(null, "hogehoge",new DefaultTraverser());
- jungle.createNewTree("tree");
- JungleTree tree = jungle.getTreeByName("tree");
- createTree(tree);
- tree.getRootNode();
- InterfaceTraverser ifTraverser = tree.getTraverser();
+ @Test
+ public void DeleteChildrenTest() {
+ Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
+ jungle.createNewTree("tree");
+ JungleTree tree = jungle.getTreeByName("tree");
+ createTree(tree);
+ tree.getRootNode();
+ InterfaceTraverser ifTraverser = tree.getTraverser(true);
- Iterator> pairIterator = ifTraverser.find((TreeNode node) -> {
- ByteBuffer attribute = node.getAttributes().get(key);
- if (attribute != null) {
- byte[] byteAttribute = attribute.array();
- String str = new String(byteAttribute);
- System.out.println("attribute = " + str);
- return str.equals("<-1,0,1>");
- }
- return false;
- }, key, "<-1,0,1>");
+ Iterator pairIterator = ifTraverser.find((TreeNode node) -> {
+ ByteBuffer attribute = node.getAttributes().get(key);
+ if (attribute != null) {
+ byte[] byteAttribute = attribute.array();
+ String str = new String(byteAttribute);
+ System.out.println("attribute = " + str);
+ return str.equals("<-1,0,1>");
+ }
+ return false;
+ }, key, "<-1,0,1>");
+
+ for (; pairIterator.hasNext(); pairIterator.next()) {
- for (;pairIterator.hasNext();pairIterator.next()) {
-
- }
- ifTraverser.commitIndex();
-
- IndexJungleTreeEditor editor = tree.getIndexTreeEditor();
- Either either = editor.addNewChildAt(new DefaultNodePath().add(0), 0);
- either.b().success();
-
- InterfaceTraverser newIfTraverser = tree.getTraverser();
- TreeMap>>> newIndex = newIfTraverser.getIndex();
- Assert.assertEquals(newIndex.get(key).some().get("<-1,0,1>").some().head().right().toString(),"<-1,0,2>");
-
- }
- public static String key = "KEY";
- public static DefaultTreeNode factory = new DefaultTreeNode();
+ }
+ ifTraverser.commit();
+
+ JungleTreeEditor editor = tree.getTreeEditor();
+ Either either = editor.addNewChildAt(new DefaultNodePath().add(0), 0);
+ either.b().success();
+
+ InterfaceTraverser newIfTraverser = tree.getTraverser(true);
+ Index newIndex = newIfTraverser.getIndex();
+ Assert.assertEquals(newIndex.get(key,"<-1,0,1>").head().toString(), "<-1,0,2>");
+
+ }
- public void createTree(JungleTree tree) {
- NodePath root = new DefaultNodePath();
- createChildren(tree, root, 0);
+ public static String key = "KEY";
+ public static DefaultTreeNode factory = new DefaultTreeNode();
+
+ public void createTree(JungleTree tree) {
+ NodePath root = new DefaultNodePath();
+ createChildren(tree, root, 0);
- for (int x = 0; x < 3; x++) {
- createChildren(tree, root.add(0), x);
- for (int y = 0; y < 3; y++) {
- createChildren(tree, root.add(0).add(x), y);
- }
- }
+ for (int x = 0; x < 3; x++) {
+ createChildren(tree, root.add(0), x);
+ for (int y = 0; y < 3; y++) {
+ createChildren(tree, root.add(0).add(x), y);
+ }
+ }
- }
+ }
- public void createChildren(JungleTree tree, NodePath root, int num) {
- JungleTreeEditor editor = tree.getTreeEditor();// Treeのeditorを作成
- Either either = editor
- .addNewChildAt(root, num); // 新しく入れるところへのパス
- if (either.isA()) {
- Assert.fail();
- }
- editor = either.b();
- either = editor.success();
- if (either.isA()) {
- Assert.fail();
- }
- NodePath childPath = root.add(num);
- editor = tree.getTreeEditor();
- NodePath attribute = root.add(num);
- System.out.println(attribute.toString());
- either = editor.putAttribute(childPath, key,ByteBuffer.wrap(attribute.toString().getBytes()));
- if (either.isA()) {
- Assert.fail();
- }
- editor = either.b();
- either = editor.success();
- }
+ public void createChildren(JungleTree tree, NodePath root, int num) {
+ JungleTreeEditor editor = tree.getTreeEditor();// Treeのeditorを作成
+ Either either = editor.addNewChildAt(root, num); // 新しく入れるところへのパス
+ if (either.isA()) {
+ Assert.fail();
+ }
+ editor = either.b();
+ either = editor.success();
+ if (either.isA()) {
+ Assert.fail();
+ }
+ NodePath childPath = root.add(num);
+ editor = tree.getTreeEditor();
+ NodePath attribute = root.add(num);
+ System.out.println(attribute.toString());
+ either = editor.putAttribute(childPath, key, ByteBuffer.wrap(attribute.toString().getBytes()));
+ if (either.isA()) {
+ Assert.fail();
+ }
+ editor = either.b();
+ either = editor.success();
+ }
}