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 2013/05/02 17:06:19 UTC
svn commit: r1478403 - 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/security/authorization/
main/java/org/apache/jackrabbit/oak/security/au...
Author: mduerig
Date: Thu May 2 15:06:19 2013
New Revision: 1478403
URL: http://svn.apache.org/r1478403
Log:
OAK-798: Review / refactor TreeImpl and related classes
- Remove TreeLocation from API and replace usages with utility class
Added:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java (contents, props changed)
- copied, changed from r1478402, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocations.java
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/TreeLocation.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocations.java
Modified:
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/api/Tree.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlContext.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContext.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizablePropertiesImpl.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserContext.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/Context.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java
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=1478403&r1=1478402&r2=1478403&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 Thu May 2 15:06:19 2013
@@ -89,16 +89,6 @@ public interface Root {
Tree getTree(@Nonnull String path);
/**
- * Get a tree location for a given absolute {@code path}
- * @param path absolute path to the location
- * @return the tree location for {@code path}
- * @deprecated use {@link #getTree(String)}
- */
- @Nonnull
- @Deprecated
- TreeLocation getLocation(String path);
-
- /**
* Rebase this root instance to the latest revision. After a call to this method,
* trees obtained through {@link #getTree(String)} may become non existing.
*/
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java Thu May 2 15:06:19 2013
@@ -140,13 +140,6 @@ public interface Tree {
boolean exists();
/**
- * @return the current location
- */
- @Nonnull
- @Deprecated
- TreeLocation getLocation();
-
- /**
* @return the possibly non existent parent of this {@code Tree}.
* @throws IllegalStateException if called on the root tree.
*/
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableRoot.java Thu May 2 15:06:19 2013
@@ -27,7 +27,6 @@ import org.apache.jackrabbit.oak.api.Blo
import org.apache.jackrabbit.oak.api.ContentSession;
import org.apache.jackrabbit.oak.api.QueryEngine;
import org.apache.jackrabbit.oak.api.Root;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.spi.state.NodeState;
@@ -67,18 +66,6 @@ public final class ImmutableRoot impleme
return child;
}
- @Nonnull
- @Override
- @Deprecated
- public TreeLocation getLocation(String path) {
- checkArgument(PathUtils.isAbsolute(path));
- TreeLocation child = rootTree.getLocation();
- for (String name : elements(path)) {
- child = child.getChild(name);
- }
- return child;
- }
-
@Override
public boolean move(String sourcePath, String destPath) {
throw new UnsupportedOperationException();
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java Thu May 2 15:06:19 2013
@@ -46,10 +46,9 @@ import org.apache.jackrabbit.oak.spi.sta
* {@link #ImmutableTree(ImmutableTree, String, org.apache.jackrabbit.oak.spi.state.NodeState)}
* for every subsequent child state. Note, that this implementation will not
* perform any kind of validation of the passed state and methods like {@link #isRoot()},
- * {@link #getName()}, {@link #getPath()} or {@link #getLocation()} will just
- * make use of the hierarchy that has been create by that sequence.
- * In order to create a disconnected individual tree in cases where the hierarchy
- * information is not (yet) need or known it is suggested to use
+ * {@link #getName()} or {@link #getPath()} will just make use of the hierarchy that has been
+ * create by that sequence. In order to create a disconnected individual tree in cases where
+ * the hierarchy information is not (yet) need or known it is suggested to use
* {@link #ImmutableTree(org.apache.jackrabbit.oak.core.ImmutableTree.ParentProvider, String, org.apache.jackrabbit.oak.spi.state.NodeState)}
* an specify an appropriate {@code ParentProvider} implementation.
*
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/ReadOnlyTree.java Thu May 2 15:06:19 2013
@@ -31,7 +31,6 @@ import javax.annotation.Nullable;
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;
@@ -147,12 +146,6 @@ public class ReadOnlyTree implements Tre
}
@Override
- @Deprecated
- public TreeLocation getLocation() {
- return TreeLocations.create(this);
- }
-
- @Override
public boolean hasChild(@Nonnull String name) {
return state.hasChildNode(name);
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/RootImpl.java Thu May 2 15:06:19 2013
@@ -18,9 +18,7 @@
*/
package org.apache.jackrabbit.oak.core;
-import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
import static org.apache.jackrabbit.oak.commons.PathUtils.getName;
import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath;
@@ -42,7 +40,6 @@ import org.apache.jackrabbit.oak.api.Con
import org.apache.jackrabbit.oak.api.QueryEngine;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.plugins.index.diffindex.UUIDDiffIndexProviderWrapper;
import org.apache.jackrabbit.oak.query.QueryEngineImpl;
@@ -211,18 +208,6 @@ public class RootImpl implements Root {
}
@Override
- @Deprecated
- public TreeLocation getLocation(String path) {
- checkArgument(PathUtils.isAbsolute(path));
- checkLive();
- TreeLocation child = rootTree.getLocation();
- for (String name : elements(path)) {
- child = child.getChild(name);
- }
- return child;
- }
-
- @Override
public void rebase() {
checkLive();
if (!store.getRoot().equals(getBaseState())) {
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeImpl.java Thu May 2 15:06:19 2013
@@ -47,7 +47,6 @@ import com.google.common.collect.Iterabl
import com.google.common.collect.Sets;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.core.RootImpl.Move;
@@ -134,13 +133,6 @@ public class TreeImpl implements Tree {
}
@Override
- @Deprecated
- public TreeLocation getLocation() {
- enter();
- return TreeLocations.create(this);
- }
-
- @Override
public boolean exists() {
return enter();
}
Copied: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java (from r1478402, jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocations.java)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java?p2=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java&p1=jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocations.java&r1=1478402&r2=1478403&rev=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocations.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java Thu May 2 15:06:19 2013
@@ -23,16 +23,26 @@ import static com.google.common.base.Pre
import static org.apache.jackrabbit.oak.commons.PathUtils.elements;
import static org.apache.jackrabbit.oak.commons.PathUtils.isAbsolute;
+import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
-@Deprecated
-public abstract class TreeLocations implements TreeLocation {
+/**
+ * A {@code TreeLocation} denotes a location inside a tree.
+ * <p>
+ * It can either refer to a inner node (that is a {@link Tree}), to a leaf (that is a
+ * {@link PropertyState}) or to an invalid location which refers to neither of the former.
+ * {@code TreeLocation} instances provide methods for navigating trees such that navigation
+ * always results in new {@code TreeLocation} instances. Navigation never fails. Errors are
+ * deferred until the underlying item itself is accessed. That is, if a {@code TreeLocation}
+ * points to an item which does not exist or is unavailable otherwise (i.e. due to access
+ * control restrictions) accessing the tree will return {@code null} at this point.
+ */
+public abstract class TreeLocation {
/**
* Create a new {@code TreeLocation} instance for a {@code tree}
@@ -61,23 +71,60 @@ public abstract class TreeLocations impl
return create(root, "/");
}
- @Override
+ /**
+ * Navigate to the parent or an invalid location for the root of the hierarchy.
+ * @return a {@code TreeLocation} for the parent of this location.
+ */
+ @Nonnull
+ public abstract TreeLocation getParent();
+
+ /**
+ * Determine whether the underlying {@link org.apache.jackrabbit.oak.api.Tree} or
+ * {@link org.apache.jackrabbit.oak.api.PropertyState} for this {@code TreeLocation}
+ * is available.
+ * @return {@code true} if the underlying item is available and has not been disconnected.
+ * @see org.apache.jackrabbit.oak.api.Tree#exists()
+ */
+ public abstract boolean exists();
+
+ /**
+ * The path of this location
+ * @return path
+ */
+ @Nonnull
+ public abstract String getPath();
+
+ /**
+ * Remove the underlying item.
+ *
+ * @return {@code true} if the item was removed, {@code false} otherwise.
+ */
+ public abstract boolean remove();
+
+ /**
+ * Navigate to a child of the given {@code name}.
+ * @param name name of the child
+ * @return this default implementation return a non existing location
+ */
+ @Nonnull
public TreeLocation getChild(String name) {
return new NullLocation(this, name);
}
/**
- * @return {@code null}
+ * Get the underlying {@link org.apache.jackrabbit.oak.api.Tree} for this {@code TreeLocation}.
+ * @return this default implementation return {@code null}.
*/
- @Override
+ @CheckForNull
public Tree getTree() {
return null;
}
/**
- * @return {@code null}
+ * Get the underlying {@link org.apache.jackrabbit.oak.api.PropertyState} for this {@code TreeLocation}.
+ * @return this default implementation return {@code null}.
*/
- @Override
+ @CheckForNull
public PropertyState getProperty() {
return null;
}
@@ -91,7 +138,7 @@ public abstract class TreeLocations impl
* This {@code TreeLocation} refers to child tree in a
* {@code Tree}.
*/
- private static class NodeLocation extends TreeLocations {
+ private static class NodeLocation extends TreeLocation {
private final Tree tree;
public NodeLocation(Tree tree) {
@@ -142,7 +189,7 @@ public abstract class TreeLocations impl
* This {@code TreeLocation} refers to property in a
* {@code Tree}.
*/
- private static class PropertyLocation extends TreeLocations {
+ private static class PropertyLocation extends TreeLocation {
private final Tree parent;
private final String name;
@@ -184,7 +231,7 @@ public abstract class TreeLocations impl
* This {@code TreeLocation} refers to an invalid location in a tree. That is
* to a location where no item resides.
*/
- private static final class NullLocation extends TreeLocations {
+ private static final class NullLocation extends TreeLocation {
public static final NullLocation NULL = new NullLocation();
private final TreeLocation parent;
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/core/TreeLocation.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev URL
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlContext.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlContext.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AccessControlContext.java Thu May 2 15:06:19 2013
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.securi
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.security.authorization.permission.PermissionConstants;
import org.apache.jackrabbit.oak.spi.security.Context;
import org.apache.jackrabbit.oak.util.TreeUtil;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java Thu May 2 15:06:19 2013
@@ -29,7 +29,7 @@ import org.apache.jackrabbit.JcrConstant
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.core.ImmutableRoot;
@@ -156,7 +156,7 @@ public class PermissionProviderImpl impl
@Override
public boolean isGranted(@Nonnull String oakPath, @Nonnull String jcrActions) {
- TreeLocation location = getImmutableRoot().getLocation(oakPath);
+ TreeLocation location = TreeLocation.create(getImmutableRoot(), oakPath);
boolean isAcContent = acConfig.getContext().definesLocation(location);
long permissions = Permissions.getPermissions(jcrActions, location, isAcContent);
@@ -260,7 +260,7 @@ public class PermissionProviderImpl impl
log.debug("Unable to determine versionable path of the version store node.");
return null;
} else {
- return getImmutableRoot().getLocation(versionablePath);
+ return TreeLocation.create(getImmutableRoot(), versionablePath);
}
}
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContext.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContext.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContext.java Thu May 2 15:06:19 2013
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.securi
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.spi.security.Context;
import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants;
import org.apache.jackrabbit.oak.util.TreeUtil;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizablePropertiesImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizablePropertiesImpl.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizablePropertiesImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizablePropertiesImpl.java Thu May 2 15:06:19 2013
@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.jcr.RepositoryException;
@@ -30,7 +31,7 @@ import javax.jcr.nodetype.PropertyDefini
import org.apache.jackrabbit.JcrConstants;
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.commons.PathUtils;
import org.apache.jackrabbit.oak.namepath.NamePathMapper;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
@@ -291,9 +292,8 @@ class AuthorizablePropertiesImpl impleme
}
@Nonnull
- @Deprecated
private static TreeLocation getLocation(Tree tree, String relativePath) {
- TreeLocation loc = tree.getLocation();
+ TreeLocation loc = TreeLocation.create(tree);
for (String element : Text.explode(relativePath, '/', false)) {
if (PathUtils.denotesParent(element)) {
loc = loc.getParent();
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserContext.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserContext.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserContext.java Thu May 2 15:06:19 2013
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.securi
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.spi.security.Context;
import org.apache.jackrabbit.oak.spi.security.user.UserConstants;
import org.apache.jackrabbit.oak.util.TreeUtil;
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/Context.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/Context.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/Context.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/Context.java Thu May 2 15:06:19 2013
@@ -18,7 +18,7 @@ package org.apache.jackrabbit.oak.spi.se
import org.apache.jackrabbit.oak.api.PropertyState;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
/**
* Context... TODO
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/permission/Permissions.java Thu May 2 15:06:19 2013
@@ -25,7 +25,7 @@ import javax.annotation.Nullable;
import javax.jcr.Session;
import com.google.common.collect.ImmutableSet;
-import org.apache.jackrabbit.oak.api.TreeLocation;
+import org.apache.jackrabbit.oak.core.TreeLocation;
import org.apache.jackrabbit.oak.plugins.name.NamespaceConstants;
import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants;
import org.apache.jackrabbit.oak.plugins.version.VersionConstants;
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java?rev=1478403&r1=1478402&r2=1478403&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/core/TreeLocationTest.java Thu May 2 15:06:19 2013
@@ -27,7 +27,6 @@ import org.apache.jackrabbit.oak.api.Com
import org.apache.jackrabbit.oak.api.ContentSession;
import org.apache.jackrabbit.oak.api.Root;
import org.apache.jackrabbit.oak.api.Tree;
-import org.apache.jackrabbit.oak.api.TreeLocation;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -53,7 +52,7 @@ public class TreeLocationTest extends Oa
tree.addChild("z").addChild("1").addChild("2").setProperty("p", "v");
root.commit();
- nullLocation = root.getLocation("/").getParent();
+ nullLocation = TreeLocation.create(root).getParent();
}
@After
@@ -72,13 +71,13 @@ public class TreeLocationTest extends Oa
@Test
public void testParentOfRoot() {
- TreeLocation rootLocation = root.getLocation("/");
+ TreeLocation rootLocation = TreeLocation.create(root);
assertEquals(nullLocation, rootLocation.getParent());
}
@Test
public void testNodeLocation() {
- TreeLocation x = root.getLocation("/x");
+ TreeLocation x = TreeLocation.create(root, "/x");
assertNotNull(x.getTree());
TreeLocation xyz = x.getChild("y").getChild("z");
@@ -94,7 +93,7 @@ public class TreeLocationTest extends Oa
@Test
public void testPropertyLocation() {
- TreeLocation a = root.getLocation("/a");
+ TreeLocation a = TreeLocation.create(root, "/a");
assertNotNull(a.getProperty());
TreeLocation abc = a.getChild("b").getChild("c");
@@ -110,11 +109,11 @@ public class TreeLocationTest extends Oa
@Test
public void getDeepLocation() {
- TreeLocation p = root.getLocation("/z/1/2/p");
+ TreeLocation p = TreeLocation.create(root, "/z/1/2/p");
assertNotNull(p.getProperty());
assertEquals("/z/1/2/p", p.getPath());
- TreeLocation n = root.getLocation("/z/1/2/3/4");
+ TreeLocation n = TreeLocation.create(root, "/z/1/2/3/4");
assertNull(n.getTree());
assertNull(n.getProperty());
assertEquals("/z/1/2/3/4", n.getPath());