You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2012/04/11 12:34:22 UTC

svn commit: r1324688 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/api/ oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/ oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/ oak-jcr/src/main/java/org/apache/ja...

Author: mduerig
Date: Wed Apr 11 10:34:22 2012
New Revision: 1324688

URL: http://svn.apache.org/viewvc?rev=1324688&view=rev
Log:
OAK-18: Define Oak API 
introduce TransientNodeState

Added:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TransientNodeState.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientKernelNodeState.java
      - copied, changed from r1324678, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientNodeState.java
Removed:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientNodeState.java
Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemStateProvider.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/NodeStateEditor.java Wed Apr 11 10:34:22 2012
@@ -97,4 +97,10 @@ public interface NodeStateEditor {
      * @return base node state
      */
     NodeState getBaseNodeState();
+
+    /**
+     * Return the transient state which this editor is acting upon
+     * @return transient node state
+     */
+    TransientNodeState getTransientState();
 }

Added: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TransientNodeState.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TransientNodeState.java?rev=1324688&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TransientNodeState.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TransientNodeState.java Wed Apr 11 10:34:22 2012
@@ -0,0 +1,100 @@
+package org.apache.jackrabbit.oak.api;
+
+import org.apache.jackrabbit.oak.kernel.KernelNodeStateEditor;
+import org.apache.jackrabbit.oak.kernel.TransientKernelNodeState;
+
+/**
+ * A transient node state represents a node being edited. All edit operations are
+ * done through an associated {@link org.apache.jackrabbit.oak.api.NodeStateEditor}.
+ * <p>
+ * A transient node state contains the current state of a node and is
+ * in contrast to {@link org.apache.jackrabbit.mk.model.NodeState} instances
+ * mutable and not thread safe.
+ * <p>
+ * The various accessors on this class mirror these of {@code NodeState}. However,
+ * since instances of this class are mutable return values may change between
+ * invocations.
+ */
+public interface TransientNodeState {
+    /**
+     * @return  the name of this transient node state
+     */
+    String getName();
+
+    /**
+     * @return  relative path of this transient node state
+     */
+    String getPath();
+
+    /**
+     * @return  the parent of this transient node state
+     */
+    TransientNodeState getParent();
+
+    /**
+     * @return  editor acting upon this instance
+     */
+    KernelNodeStateEditor getEditor();
+
+    /**
+     * Get a property state
+     * @param name name of the property state
+     * @return  the property state with the given {@code name} or {@code null}
+     *          if no such property state exists.
+     */
+    PropertyState getProperty(String name);
+
+    /**
+     * Determine if a property state exists
+     * @param name  name of the property state
+     * @return  {@code true} if and only if a property with the given {@code name}
+     *          exists.
+     */
+    boolean hasProperty(String name);
+
+    /**
+     * Determine the number of properties.
+     * @return  number of properties
+     */
+    long getPropertyCount();
+
+    /**
+     * Get a child node state
+     * @param name  name of the child node state
+     * @return  the child node state with the given {@code name} or {@code null}
+     *          if no such child node state exists.
+     */
+    TransientKernelNodeState getChildNode(String name);
+
+    /**
+     * Determine if a child node state exists
+     * @param name  name of the child node state
+     * @return  {@code true} if and only if a child node with the given {@code name}
+     *          exists.
+     */
+    boolean hasNode(String name);
+
+    /**
+     * Determine the number of child nodes.
+     * @return  number of child nodes.
+     */
+    long getChildNodeCount();
+
+    /**
+     * All property states. The returned {@code Iterable} has snapshot semantics. That
+     * is, it reflect the state of this transient node state instance at the time of the
+     * call. Later changes to this instance are no visible to iterators obtained from
+     * the returned iterable.
+     * @return  An {@code Iterable} for all property states
+     */
+    Iterable<PropertyState> getProperties();
+
+    /**
+     * All child node states. The returned {@code Iterable} has snapshot semantics. That
+     * is, it reflect the state of this transient node state instance at the time of the
+     * call. Later changes to this instance are no visible to iterators obtained from
+     * the returned iterable.
+     * @return  An {@code Iterable} for all child node states
+     */
+    Iterable<TransientNodeState> getChildNodes();
+}

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditor.java Wed Apr 11 10:34:22 2012
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.oak.api.Nod
 import org.apache.jackrabbit.oak.api.NodeStateEditor;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Scalar;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 
 import java.util.List;
 
