You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/12/30 16:42:24 UTC
svn commit: r1225850 - in /jackrabbit/sandbox/jackrabbit-microkernel/src:
main/java/org/apache/jackrabbit/state/ChangeTree.java
test/java/org/apache/jackrabbit/state/TransientSpaceTest.java
Author: mduerig
Date: Fri Dec 30 15:42:24 2011
New Revision: 1225850
URL: http://svn.apache.org/viewvc?rev=1225850&view=rev
Log:
Microkernel based prototype of JCR implementation (WIP)
- moving an added node to a moved node results in the node disappearing: fixed
Modified:
jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java
jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/state/TransientSpaceTest.java
Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java?rev=1225850&r1=1225849&r2=1225850&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeTree.java Fri Dec 30 15:42:24 2011
@@ -517,6 +517,13 @@ public class ChangeTree {
abstract NodeDelta remove() throws ItemNotFoundException;
abstract void moveTo(NodeDelta parent, String name);
+ NodeDelta addChild(NodeDelta delta) {
+ childNodes.put(delta.name, delta);
+ delta.parent = this;
+ touch();
+ return delta;
+ }
+
final void clear() {
childNodes.clear();
properties.clear();
@@ -534,12 +541,6 @@ public class ChangeTree {
return childNodes.containsKey(name);
}
- final NodeDelta addChild(NodeDelta delta) {
- childNodes.put(delta.name, delta);
- touch();
- return delta;
- }
-
final NodeDelta removeChild(String name) {
NodeDelta delta = childNodes.remove(name);
if (delta != null) {
@@ -676,7 +677,6 @@ public class ChangeTree {
@Override
void moveTo(NodeDelta parent, String name) {
- this.parent = parent;
this.name = name;
parent.addChild(this);
}
@@ -773,6 +773,11 @@ public class ChangeTree {
}
@Override
+ NodeDelta addChild(NodeDelta delta) {
+ return source.addChild(delta);
+ }
+
+ @Override
void moveTo(NodeDelta parent, String name) {
parent.addChild(new Moved(parent, name, source));
}
Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/state/TransientSpaceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/state/TransientSpaceTest.java?rev=1225850&r1=1225849&r2=1225850&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/state/TransientSpaceTest.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/state/TransientSpaceTest.java Fri Dec 30 15:42:24 2011
@@ -770,6 +770,30 @@ public class TransientSpaceTest {
}
@Test
+ public void moveAddedToMove() throws RepositoryException {
+ NodeDelta root = transientSpace.getNode(ROOT);
+ root.addNode("source").addNode("node1");
+ transientSpace.save();
+
+ root.getNode("source").moveNode("node1", ROOT.concat("target"));
+ root.getNode("source").addNode("node2");
+ root.getNode("source").moveNode("node2", ROOT.concat("target/moved"));
+ dump(root);
+
+ assertNotNull(transientSpace.getNode(ROOT.concat("source")));
+ assertNull(transientSpace.getNode(ROOT.concat("source/node1")));
+ assertNull(transientSpace.getNode(ROOT.concat("source/node2")));
+ assertNotNull(transientSpace.getNode(ROOT.concat("target/moved")));
+
+ transientSpace.save();
+
+ assertNotNull(transientSpace.getNode(ROOT.concat("source")));
+ assertNull(transientSpace.getNode(ROOT.concat("source/node1")));
+ assertNull(transientSpace.getNode(ROOT.concat("source/node2")));
+ assertNotNull(transientSpace.getNode(ROOT.concat("target/moved")));
+ }
+
+ @Test
public void setPropertyTest() throws RepositoryException {
// Set property
NodeDelta root = transientSpace.getNode(ROOT);