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 al...@apache.org on 2016/07/13 11:47:22 UTC
svn commit: r1752400 - 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: alexparvulescu
Date: Wed Jul 13 11:47:22 2016
New Revision: 1752400
URL: http://svn.apache.org/viewvc?rev=1752400&view=rev
Log:
OAK-3404 Path to logical store mapping
- refactored mount api
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java (with props)
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/plugins/multiplex/MountInfoProviderService.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProvider.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/MountInfoProvider.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/package-info.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderServiceTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProviderTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProviderTest.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=1752400&r1=1752399&r2=1752400&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 13 11:47:22 2016
@@ -29,10 +29,11 @@ import com.google.common.collect.Iterabl
import org.apache.jackrabbit.oak.spi.mount.Mount;
+import static com.google.common.base.Preconditions.checkNotNull;
import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor;
-final class MountInfo {
-
+final class MountInfo implements Mount {
+
private static final Function<String, String> SANITIZE_PATH = new Function<String,String>() {
@Override
public String apply(String input) {
@@ -42,23 +43,25 @@ final class MountInfo {
return input;
}
};
-
- private final Mount mount;
+
+ private final String name;
+ private final boolean readOnly;
+ private final boolean defaultMount;
+ private final String pathFragmentName;
private final List<String> includedPaths;
- public MountInfo(Mount mount, List<String> includedPaths){
- this.mount = mount;
+ public MountInfo(String name, boolean readOnly, boolean defaultMount,
+ List<String> includedPaths) {
+ this.name = checkNotNull(name, "Mount name must not be null");
+ this.readOnly = readOnly;
+ this.defaultMount = defaultMount;
+ this.pathFragmentName = "oak:" + name;
this.includedPaths = cleanCopy(includedPaths);
}
- public Mount getMount() {
- return mount;
- }
-
+ @Override
public boolean isUnder(String path) {
-
path = SANITIZE_PATH.apply(path);
-
for (String includedPath : includedPaths) {
if (isAncestor(path, includedPath)) {
return true;
@@ -68,9 +71,9 @@ final class MountInfo {
return false;
}
- public boolean isMounted(String path){
-
- if (path.contains(mount.getPathFragmentName())){
+ @Override
+ public boolean isMounted(String path) {
+ if (path.contains(pathFragmentName)){
return true;
}
@@ -87,18 +90,57 @@ final class MountInfo {
}
@Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ @Override
+ public boolean isDefault() {
+ return defaultMount;
+ }
+
+ @Override
+ public String getPathFragmentName() {
+ return pathFragmentName;
+ }
+
+ private static ImmutableList<String> cleanCopy(List<String> includedPaths) {
+ // ensure that paths don't have trailing slashes - this triggers an assertion in PahtUtils isAncestor
+ return ImmutableList.copyOf(Iterables.transform(includedPaths, SANITIZE_PATH));
+ }
+
+ @Override
public String toString() {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
- pw.print(mount);
+ String readAttr = readOnly ? "r" : "rw";
+ String displayName = defaultMount ? "default" : name;
+ pw.print(displayName + "(" + readAttr + ")");
for (String path : includedPaths) {
pw.printf("\t%s%n", path);
}
return sw.toString();
}
-
- private ImmutableList<String> cleanCopy(List<String> includedPaths) {
- // ensure that paths don't have trailing slashes - this triggers an assertion in PahtUtils isAncestor
- return ImmutableList.copyOf(Iterables.transform(includedPaths, SANITIZE_PATH));
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ MountInfo other = (MountInfo) obj;
+ return name.equals(other.name);
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderService.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderService.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderService.java Wed Jul 13 11:47:22 2016
@@ -32,6 +32,7 @@ import org.apache.felix.scr.annotations.
import org.apache.jackrabbit.oak.commons.PropertiesUtil;
import org.apache.jackrabbit.oak.spi.mount.Mount;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
+import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
import org.slf4j.Logger;
@@ -72,14 +73,13 @@ public class MountInfoProviderService {
String mountName = PropertiesUtil.toString(config.get(PROP_MOUNT_NAME), PROP_MOUNT_NAME_DEFAULT);
boolean readOnly = PropertiesUtil.toBoolean(config.get(PROP_MOUNT_READONLY), PROP_MOUNT_READONLY_DEFAULT);
- MountInfoProvider mip = MountInfoProvider.DEFAULT;
- if (paths != null){
- Mount mount = new Mount(mountName.trim(), readOnly);
+ MountInfoProvider mip = Mounts.defaultMountInfoProvider();
+ if (paths != null) {
List<String> trimmedPaths = new ArrayList<String>(paths.length);
- for (String path : paths){
+ for (String path : paths) {
trimmedPaths.add(path.trim());
}
- MountInfo mi = new MountInfo(mount, trimmedPaths);
+ Mount mi = new MountInfo(mountName.trim(), readOnly, false, trimmedPaths);
mip = new SimpleMountInfoProvider(Collections.singletonList(mi));
log.info("Enabling mount for {}", mi);
} else {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProvider.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProvider.java Wed Jul 13 11:47:22 2016
@@ -24,6 +24,7 @@ import org.apache.jackrabbit.oak.commons
import org.apache.jackrabbit.oak.spi.commit.*;
import org.apache.jackrabbit.oak.spi.mount.Mount;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
+import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.state.NodeState;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
@@ -50,7 +51,7 @@ public class PrivateStoreValidatorProvid
private boolean failOnDetection;
@Reference
- private MountInfoProvider mountInfoProvider = MountInfoProvider.DEFAULT;
+ private MountInfoProvider mountInfoProvider = Mounts.defaultMountInfoProvider();
private ServiceRegistration serviceRegistration;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProvider.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProvider.java Wed Jul 13 11:47:22 2016
@@ -23,38 +23,39 @@ import java.util.Collection;
import java.util.List;
import java.util.Map;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.jackrabbit.oak.spi.mount.Mount;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
+import org.apache.jackrabbit.oak.spi.mount.Mounts;
import static java.util.Arrays.asList;
/**
- * A simple and inefficient implementation to manage mountpoints
+ * A simple and inefficient implementation to manage mount points
*/
public class SimpleMountInfoProvider implements MountInfoProvider {
- private final List<MountInfo> mountInfos;
+
private final Map<String, Mount> mounts;
+ private final Mount defMount;
private final boolean hasMounts;
- public SimpleMountInfoProvider(List<MountInfo> mountInfos){
- this.mountInfos = ImmutableList.copyOf(mountInfos);
+ public SimpleMountInfoProvider(List<Mount> mountInfos) {
this.mounts = getMounts(mountInfos);
- this.hasMounts = !mountInfos.isEmpty();
+ this.hasMounts = !this.mounts.isEmpty();
+ this.defMount = defaultMount(this.mounts);
//TODO add validation of mountpoints
}
@Override
public Mount getMountByPath(String path) {
- for (MountInfo md : mountInfos){
- if (md.isMounted(path)){
- return md.getMount();
+ for (Mount m : mounts.values()){
+ if (m.isMounted(path)){
+ return m;
}
}
- return Mount.DEFAULT;
+ return defMount;
}
@Override
@@ -72,18 +73,22 @@ public class SimpleMountInfoProvider imp
return hasMounts;
}
-
@Override
public Collection<Mount> getMountsPlacedUnder(String path) {
Collection<Mount> mounts = Lists.newArrayList();
- for ( MountInfo mount : mountInfos ) {
+ for ( Mount mount : this.mounts.values()) {
if ( mount.isUnder(path) ) {
- mounts.add(mount.getMount());
+ mounts.add(mount);
}
}
return mounts;
}
+ @Override
+ public Mount getDefaultMount() {
+ return defMount;
+ }
+
//~----------------------------------------< builder >
public static Builder newBuilder(){
@@ -91,15 +96,15 @@ public class SimpleMountInfoProvider imp
}
public static final class Builder {
- private final List<MountInfo> mounts = Lists.newArrayListWithCapacity(1);
+ private final List<Mount> mounts = Lists.newArrayListWithCapacity(1);
public Builder mount(String name, String... paths) {
- mounts.add(new MountInfo(new Mount(name), asList(paths)));
+ mounts.add(new MountInfo(name, false, false, asList(paths)));
return this;
}
public Builder readOnlyMount(String name, String... paths) {
- mounts.add(new MountInfo(new Mount(name, true), asList(paths)));
+ mounts.add(new MountInfo(name, true, false, asList(paths)));
return this;
}
@@ -110,12 +115,16 @@ public class SimpleMountInfoProvider imp
//~----------------------------------------< private >
- private static Map<String, Mount> getMounts(List<MountInfo> mountInfos) {
+ private static Map<String, Mount> getMounts(List<Mount> mountInfos) {
Map<String, Mount> mounts = Maps.newHashMap();
- for (MountInfo mi : mountInfos){
- mounts.put(mi.getMount().getName(), mi.getMount());
+ for (Mount mi : mountInfos) {
+ mounts.put(mi.getName(), mi);
}
return ImmutableMap.copyOf(mounts);
}
+ private static Mount defaultMount(Map<String, Mount> mounts) {
+ return Mounts.defaultMount(mounts.values());
+ }
+
}
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=1752400&r1=1752399&r2=1752400&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 13 11:47:22 2016
@@ -19,74 +19,17 @@
package org.apache.jackrabbit.oak.spi.mount;
-import static com.google.common.base.Preconditions.checkNotNull;
+public interface Mount {
-public final class Mount {
- /**
- * Default Mount info which indicates that no explicit mount
- * is created for given path
- */
- public static final Mount DEFAULT = new Mount("", false, true);
-
- private final String name;
- private final boolean readOnly;
- private final boolean defaultMount;
- private final String pathFragmentName;
-
- public Mount(String name){
- this(name, false);
- }
-
- public Mount(String name, boolean readOnly) {
- this(name, readOnly, false);
- }
-
- private Mount(String name, boolean readOnly, boolean defaultMount){
- this.name = checkNotNull(name, "Mount name must not be null");
- this.readOnly = readOnly;
- this.defaultMount = defaultMount;
- this.pathFragmentName = "oak:" + name;
- }
-
- public String getName() {
- return name;
- }
-
- public boolean isReadOnly() {
- return readOnly;
- }
-
- public boolean isDefault(){
- return defaultMount;
- }
-
- /**
- * Decorated mount name which is meant to be used for constructing path
- * which should become part of given mount
- */
- public String getPathFragmentName() {
- return pathFragmentName;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- Mount mount = (Mount) o;
-
- return name.equals(mount.name);
- }
-
- @Override
- public int hashCode() {
- return name.hashCode();
- }
-
- @Override
- public String toString() {
- String readAttr = readOnly ? "r" : "rw";
- String displayName = defaultMount ? "default" : name;
- return displayName + "(" + readAttr + ")";
- }
+ String getName();
+
+ boolean isReadOnly();
+
+ public boolean isDefault();
+
+ String getPathFragmentName();
+
+ boolean isMounted(String path);
+
+ boolean isUnder(String path);
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfoProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfoProvider.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfoProvider.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfoProvider.java Wed Jul 13 11:47:22 2016
@@ -20,36 +20,11 @@
package org.apache.jackrabbit.oak.spi.mount;
import java.util.Collection;
-import java.util.Collections;
import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
public interface MountInfoProvider {
- MountInfoProvider DEFAULT = new MountInfoProvider() {
- @Override
- public Mount getMountByPath(String path) {
- return Mount.DEFAULT;
- }
-
- @Override
- public Collection<Mount> getNonDefaultMounts() {
- return Collections.emptySet();
- }
-
- @Override
- public Mount getMountByName(String name) {
- return null;
- }
-
- @Override
- public boolean hasNonDefaultMounts() {
- return false;
- }
-
- public Collection<Mount> getMountsPlacedUnder(String path) {
- return Collections.emptySet();
- };
- };
/**
* Maps a given path to logical store name.
@@ -58,11 +33,13 @@ public interface MountInfoProvider {
* @return mountInfo for the given path. If no explicit mount configured then
* default mount would be returned
*/
+ @Nonnull
Mount getMountByPath(String path);
/**
* Set of non default mount points configured for the setup
*/
+ @Nonnull
Collection<Mount> getNonDefaultMounts();
/**
@@ -79,12 +56,19 @@ public interface MountInfoProvider {
* Return true if there are explicit mounts configured
*/
boolean hasNonDefaultMounts();
-
+
/**
* Returns all mounts placed under the specified path
*
* @param path the path under which mounts are to be found
* @return a collection of mounts, possibly empty
*/
- Collection<Mount> getMountsPlacedUnder(String path);
+ @Nonnull
+ Collection<Mount> getMountsPlacedUnder(String path);
+
+ /**
+ * Returns the default mount
+ */
+ @Nonnull
+ Mount getDefaultMount();
}
Added: 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=1752400&view=auto
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java (added)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java Wed Jul 13 11:47:22 2016
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.jackrabbit.oak.spi.mount;
+
+import java.util.Collection;
+import java.util.Collections;
+
+public final class Mounts {
+
+ private Mounts() {
+ }
+
+ static final MountInfoProvider DEFAULT_PROVIDER = new MountInfoProvider() {
+ @Override
+ public Mount getMountByPath(String path) {
+ return DEFAULT_MOUNT;
+ }
+
+ @Override
+ public Collection<Mount> getNonDefaultMounts() {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public Mount getMountByName(String name) {
+ return DEFAULT_MOUNT.getName().equals(name) ? DEFAULT_MOUNT : null;
+ }
+
+ @Override
+ public boolean hasNonDefaultMounts() {
+ return false;
+ }
+
+ @Override
+ public Collection<Mount> getMountsPlacedUnder(String path) {
+ return Collections.emptySet();
+ }
+
+ @Override
+ public Mount getDefaultMount() {
+ return DEFAULT_MOUNT;
+ }
+ };
+
+ /**
+ * Default Mount info which indicates that no explicit mount is created for
+ * given path
+ */
+ private static Mount DEFAULT_MOUNT = new DefaultMount();
+
+ static final class DefaultMount implements Mount {
+
+ private final Collection<Mount> mounts;
+
+ DefaultMount() {
+ this(Collections.<Mount> emptySet());
+ }
+
+ DefaultMount(Collection<Mount> mounts) {
+ this.mounts = mounts;
+ }
+
+ @Override
+ public String getName() {
+ return "";
+ }
+
+ @Override
+ public boolean isReadOnly() {
+ return false;
+ }
+
+ @Override
+ public boolean isDefault() {
+ return true;
+ }
+
+ @Override
+ public String getPathFragmentName() {
+ return "oak:";
+ }
+
+ @Override
+ public boolean isMounted(String path) {
+ for (Mount m : mounts) {
+ if (m.isMounted(path)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public boolean isUnder(String path) {
+ for (Mount m : mounts) {
+ if (m.isMounted(path)) {
+ return false;
+ }
+ }
+ return true;
+ }
+ };
+
+ public static MountInfoProvider defaultMountInfoProvider() {
+ return DEFAULT_PROVIDER;
+ }
+
+ public static Mount defaultMount() {
+ return DEFAULT_MOUNT;
+ }
+
+ public static Mount defaultMount(Collection<Mount> mounts) {
+ return new DefaultMount(mounts);
+ }
+}
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/Mounts.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/package-info.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/mount/package-info.java Wed Jul 13 11:47:22 2016
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-@Version("1.0.0")
+@Version("2.0.0")
@Export(optional = "provide:=true")
package org.apache.jackrabbit.oak.spi.mount;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderServiceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderServiceTest.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderServiceTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/MountInfoProviderServiceTest.java Wed Jul 13 11:47:22 2016
@@ -22,6 +22,7 @@ package org.apache.jackrabbit.oak.plugin
import java.util.Collections;
import com.google.common.collect.ImmutableMap;
+
import org.apache.jackrabbit.oak.spi.mount.Mount;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
import org.apache.sling.testing.mock.osgi.MockOsgi;
@@ -29,6 +30,7 @@ import org.apache.sling.testing.mock.osg
import org.junit.Rule;
import org.junit.Test;
+import static org.apache.jackrabbit.oak.spi.mount.Mounts.defaultMountInfoProvider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -47,7 +49,7 @@ public class MountInfoProviderServiceTes
MountInfoProvider provider = context.getService(MountInfoProvider.class);
assertNotNull(provider);
- assertEquals(MountInfoProvider.DEFAULT, provider);
+ assertEquals(defaultMountInfoProvider(), provider);
MockOsgi.deactivate(service);
assertNull(context.getService(MountInfoProvider.class));
@@ -63,9 +65,11 @@ public class MountInfoProviderServiceTes
Mount m = provider.getMountByName(MountInfoProviderService.PROP_MOUNT_NAME_DEFAULT);
assertNotNull(m);
+ Mount defMount = provider.getDefaultMount();
+ assertNotNull(defMount);
assertFalse(m.isReadOnly());
assertEquals(m, provider.getMountByPath("/a"));
- assertEquals(Mount.DEFAULT, provider.getMountByPath("/x"));
+ assertEquals(defMount, provider.getMountByPath("/x"));
}
@Test
@@ -82,10 +86,12 @@ public class MountInfoProviderServiceTes
Mount m = provider.getMountByName(MountInfoProviderService.PROP_MOUNT_NAME_DEFAULT);
assertNull(m);
+ Mount defMount = provider.getDefaultMount();
+ assertNotNull(defMount);
m = provider.getMountByName("foo");
assertEquals(m, provider.getMountByPath("/a"));
- assertEquals(Mount.DEFAULT, provider.getMountByPath("/x"));
+ assertEquals(defMount, provider.getMountByPath("/x"));
assertTrue(m.isReadOnly());
}
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=1752400&r1=1752399&r2=1752400&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 13 11:47:22 2016
@@ -19,17 +19,17 @@
package org.apache.jackrabbit.oak.plugins.multiplex;
-import org.apache.jackrabbit.oak.spi.mount.Mount;
-import org.junit.Test;
-
import static com.google.common.collect.ImmutableList.of;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
public class MountInfoTest {
@Test
public void mountNameInPath() throws Exception{
- MountInfo md = new MountInfo(new Mount("foo"), of("/a", "/b"));
+ MountInfo md = new MountInfo("foo", false, false, of("/a", "/b"));
assertTrue(md.isMounted("/a"));
assertTrue(md.isMounted("/b"));
assertTrue(md.isMounted("/b/c/d"));
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProviderTest.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/PrivateStoreValidatorProviderTest.java Wed Jul 13 11:47:22 2016
@@ -29,6 +29,7 @@ import org.apache.jackrabbit.oak.api.Tre
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
import org.apache.jackrabbit.oak.spi.commit.EditorProvider;
import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider;
+import org.apache.jackrabbit.oak.spi.mount.Mounts;
import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider;
import org.apache.sling.testing.mock.osgi.MockOsgi;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
@@ -186,7 +187,7 @@ public class PrivateStoreValidatorProvid
}
private MountInfoProvider createMountInfoProvider(String... readOnlyPaths) {
- MountInfoProvider mountInfoProvider = MountInfoProvider.DEFAULT;
+ MountInfoProvider mountInfoProvider = Mounts.defaultMountInfoProvider();
if (readOnlyPaths.length > 0) {
mountInfoProvider = SimpleMountInfoProvider.newBuilder().readOnlyMount("readOnly", readOnlyPaths).build();
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProviderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProviderTest.java?rev=1752400&r1=1752399&r2=1752400&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProviderTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/multiplex/SimpleMountInfoProviderTest.java Wed Jul 13 11:47:22 2016
@@ -35,7 +35,7 @@ import static org.junit.Assert.assertTru
public class SimpleMountInfoProviderTest {
@Test
public void defaultMount() throws Exception {
- MountInfoProvider mip = new SimpleMountInfoProvider(Collections.<MountInfo>emptyList());
+ MountInfoProvider mip = new SimpleMountInfoProvider(Collections.<Mount>emptyList());
assertNotNull(mip.getMountByPath("/a"));
assertTrue(mip.getMountByPath("/a").isDefault());
@@ -65,7 +65,7 @@ public class SimpleMountInfoProviderTest
Collection<Mount> mounts = mip.getNonDefaultMounts();
assertEquals(2, mounts.size());
- assertFalse(mounts.contains(Mount.DEFAULT));
+ assertFalse(mounts.contains(mip.getDefaultMount()));
assertNotNull(mip.getMountByName("foo"));
assertNotNull(mip.getMountByName("bar"));