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/24 14:52:15 UTC

svn commit: r1329685 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/api/ main/java/org/apache/jackrabbit/oak/core/ main/java/org/apache/jackrabbit/oak/kernel/ test/java/org/apache/jackrabbit/oak/kernel/

Author: mduerig
Date: Tue Apr 24 12:52:14 2012
New Revision: 1329685

URL: http://svn.apache.org/viewvc?rev=1329685&view=rev
Log:
OAK-18: Define Oak API 
- update  javadoc

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/ContentSession.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentSession.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelRoot.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelTree.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStore.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelRootTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/ContentSession.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/ContentSession.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/ContentSession.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/ContentSession.java Tue Apr 24 12:52:14 2012
@@ -28,9 +28,6 @@ import java.io.Closeable;
  * - validate information being written back to the persistent layer. this includes
  *   permission evaluation, node type and name constraints etc.
  *
- * - update the revision ID a given session is operating on when certain actions
- *   take place (save, refresh, TBD)
- *
  * - Provide access to authentication and authorization related information
  *
  * - The implementation of this and all related interfaces are intended to only
@@ -66,11 +63,10 @@ public interface ContentSession extends 
     String getWorkspaceName();
 
     /**
-     * TODO update javadoc
-     * Branch the current root. Use {@link #commit(Root)} to atomically apply the
-     * changes made in this branch to the underlying Microkernel.
+     * The current root as seen by this content session. Use {@link Root#commit()} to
+     * atomically apply the changes made in that subtree the underlying Microkernel.
      *
-     * @return branch of the current root.
+     * @return  the current root
      */
     Root getCurrentRoot();
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Root.java Tue Apr 24 12:52:14 2012
@@ -19,7 +19,7 @@
 package org.apache.jackrabbit.oak.api;
 
 /**
- * An branch for modifying existing and creating new node states.
+ * The root of a {@link Tree}.
  */
 public interface Root {
 
@@ -28,10 +28,10 @@ public interface Root {
      * at {@code destPath}. Do nothing if either the source
      * does not exist, the parent of the destination does not exist
      * or the destination exists already. Both paths must resolve
-     * to a child located in this branch.
+     * to a child located beneath this root.
      *
-     * @param sourcePath source path relative to this branch
-     * @param destPath destination path relative to this branch
+     * @param sourcePath source path relative to this root
+     * @param destPath destination path relative to this root
      * @return  {@code true} on success, {@code false} otherwise.
      */
     boolean move(String sourcePath, String destPath);
@@ -41,17 +41,17 @@ public interface Root {
      * at {@code destPath}. Do nothing if either the source
      * does not exist, the parent of the destination does not exist
      * or the destination exists already. Both paths must resolve
-     * to a child located in this branch.
+     * to a child located in this root.
      *
-     * @param sourcePath source path relative to this branch
-     * @param destPath destination path relative to this branch
+     * @param sourcePath source path relative to this root
+     * @param destPath destination path relative to this root
      * @return  {@code true} on success, {@code false} otherwise.
      */
     boolean copy(String sourcePath, String destPath);
 
     /**
      * Retrieve the {@code ContentTree} at the given {@code path}.
-     * The path must resolve to a content tree in this branch.
+     * The path must resolve to a content tree in this root.
      *
      * @param path path to the content tree
      * @return content tree at the given path or {@code null} if no
@@ -60,13 +60,17 @@ public interface Root {
     Tree getTree(String path);
 
     /**
-     * Refresh this content session to the latest revision of the underlying Microkernel.
+     * Refresh this root to the latest revision. After a call to this method,
+     * all trees obtained through {@link #getTree(String)} are invalid and fresh
+     * instances must be obtained.
      */
     void refresh();
 
     /**
-     * Atomically apply all changes in the passed {@code branch} to the underlying
-     * Microkernel.
+     * Atomically apply all changes made to the tree beneath this root to the
+     * underlying store and refreshes this root. After a call to this method,
+     * all trees obtained through {@link #getTree(String)} are invalid and fresh
+     * instances must be obtained.
      *
      * @throws CommitFailedException TODO: add description and clarify how JCR exception can be generated from this generic exception
      */

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentRepository.java Tue Apr 24 12:52:14 2012
@@ -89,7 +89,6 @@ public class KernelContentRepository imp
             throw new LoginException("login failed");
         }
 
-        // TODO set revision!?
         NodeState wspRoot = nodeStore.getRoot().getChildNode(workspaceName);
         if (wspRoot == null) {
             throw new NoSuchWorkspaceException(workspaceName);

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentSession.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentSession.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentSession.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/KernelContentSession.java Tue Apr 24 12:52:14 2012
@@ -31,8 +31,7 @@ import javax.jcr.SimpleCredentials;
 import java.io.IOException;
 
 /**
- * {@link MicroKernel}-based implementation of
- * the {@link ContentSession} interface.
+ * {@link MicroKernel}-based implementation of the {@link ContentSession} interface.
  */
 class KernelContentSession implements ContentSession {
 
@@ -46,9 +45,8 @@ class KernelContentSession implements Co
     private final QueryEngine queryEngine;
     private final CoreValueFactory valueFactory;
 
-    public KernelContentSession(
-            SimpleCredentials credentials, String workspaceName, NodeStore store,
-            QueryEngine queryEngine, CoreValueFactory valueFactory) {
+    public KernelContentSession(SimpleCredentials credentials, String workspaceName,
+            NodeStore store, QueryEngine queryEngine, CoreValueFactory valueFactory) {
 
         this.credentials = credentials;
         this.workspaceName = workspaceName;

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelRoot.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelRoot.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelRoot.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelRoot.java Tue Apr 24 12:52:14 2012
@@ -34,10 +34,8 @@ import static org.apache.jackrabbit.mk.u
 import static org.apache.jackrabbit.mk.util.PathUtils.getParentPath;
 
 /**
- * TODO update javadoc
- * This {@code Branch} implementation accumulates all changes into a json diff
- * and applies them to the microkernel on
- * {@link NodeStore#merge(org.apache.jackrabbit.oak.api.Root)}
+ * This {@code Root} implementation accumulates all changes into a json diff
+ * and applies them to the microkernel on {@link #commit()}
  *
  * TODO: review/rewrite when OAK-45 is resolved
  * When the MicroKernel has support for branching and merging private working copies,
@@ -52,13 +50,13 @@ public class KernelRoot implements Root 
     private final NodeStore store;
     private final String workspaceName;
 
-    /** Base node state of this private branch */
+    /** Base node state of this tree */
     private KernelNodeState base;
 
-    /** Root state of this branch */
+    /** Root state of tree */
     private KernelTree root;
 
-    /** Log of changes to this branch */
+    /** Log of changes to tree */
     private ChangeLog changeLog = new ChangeLog();
 
 
@@ -108,7 +106,6 @@ public class KernelRoot implements Root 
 
     @Override
     public void commit() throws CommitFailedException {
-        // TODO implicit refresh, doc in contract
         MicroKernel kernel = ((KernelNodeStore) store).kernel;  // FIXME don't cast to implementation
         try {
             mergeInto(kernel, base);
@@ -122,7 +119,7 @@ public class KernelRoot implements Root 
 
     //------------------------------------------------------------< internal >---
     /**
-     * Return the base node state of this private branch
+     * Return the base node state of this tree
      * @return base node state
      */
     NodeState getBaseNodeState() {
@@ -130,8 +127,7 @@ public class KernelRoot implements Root 
     }
 
     /**
-     * Atomically merges the changes from this branch back into the
-     * {@code target}.
+     * Atomically merges the changes from this tree back into the {@code target}.
      *
      * @param microkernel Microkernel instance for applying the changes
      * @param target target of the merge operation
@@ -202,7 +198,7 @@ public class KernelRoot implements Root 
 
     /**
      * This {@code Listener} implementation records all changes to
-     * a associated branch as JSOP.
+     * a associated tree as JSOP.
      */
     private static class ChangeLog implements Listener {
         private final StringBuilder jsop = new StringBuilder();

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelTree.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/KernelTree.java Tue Apr 24 12:52:14 2012
@@ -135,7 +135,7 @@ public class KernelTree implements Tree 
     }
 
     /**
-     * Create a new instance representing the root of a branch.
+     * Create a new instance representing the root of a tree
      * @param persistentState  underlying persistent state
      * @param listener  change listener
      */

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStore.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/kernel/NodeStore.java Tue Apr 24 12:52:14 2012
@@ -20,10 +20,6 @@ package org.apache.jackrabbit.oak.kernel
  * TODO update javadoc
  * Storage abstraction for content trees. At any given point in time
  * the stored content tree is rooted at a single immutable node state.
- * Changes in the tree are constructed by branching off a private copy
- * using the {@link #branch(NodeState)} method which can be modified
- * and merged back using the {@link #merge(org.apache.jackrabbit.oak.api.Root)}
- * method.
  * <p>
  * This is a low-level interface that doesn't cover functionality like
  * merging concurrent changes or rejecting new tree states based on some

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelRootTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelRootTest.java?rev=1329685&r1=1329684&r2=1329685&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelRootTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/kernel/KernelRootTest.java Tue Apr 24 12:52:14 2012
@@ -60,6 +60,7 @@ public class KernelRootTest {
     public void getChild() {
         KernelRoot branch = new KernelRoot(store, "test");
         Tree root = branch.getTree("/");
+
         Tree child = root.getChild("any");
         assertNull(child);