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 ch...@apache.org on 2016/07/27 14:33:38 UTC

svn commit: r1754278 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/multiplex/ main/java/org/apache/jackrabbit/oak/spi/mount/ test/java/org/apache/jackrabbit/oak/plugins/multiplex/

Author: chetanm
Date: Wed Jul 27 14:33:38 2016
New Revision: 1754278

URL: http://svn.apache.org/viewvc?rev=1754278&view=rev
Log:
OAK-3404 - Path to logical store mapping

-- Update javadoc
-- pathFragmentName for default mount is now empty string
-- pathFragmentName have format oak:mount-<mount name>

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfo.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mount.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfo.java?rev=1754278&r1=1754277&r2=1754278&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfo.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfo.java Wed Jul 27 14:33:38 2016
@@ -55,7 +55,7 @@ final class MountInfo implements Mount {
         this.name = checkNotNull(name, "Mount name must not be null");
         this.readOnly = readOnly;
         this.defaultMount = defaultMount;
-        this.pathFragmentName = "oak:" + name;
+        this.pathFragmentName = "oak:mount-" + name;
         this.includedPaths = cleanCopy(includedPaths);
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mount.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mount.java?rev=1754278&r1=1754277&r2=1754278&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mount.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mount.java Wed Jul 27 14:33:38 2016
@@ -19,17 +19,77 @@
 
 package org.apache.jackrabbit.oak.spi.mount;
 
+/**
+ * A ContentRepository represents one big tree. A Mount
+ * refers to a set of paths in that tree which are possibly
+ * stored in a separate physical persistent stores. In a
+ * default setup all paths belong to a default Mount.
+ */
 public interface Mount {
-
+    /**
+     * Name of the mount. If this <code>Mount</code>
+     * is the default mount, an empty string is returned
+     */
     String getName();
 
+    /**
+     * Checks whether the mount is marked as read only.
+     *
+     * @return true if the mount is read only.
+     */
     boolean isReadOnly();
 
-    public boolean isDefault();
-
+    /**
+     * Checks whether current mount is the default mount.
+     * Default mount includes the root path and all other
+     * paths which are not part of any other mount
+     *
+     * @return true if this mount represents the
+     * default mount
+     */
+    boolean isDefault();
+
+    /**
+     * Returns fragment name which can be used to construct node name
+     * used for storing meta content belonging to path under this
+     * <code>Mount</code>. Such a node name would be used by NodeStore
+     * to determine the storage for nodes under those paths.
+     *
+     * <p>Fragment name  is formatted as 'oak:mount-&lt;mount name&gt;'
+     *
+     * <p>For e.g. for mount name 'private' the fragment name would be
+     * <code>oak:mount-private</code>. This can be then used to construct
+     * node name like <code>oak:mount-private-index</code> and then any derived
+     * content for path under this mount would be stored as child node under
+     * <i>oak:mount-private-index</i> like <code>/fooIndex/oak:mount-private-index/foo</code>.
+     * Such paths would then be stored in a separate store which would only be
+     * storing paths belonging to that mount
+     *
+     * <p>If this <code>Mount</code> is the default mount, an empty string is returned
+     *
+     * @return node name prefix which can be used
+     */
     String getPathFragmentName();
 
+    /**
+     * Checks if given path belongs to this <code>Mount</code>
+     *
+     * @param path path to check
+     * @return true if path belong to this mount
+     */
     boolean isMounted(String path);
 
+    /**
+     * Checks if this mount falls under given path. For e.g. if a
+     * mount consist of '/etc/config'. Then if path is
+     * <ul>
+     *     <li>/etc - Then it returns true</li>
+     *     <li>/etc/config - Then it returns false</li>
+     *     <li>/lib - Then it returns false</li>
+     * </ul>
+     *
+     * @param path path to check
+     * @return true if this Mount is rooted under given path
+     */
     boolean isUnder(String path);
 }

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java?rev=1754278&r1=1754277&r2=1754278&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java Wed Jul 27 14:33:38 2016
@@ -94,7 +94,7 @@ public final class Mounts {
 
         @Override
         public String getPathFragmentName() {
-            return "oak:";
+            return "";
         }
 
         @Override
@@ -116,7 +116,7 @@ public final class Mounts {
             }
             return true;
         }
-    };
+    }
 
     public static MountInfoProvider defaultMountInfoProvider() {
         return DEFAULT_PROVIDER;

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java?rev=1754278&r1=1754277&r2=1754278&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java Wed Jul 27 14:33:38 2016
@@ -33,7 +33,7 @@ public class MountInfoTest {
         assertTrue(md.isMounted("/a"));
         assertTrue(md.isMounted("/b"));
         assertTrue(md.isMounted("/b/c/d"));
-        assertTrue("dynamic mount path not recognized", md.isMounted("/x/y/oak:foo/a"));
+        assertTrue("dynamic mount path not recognized", md.isMounted("/x/y/oak:mount-foo/a"));
         assertFalse(md.isMounted("/x/y"));
         assertFalse(md.isMounted("/x/y/foo"));
     }