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/29 13:58:09 UTC

svn commit: r1225518 - in /jackrabbit/sandbox/jackrabbit-microkernel/src: main/java/org/apache/jackrabbit/state/NodeState.java test/java/org/apache/jackrabbit/RepositoryTest.java

Author: mduerig
Date: Thu Dec 29 12:58:09 2011
New Revision: 1225518

URL: http://svn.apache.org/viewvc?rev=1225518&view=rev
Log:
Microkernel based prototype of JCR implementation (WIP)
- don't try to resolve persistent state for transient nodes

Modified:
    jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/NodeState.java
    jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java

Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/NodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/NodeState.java?rev=1225518&r1=1225517&r2=1225518&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/NodeState.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/NodeState.java Thu Dec 29 12:58:09 2011
@@ -204,7 +204,7 @@ public class NodeState {
         }
 
         return getPersistedPropertyValue(name);
-    }    
+    }
 
     private JsonValue getPersistedPropertyValue(String name) {
         JsonValue value = getJsonObject().get(name);
@@ -217,11 +217,17 @@ public class NodeState {
     }
 
     private synchronized JsonObject getJsonObject() {
+        Path path = nodeDelta.getPersistentPath();
         String baseRevision = sessionContext.getRevision();
         if (jsonObject == null || !revision.equals(baseRevision)) {
             revision =  baseRevision;
-            String json = sessionContext.getMicrokernel().getNodes(nodeDelta.getPersistentPath().toMkPath(), revision);
-            jsonObject = FullJsonParser.parseObject(new UnescapingJsonTokenizer(json));
+            if (path == null) {
+                jsonObject = JsonObject.EMPTY;
+            }
+            else {
+                String json = sessionContext.getMicrokernel().getNodes(nodeDelta.getPersistentPath().toMkPath(), revision);
+                jsonObject = FullJsonParser.parseObject(new UnescapingJsonTokenizer(json));
+            }
         }
 
         return jsonObject;

Modified: jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java?rev=1225518&r1=1225517&r2=1225518&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java (original)
+++ jackrabbit/sandbox/jackrabbit-microkernel/src/test/java/org/apache/jackrabbit/RepositoryTest.java Thu Dec 29 12:58:09 2011
@@ -865,6 +865,24 @@ public class RepositoryTest {
             session2.logout();
         }
     }
+    
+    @Test 
+    public void transientChanges() throws RepositoryException {
+        Node parentNode = getNode(TEST_PATH);
+
+        Node node = parentNode.addNode("test");
+
+        assertFalse(node.hasProperty("p"));
+        node.setProperty("p", "pv");
+        assertTrue(node.hasProperty("p"));
+
+        assertFalse(node.hasNode("n"));
+        node.addNode("n");
+        assertTrue(node.hasNode("n"));
+        
+        assertTrue(node.hasProperties());
+        assertTrue(node.hasNodes());
+    }
 
     @Test
     public void setStringProperty() throws RepositoryException, IOException {