@@ -50,7 +51,7 @@ public class KernelNodeStateEditor imple
     private final NodeState base;
 
     /** Transient state this editor is acting upon */
-    private final TransientNodeState transientState;
+    private final TransientKernelNodeState transientState;
 
     /** Json diff of this private branch */
     private final StringBuilder jsop;
@@ -62,7 +63,7 @@ public class KernelNodeStateEditor imple
      */
     KernelNodeStateEditor(NodeState base) {
         this.base = base;
-        transientState = new TransientNodeState(base, this);
+        transientState = new TransientKernelNodeState(base, this);
         jsop = new StringBuilder();
     }
 
@@ -71,7 +72,7 @@ public class KernelNodeStateEditor imple
      * @param parentEditor  editor of the parent of {@code state}
      * @param state  transient node state for which to create the node state editor
      */
-    KernelNodeStateEditor(KernelNodeStateEditor parentEditor, TransientNodeState state) {
+    KernelNodeStateEditor(KernelNodeStateEditor parentEditor, TransientKernelNodeState state) {
         base = parentEditor.base;
         transientState = state;
         jsop = parentEditor.jsop;
@@ -117,13 +118,13 @@ public class KernelNodeStateEditor imple
 
     @Override
     public void move(String sourcePath, String destPath) {
-        TransientNodeState sourceParent = getTransientState(getParentPath(sourcePath));
+        TransientKernelNodeState sourceParent = getTransientState(getParentPath(sourcePath));
         String sourceName = getName(sourcePath);
         if (sourceParent == null || !sourceParent.hasNode(sourceName)) {
             return;
         }
         
-        TransientNodeState destParent = getTransientState(getParentPath(destPath));
+        TransientKernelNodeState destParent = getTransientState(getParentPath(destPath));
         String destName = getName(destPath);
         if (destParent == null || destParent.hasNode(destName)) {
             return;
@@ -136,13 +137,13 @@ public class KernelNodeStateEditor imple
 
     @Override
     public void copy(String sourcePath, String destPath) {
-        TransientNodeState sourceParent = getTransientState(getParentPath(sourcePath));
+        TransientKernelNodeState sourceParent = getTransientState(getParentPath(sourcePath));
         String sourceName = getName(sourcePath);
         if (sourceParent == null || !sourceParent.hasNode(sourceName)) {
             return;
         }
 
-        TransientNodeState destParent = getTransientState(getParentPath(destPath));
+        TransientKernelNodeState destParent = getTransientState(getParentPath(destPath));
         String destName = getName(destPath);
         if (destParent == null || destParent.hasNode(destName)) {
             return;
@@ -166,10 +167,7 @@ public class KernelNodeStateEditor imple
         return base;
     }
 
-    /**
-     * @return the {@link TransientNodeState} instance this editor is
-     *         acting upon.
-     */
+    @Override
     public TransientNodeState getTransientState() {
         return transientState;
     }
@@ -195,11 +193,11 @@ public class KernelNodeStateEditor imple
      * Get a transient node state for the node identified by
      * {@code path}
      * @param path  the path to the node state
-     * @return  a {@link TransientNodeState} instance for the item
+     * @return  a {@link TransientKernelNodeState} instance for the item
      *          at {@code path} or {@code null} if no such item exits.
      */
-    private TransientNodeState getTransientState(String path) {
-        TransientNodeState state = transientState;
+    private TransientKernelNodeState getTransientState(String path) {
+        TransientKernelNodeState state = transientState;
         for (String name : elements(path)) {
             state = state.getChildNode(name);
             if (state == null) {

Copied: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientKernelNodeState.java (from r1324678, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientNodeState.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientKernelNodeState.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientKernelNodeState.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientNodeState.java&r1=1324678&r2=1324688&rev=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientNodeState.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/TransientKernelNodeState.java Wed Apr 11 10:34:22 2012
@@ -25,7 +25,8 @@ import org.apache.commons.collections.it
 import org.apache.jackrabbit.oak.api.ChildNodeEntry;
 import org.apache.jackrabbit.oak.api.NodeState;
 import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.PagedIterator;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
+import org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.PagedIterator;
 
 import java.util.HashMap;
 import java.util.HashSet;
@@ -35,25 +36,13 @@ import java.util.Map.Entry;
 import java.util.NoSuchElementException;
 import java.util.Set;
 
-import static org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.Function1;
-import static org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.Predicate;
-import static org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.add;
-import static org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.filter;
-import static org.apache.jackrabbit.oak.kernel.TransientNodeState.Iterators.map;
-
-/**
- * A transient node state represents a node being edited. All edit operations are
- * done through an associated {@link org.apache.jackrabbit.oak.api.NodeStateEditor}.
- * <p>
- * A transient node state contains the current state of a node and is
- * in contrast to {@link org.apache.jackrabbit.mk.model.NodeState} instances
- * mutable and not thread safe.
- * <p>
- * The various accessors on this class mirror these of {@code NodeState}. However,
- * since instances of this class are mutable return values may change between
- * invocations.
- */
-public class TransientNodeState {
+import static org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.Function1;
+import static org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.Predicate;
+import static org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.add;
+import static org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.filter;
+import static org.apache.jackrabbit.oak.kernel.TransientKernelNodeState.Iterators.map;
+
+public class TransientKernelNodeState implements TransientNodeState {
     /** Editor acting upon this instance */
     private final KernelNodeStateEditor editor;
 
@@ -64,12 +53,12 @@ public class TransientNodeState {
     private final NodeState persistentState;
 
     /** Resolved persistent child states */
-    private final Map<String, TransientNodeState> existingChildNodes =
-            new HashMap<String, TransientNodeState>();
+    private final Map<String, TransientKernelNodeState> existingChildNodes =
+            new HashMap<String, TransientKernelNodeState>();
 
     /** Transiently added node states */
-    private final Map<String, TransientNodeState> addedNodes =
-            new HashMap<String, TransientNodeState>();
+    private final Map<String, TransientKernelNodeState> addedNodes =
+            new HashMap<String, TransientKernelNodeState>();
 
     /** Transiently removed node stated */
     private final Set<String> removedNodes = new HashSet<String>();
@@ -92,7 +81,7 @@ public class TransientNodeState {
      * @param persistentState  underlying persistent state
      * @param editor  editor acting upon the transient node state
      */
-    TransientNodeState(NodeState persistentState, KernelNodeStateEditor editor) {
+    TransientKernelNodeState(NodeState persistentState, KernelNodeStateEditor editor) {
         this.editor = editor;
         this.persistentState = persistentState;
         this.parent = null;
@@ -104,7 +93,7 @@ public class TransientNodeState {
      * @param parentEditor  editor of the parent state
      * @param name  name of the state
      */
-    private TransientNodeState(KernelNodeStateEditor parentEditor, String name) {
+    private TransientKernelNodeState(KernelNodeStateEditor parentEditor, String name) {
         this(parentEditor, name, null);
     }
 
@@ -114,7 +103,7 @@ public class TransientNodeState {
      * @param name  name of the state
      * @param persistedState  underlying persistent state
      */
-    private TransientNodeState(KernelNodeStateEditor parentEditor, String name,
+    private TransientKernelNodeState(KernelNodeStateEditor parentEditor, String name,
             NodeState persistedState) {
 
         editor = new KernelNodeStateEditor(parentEditor, this);
@@ -130,7 +119,7 @@ public class TransientNodeState {
      * @param parent  parent of the copied state
      * @param name  name of the copied state
      */
-    private TransientNodeState(TransientNodeState state, TransientNodeState parent,
+    private TransientKernelNodeState(TransientKernelNodeState state, TransientNodeState parent,
             String name) {
 
         editor = new KernelNodeStateEditor(parent.getEditor(), this);
@@ -139,17 +128,17 @@ public class TransientNodeState {
         this.name = name;
 
         // recursively copy all existing node states
-        for (Entry<String, TransientNodeState> existing : state.existingChildNodes.entrySet()) {
+        for (Entry<String, TransientKernelNodeState> existing : state.existingChildNodes.entrySet()) {
             String existingName = existing.getKey();
             this.existingChildNodes.put(existingName,
-                    new TransientNodeState(existing.getValue(), this, existingName));
+                    new TransientKernelNodeState(existing.getValue(), this, existingName));
         }
         
         // recursively copy all added node states
-        for (Entry<String, TransientNodeState> added : state.addedNodes.entrySet()) {
+        for (Entry<String, TransientKernelNodeState> added : state.addedNodes.entrySet()) {
             String addedName = added.getKey();
             this.addedNodes.put(addedName,
-                    new TransientNodeState(added.getValue(), this, addedName));
+                    new TransientKernelNodeState(added.getValue(), this, addedName));
         }
 
         this.removedNodes.addAll(state.removedNodes);
@@ -157,16 +146,12 @@ public class TransientNodeState {
         this.removedProperties.addAll(state.removedProperties);
     }
 
-    /**
-     * @return  the name of this transient node state
-     */
+    @Override
     public String getName() {
         return name;
     }
 
-    /**
-     * @return  relative path of this transient node state
-     */
+    @Override
     public String getPath() {
         if (parent == null) {
             return name;
@@ -179,23 +164,17 @@ public class TransientNodeState {
         }
     }
 
+    @Override
     public TransientNodeState getParent() {
         return parent;
     }
 
-    /**
-     * @return  editor acting upon this instance
-     */
+    @Override
     public KernelNodeStateEditor getEditor() {
         return editor;
     }
 
-    /**
-     * Get a property state
-     * @param name name of the property state
-     * @return  the property state with the given {@code name} or {@code null}
-     *          if no such property state exists.
-     */
+    @Override
     public PropertyState getProperty(String name) {
         PropertyState state = addedProperties.get(name);
         if (state != null) {
@@ -209,20 +188,12 @@ public class TransientNodeState {
             : persistentState.getProperty(name);
     }
 
-    /**
-     * Determine if a property state exists
-     * @param name  name of the property state
-     * @return  {@code true} if and only if a property with the given {@code name}
-     *          exists.
-     */
+    @Override
     public boolean hasProperty(String name) {
         return getProperty(name) != null;
     }
 
-    /**
-     * Determine the number of properties.
-     * @return  number of properties
-     */
+    @Override
     public long getPropertyCount() {
         long persistentCount = persistentState == null
             ? 0
@@ -231,14 +202,9 @@ public class TransientNodeState {
         return persistentCount + addedProperties.size() - removedProperties.size();
     }
 
-    /**
-     * Get a child node state
-     * @param name  name of the child node state
-     * @return  the child node state with the given {@code name} or {@code null}
-     *          if no such child node state exists.
-     */
-    public TransientNodeState getChildNode(String name) {
-        TransientNodeState state = addedNodes.get(name);
+    @Override
+    public TransientKernelNodeState getChildNode(String name) {
+        TransientKernelNodeState state = addedNodes.get(name);
         if (state != null) {
             // Added or removed and re-added child node
             return state;
@@ -250,20 +216,12 @@ public class TransientNodeState {
             : getExistingChildNode(name);
     }
 
-    /**
-     * Determine if a child node state exists
-     * @param name  name of the child node state
-     * @return  {@code true} if and only if a child node with the given {@code name}
-     *          exists.
-     */
+    @Override
     public boolean hasNode(String name) {
         return getChildNode(name) != null;
     }
 
-    /**
-     * Determine the number of child nodes.
-     * @return  number of child nodes.
-     */
+    @Override
     public long getChildNodeCount() {
         long persistentCount = persistentState == null
                 ? 0
@@ -272,13 +230,7 @@ public class TransientNodeState {
         return persistentCount + addedNodes.size() - removedNodes.size();
     }
 
-    /**
-     * All property states. The returned {@code Iterable} has snapshot semantics. That
-     * is, it reflect the state of this transient node state instance at the time of the
-     * call. Later changes to this instance are no visible to iterators obtained from
-     * the returned iterable.
-     * @return  An {@code Iterable} for all property states
-     */
+    @Override
     public Iterable<PropertyState> getProperties() {
         // Persisted property states
         final Iterable<? extends PropertyState> persisted = persistentState == null
@@ -319,13 +271,7 @@ public class TransientNodeState {
         };
     }
 
-    /**
-     * All child node states. The returned {@code Iterable} has snapshot semantics. That
-     * is, it reflect the state of this transient node state instance at the time of the
-     * call. Later changes to this instance are no visible to iterators obtained from
-     * the returned iterable.
-     * @return  An {@code Iterable} for all child node states
-     */
+    @Override
     public Iterable<TransientNodeState> getChildNodes() {
         // Copy od removed child node states
         final Set<String> removed = new HashSet<String>();
@@ -379,7 +325,7 @@ public class TransientNodeState {
      * @param name  name of the child node state
      */
     void addNode(String name) {
-        addedNodes.put(name, new TransientNodeState(editor, name));
+        addedNodes.put(name, new TransientKernelNodeState(editor, name));
     }
 
     /**
@@ -429,8 +375,8 @@ public class TransientNodeState {
      * @param destParent  parent of the moved node state
      * @param destName  name of the moved node state
      */
-    void move(String name, TransientNodeState destParent, String destName) {
-        TransientNodeState state = getChildNode(name);
+    void move(String name, TransientKernelNodeState destParent, String destName) {
+        TransientKernelNodeState state = getChildNode(name);
         removeNode(name);
 
         state.name = destName;
@@ -447,9 +393,9 @@ public class TransientNodeState {
      * @param destParent  parent of the moved node state
      * @param destName  name of the moved node state
      */
-    void copy(String name, TransientNodeState destParent, String destName) {
+    void copy(String name, TransientKernelNodeState destParent, String destName) {
         destParent.addedNodes.put(destName,
-                new TransientNodeState(getChildNode(name), destParent, destName));
+                new TransientKernelNodeState(getChildNode(name), destParent, destName));
     }
 
     /**
@@ -462,18 +408,18 @@ public class TransientNodeState {
      *          or the underlying persistent state does not have a child
      *          node state with the given {@code name}.
      */
-    private TransientNodeState getExistingChildNode(String name) {
+    private TransientKernelNodeState getExistingChildNode(String name) {
         if (persistentState == null) {
             return null;
         }
 
-        TransientNodeState transientState = existingChildNodes.get(name);
+        TransientKernelNodeState transientState = existingChildNodes.get(name);
         if (transientState == null) {
             NodeState state = persistentState.getChildNode(name);
             if (state == null) {
                 return null;
             }
-            transientState = new TransientNodeState(editor, name, state);
+            transientState = new TransientKernelNodeState(editor, name, state);
             existingChildNodes.put(name, transientState);
         }
         return transientState;

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorFuzzIT.java Wed Apr 11 10:34:22 2012
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.mk.util.Pat
 import org.apache.jackrabbit.oak.api.ChildNodeEntry;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Scalar;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelNodeStateEditorTest.java Wed Apr 11 10:34:22 2012
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.mk.simple.S
 import org.apache.jackrabbit.oak.api.NodeState;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Scalar;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemStateProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemStateProvider.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemStateProvider.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/ItemStateProvider.java Wed Apr 11 10:34:22 2012
@@ -2,7 +2,7 @@ package org.apache.jackrabbit.oak.jcr;
 
 import org.apache.jackrabbit.mk.util.PathUtils;
 import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.kernel.TransientNodeState;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 
 public class ItemStateProvider {
     private final TransientNodeState root;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Wed Apr 11 10:34:22 2012
@@ -22,6 +22,7 @@ import org.apache.jackrabbit.commons.ite
 import org.apache.jackrabbit.mk.util.PathUtils;
 import org.apache.jackrabbit.oak.api.NodeStateEditor;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 import org.apache.jackrabbit.oak.jcr.util.Function1;
 import org.apache.jackrabbit.oak.jcr.util.ItemNameMatcher;
 import org.apache.jackrabbit.oak.jcr.util.Iterators;
@@ -29,7 +30,6 @@ import org.apache.jackrabbit.oak.jcr.uti
 import org.apache.jackrabbit.oak.jcr.util.Predicate;
 import org.apache.jackrabbit.oak.jcr.util.ValueConverter;
 import org.apache.jackrabbit.oak.kernel.ScalarImpl;
-import org.apache.jackrabbit.oak.kernel.TransientNodeState;
 import org.apache.jackrabbit.value.ValueHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/PropertyImpl.java Wed Apr 11 10:34:22 2012
@@ -19,9 +19,9 @@ package org.apache.jackrabbit.oak.jcr;
 import org.apache.jackrabbit.mk.util.PathUtils;
 import org.apache.jackrabbit.oak.api.NodeStateEditor;
 import org.apache.jackrabbit.oak.api.PropertyState;
+import org.apache.jackrabbit.oak.api.TransientNodeState;
 import org.apache.jackrabbit.oak.jcr.util.LogUtil;
 import org.apache.jackrabbit.oak.jcr.util.ValueConverter;
-import org.apache.jackrabbit.oak.kernel.TransientNodeState;
 import org.apache.jackrabbit.value.ValueHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java?rev=1324688&r1=1324687&r2=1324688&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionImpl.java Wed Apr 11 10:34:22 2012
@@ -21,7 +21,6 @@ import org.apache.jackrabbit.oak.api.Com
 import org.apache.jackrabbit.oak.api.Connection;
 import org.apache.jackrabbit.oak.api.NodeState;
 import org.apache.jackrabbit.oak.api.NodeStateEditor;
-import org.apache.jackrabbit.oak.kernel.KernelNodeStateEditor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.xml.sax.ContentHandler;
@@ -69,8 +68,7 @@ public class SessionImpl extends Abstrac
         this.valueFactory = new ValueFactoryImpl();
 
         this.editor = connection.getNodeStateEditor(connection.getCurrentRoot());
-        // fixme: don't cast to implementation
-        this.itemStateProvider = new ItemStateProvider(((KernelNodeStateEditor) editor).getTransientState());
+        this.itemStateProvider = new ItemStateProvider(editor.getTransientState());
 
         workspace = new WorkspaceImpl(sessionContext);
     }
@@ -160,8 +158,7 @@ public class SessionImpl extends Abstrac
         try {
             NodeState newState = connection.commit(editor);
             editor = connection.getNodeStateEditor(newState);
-            // fixme: don't cast to implementation
-            itemStateProvider = new ItemStateProvider(((KernelNodeStateEditor) editor).getTransientState());
+            itemStateProvider = new ItemStateProvider(editor.getTransientState());
         } catch (CommitFailedException e) {
             throw new RepositoryException(e);
         }
@@ -174,8 +171,7 @@ public class SessionImpl extends Abstrac
             // todo: need a better way to update a connection to head
             NodeState newState = connection.commit(connection.getNodeStateEditor(connection.getCurrentRoot()));
             editor = connection.getNodeStateEditor(newState);
-            // fixme: don't cast to implementation
-            itemStateProvider = new ItemStateProvider(((KernelNodeStateEditor) editor).getTransientState());
+            itemStateProvider = new ItemStateProvider(editor.getTransientState());
         } catch (CommitFailedException e) {
             throw new RepositoryException(e);
         }