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/03/29 13:25:25 UTC

svn commit: r1306786 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java

Author: mduerig
Date: Thu Mar 29 11:25:25 2012
New Revision: 1306786

URL: http://svn.apache.org/viewvc?rev=1306786&view=rev
Log:
OAK-18: Define Oak API
add method to acquire a repository connection

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java?rev=1306786&r1=1306785&r2=1306786&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Connection.java Thu Mar 29 11:25:25 2012
@@ -41,7 +41,12 @@ import java.io.Closeable;
  *   hold the state of the persistent layer at a given revision without any
  *   session-related state modifications.
  *
- * TODO: define whether this is a repository-level connection or just bound to a single workspace.
+ * - Whether this connection is bound to a workspace or to the whole repository
+ *   is determined by how the connection was acquired: connections acquired by
+ *   {@link RepositoryService#login(Object, String)} are bound to the workspace
+ *   passed to the login method. Connections acquired by
+ *   {@link Connection#getRepositoryConnection()} are bound to the whole repository.
+ *
  * TODO: describe how this interface is intended to handle validation: nt, names, ac, constraints...
  */
 public interface Connection extends Closeable {
@@ -57,7 +62,7 @@ public interface Connection extends Clos
     AuthInfo getAuthInfo();
 
     /**
-     * The immutable name of the workspace this {@code SessionInfo} instance has
+     * The immutable name of the workspace this {@code Connection} instance has
      * been created for. If no workspace name has been specified during
      * repository login this method will return the name of the default
      * workspace.
@@ -66,6 +71,15 @@ public interface Connection extends Clos
      */
     String getWorkspaceName();
 
+    /**
+     * Provide access to the whole repository (i.e. all workspaces) respecting
+     * the access rights of the current connection. This method returns the
+     * same connection instance on every invocation.
+     *
+     * @return a {@code Connection} which covers the whole repository.
+     */
+    Connection getRepositoryConnection();
+
     NodeState getCurrentRoot();
 
     NodeState commit(NodeState newRoot) throws CommitFailedException;