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-<mount name>'
+ *
+ * <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"));
}