diff --git a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java index f899079399..ac9e111650 100644 --- a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java +++ b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfiguration.java @@ -49,7 +49,8 @@ import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; import org.apache.jackrabbit.oak.plugins.nodetype.write.NodeTypeRegistry; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; +import org.apache.jackrabbit.oak.plugins.tree.RootProvider; +import org.apache.jackrabbit.oak.plugins.tree.TreeProvider; import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider; import org.apache.jackrabbit.oak.spi.commit.EditorHook; @@ -57,7 +58,6 @@ import org.apache.jackrabbit.oak.spi.commit.MoveTracker; import org.apache.jackrabbit.oak.spi.commit.ValidatorProvider; import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer; import org.apache.jackrabbit.oak.spi.mount.MountInfoProvider; -import org.apache.jackrabbit.oak.spi.mount.Mounts; import org.apache.jackrabbit.oak.spi.security.CompositeConfiguration; import org.apache.jackrabbit.oak.spi.security.ConfigurationBase; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; @@ -109,7 +109,13 @@ public class CugConfiguration extends ConfigurationBase implements Authorization * CUG authorization model multiplexing aware. */ @Reference - private MountInfoProvider mountInfoProvider = Mounts.defaultMountInfoProvider(); + private MountInfoProvider mountInfoProvider; + + @Reference + private RootProvider rootProvider; + + @Reference + private TreeProvider treeProvider; private Set supportedPaths = ImmutableSet.of(); @@ -143,7 +149,9 @@ public class CugConfiguration extends ConfigurationBase implements Authorization if (!enabled || supportedPaths.isEmpty() || getExclude().isExcluded(principals)) { return EmptyPermissionProvider.getInstance(); } else { - return new CugPermissionProvider(root, workspaceName, principals, supportedPaths, getSecurityProvider().getConfiguration(AuthorizationConfiguration.class).getContext()); + return new CugPermissionProvider(root, getRootProvider(), getTreeProvider(), workspaceName, principals, + supportedPaths, + getSecurityProvider().getConfiguration(AuthorizationConfiguration.class).getContext()); } } @@ -160,9 +168,8 @@ public class CugConfiguration extends ConfigurationBase implements Authorization NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); - Root root = RootFactory.createSystemRoot(store, - new EditorHook(new CompositeEditorProvider(new NamespaceEditorProvider(), new TypeEditorProvider())), - null, null, null); + Root root = getRootProvider().createSystemRoot(store, new EditorHook( + new CompositeEditorProvider(new NamespaceEditorProvider(), new TypeEditorProvider()))); if (registerCugNodeTypes(root)) { NodeState target = store.getRoot(); target.compareAgainstBaseState(base, new ApplyDiff(builder)); @@ -219,6 +226,26 @@ public class CugConfiguration extends ConfigurationBase implements Authorization this.mountInfoProvider = null; } + public void bindRootProvider(RootProvider rootProvider) { + this.rootProvider = rootProvider; + setRootProvider(this.rootProvider); + } + + public void unbindRootProvider(RootProvider rootProvider) { + this.rootProvider = null; + setRootProvider(null); + } + + public void bindTreeProvider(TreeProvider treeProvider) { + this.treeProvider = treeProvider; + setTreeProvider(this.treeProvider); + } + + public void unbindTreeProvider(TreeProvider treeProvider) { + this.treeProvider = null; + setTreeProvider(null); + } + //-------------------------------------------------------------------------- @Nonnull private CugExclude getExclude() { diff --git a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java index ec1865b4d0..840b413e21 100644 --- a/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java +++ b/oak-authorization-cug/src/main/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugPermissionProvider.java @@ -31,9 +31,9 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.namepath.NamePathMapper; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; +import org.apache.jackrabbit.oak.plugins.tree.RootProvider; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; +import org.apache.jackrabbit.oak.plugins.tree.TreeProvider; import org.apache.jackrabbit.oak.plugins.tree.TreeType; import org.apache.jackrabbit.oak.plugins.tree.TreeTypeProvider; import org.apache.jackrabbit.oak.plugins.version.ReadOnlyVersionManager; @@ -57,6 +57,8 @@ class CugPermissionProvider implements AggregatedPermissionProvider, CugConstant ); private final Root root; + private final RootProvider rootProvider; + private final TreeProvider treeProvider; private final String workspaceName; private final String[] principalNames; @@ -70,14 +72,18 @@ class CugPermissionProvider implements AggregatedPermissionProvider, CugConstant private TopLevelPaths topPaths; CugPermissionProvider(@Nonnull Root root, + @Nonnull RootProvider rootProvider, + @Nonnull TreeProvider treeProvider, @Nonnull String workspaceName, @Nonnull Set principals, @Nonnull Set supportedPaths, @Nonnull Context ctx) { this.root = root; + this.rootProvider = rootProvider; + this.treeProvider = treeProvider; this.workspaceName = workspaceName; - immutableRoot = RootFactory.createReadOnlyRoot(root); + immutableRoot = rootProvider.createReadOnlyRoot(root); principalNames = new String[principals.size()]; int i = 0; for (Principal p : principals) { @@ -93,7 +99,7 @@ class CugPermissionProvider implements AggregatedPermissionProvider, CugConstant @Nonnull TreePermission getTreePermission(@Nonnull Tree parent, @Nonnull TreeType parentType, @Nonnull String childName, @Nonnull NodeState childState, @Nonnull AbstractTreePermission parentPermission) { - Tree t = TreeFactory.createReadOnlyTree(parent, childName, childState); + Tree t = treeProvider.createReadOnlyTree(parent, childName, childState); TreeType type = typeProvider.getType(t, parentType); return getTreePermission(t, type, parentPermission); } @@ -115,7 +121,7 @@ class CugPermissionProvider implements AggregatedPermissionProvider, CugConstant //-------------------------------------------------< PermissionProvider >--- @Override public void refresh() { - immutableRoot = RootFactory.createReadOnlyRoot(root); + immutableRoot = rootProvider.createReadOnlyRoot(root); versionManager = null; topPaths = new TopLevelPaths(immutableRoot); } diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AbstractCugTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AbstractCugTest.java index ba0e394ee3..4777a69c97 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AbstractCugTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/AbstractCugTest.java @@ -17,6 +17,7 @@ package org.apache.jackrabbit.oak.spi.security.authorization.cug.impl; import java.security.Principal; +import java.util.Arrays; import java.util.Set; import java.util.UUID; import javax.annotation.Nonnull; @@ -48,10 +49,10 @@ import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissio import org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; -import org.apache.jackrabbit.oak.util.NodeUtil; import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.apache.jackrabbit.util.Text; +import static org.apache.jackrabbit.oak.api.Type.STRINGS; import static org.junit.Assert.assertTrue; /** @@ -93,17 +94,19 @@ public class AbstractCugTest extends AbstractSecurityTest implements CugConstant * + testNode * + child */ - NodeUtil rootNode = new NodeUtil(root.getTree("/")); + Tree rootNode = root.getTree("/"); - NodeUtil content = rootNode.addChild("content", NodeTypeConstants.NT_OAK_UNSTRUCTURED); - content.addChild("subtree", NodeTypeConstants.NT_OAK_UNSTRUCTURED); + Tree content = TreeUtil.addChild(rootNode, "content", NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(content, "subtree", NT_OAK_UNSTRUCTURED); - rootNode.addChild("content2", NodeTypeConstants.NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(rootNode, "content2", NT_OAK_UNSTRUCTURED); - rootNode.addChild("some", NodeTypeConstants.NT_OAK_UNSTRUCTURED).addChild("content", NodeTypeConstants.NT_OAK_UNSTRUCTURED).addChild("tree", NodeTypeConstants.NT_OAK_UNSTRUCTURED); + Tree some = TreeUtil.addChild(rootNode, "some", NT_OAK_UNSTRUCTURED); + Tree content2 = TreeUtil.addChild(some, "content", NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(content2, "tree", NT_OAK_UNSTRUCTURED); - NodeUtil testNode = rootNode.addChild("testNode", NodeTypeConstants.NT_OAK_UNSTRUCTURED); - testNode.addChild("child", NodeTypeConstants.NT_OAK_UNSTRUCTURED); + Tree testNode = TreeUtil.addChild(rootNode, "testNode", NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(testNode, "child", NT_OAK_UNSTRUCTURED); root.commit(); } @@ -148,7 +151,9 @@ public class AbstractCugTest extends AbstractSecurityTest implements CugConstant } CugPermissionProvider createCugPermissionProvider(@Nonnull Set supportedPaths, @Nonnull Principal... principals) { - return new CugPermissionProvider(root, root.getContentSession().getWorkspaceName(), ImmutableSet.copyOf(principals), supportedPaths, getConfig(AuthorizationConfiguration.class).getContext()); + return new CugPermissionProvider(root, getRootProvider(), getTreeProvider(), + root.getContentSession().getWorkspaceName(), ImmutableSet.copyOf(principals), supportedPaths, + getConfig(AuthorizationConfiguration.class).getContext()); } void setupCugsAndAcls() throws Exception { @@ -162,9 +167,14 @@ public class AbstractCugTest extends AbstractSecurityTest implements CugConstant User testUser = getTestUser(); // add more child nodes - NodeUtil n = new NodeUtil(root.getTree(SUPPORTED_PATH)); - n.addChild("a", NT_OAK_UNSTRUCTURED).addChild("b", NT_OAK_UNSTRUCTURED).addChild("c", NT_OAK_UNSTRUCTURED); - n.addChild("aa", NT_OAK_UNSTRUCTURED).addChild("bb", NT_OAK_UNSTRUCTURED).addChild("cc", NT_OAK_UNSTRUCTURED); + Tree n = root.getTree(SUPPORTED_PATH); + Tree a = TreeUtil.addChild(n, "a", NT_OAK_UNSTRUCTURED); + Tree b = TreeUtil.addChild(a, "b", NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(b, "c", NT_OAK_UNSTRUCTURED); + + Tree aa = TreeUtil.addChild(n, "aa", NT_OAK_UNSTRUCTURED); + Tree bb = TreeUtil.addChild(aa, "bb", NT_OAK_UNSTRUCTURED); + TreeUtil.addChild(bb, "cc", NT_OAK_UNSTRUCTURED); // create cugs // - /content/a : allow testGroup, deny everyone @@ -209,7 +219,8 @@ public class AbstractCugTest extends AbstractSecurityTest implements CugConstant Preconditions.checkState(tree.exists()); TreeUtil.addMixin(tree, MIX_REP_CUG_MIXIN, root.getTree(NODE_TYPES_PATH), null); - new NodeUtil(tree).addChild(REP_CUG_POLICY, NT_REP_CUG_POLICY).setStrings(REP_PRINCIPAL_NAMES, principalName); + Tree c = TreeUtil.addChild(tree, REP_CUG_POLICY, NT_REP_CUG_POLICY); + c.setProperty(REP_PRINCIPAL_NAMES, Arrays.asList(principalName), STRINGS); } Principal getTestGroupPrincipal() throws Exception { diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java index 0d213b3cc7..b02ee8d16c 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugConfigurationTest.java @@ -47,13 +47,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.apache.jackrabbit.oak.spi.security.authorization.cug.impl.CugSecurityProvider.newCugConfiguration; + public class CugConfigurationTest extends AbstractSecurityTest { private static CugConfiguration createConfiguration(ConfigurationParameters params) { SecurityProvider sp = CugSecurityProvider.newTestSecurityProvider(ConfigurationParameters.EMPTY); - CugConfiguration cugConfiguration = new CugConfiguration(); - cugConfiguration.setSecurityProvider(sp); - cugConfiguration.activate(params); + CugConfiguration cugConfiguration = newCugConfiguration(params, sp); return cugConfiguration; } @@ -203,7 +203,7 @@ public class CugConfigurationTest extends AbstractSecurityTest { @Test public void testActivate() throws Exception { - CugConfiguration cugConfiguration = new CugConfiguration(getSecurityProvider()); + CugConfiguration cugConfiguration = newCugConfiguration(getSecurityProvider()); cugConfiguration.activate(ImmutableMap.of( CugConstants.PARAM_CUG_ENABLED, false, CugConstants.PARAM_CUG_SUPPORTED_PATHS, new String[] {"/content", "/anotherContent"} @@ -213,7 +213,7 @@ public class CugConfigurationTest extends AbstractSecurityTest { @Test public void testModified() throws Exception { - CugConfiguration cugConfiguration = new CugConfiguration(getSecurityProvider()); + CugConfiguration cugConfiguration = newCugConfiguration(getSecurityProvider()); cugConfiguration.modified(ImmutableMap.of( CugConstants.PARAM_CUG_SUPPORTED_PATHS, new String[]{"/changed"} )); diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java index ccc56d6ed0..5e6096751a 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/CugSecurityProvider.java @@ -16,12 +16,12 @@ */ package org.apache.jackrabbit.oak.spi.security.authorization.cug.impl; -import static com.google.common.base.Preconditions.checkNotNull; - import javax.annotation.Nonnull; -import org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration; +import org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService; +import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService; import org.apache.jackrabbit.oak.security.internal.SecurityProviderBuilder; +import org.apache.jackrabbit.oak.spi.mount.Mounts; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.SecurityProvider; import org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration; @@ -32,8 +32,25 @@ final class CugSecurityProvider { public static SecurityProvider newTestSecurityProvider(@Nonnull ConfigurationParameters configuration) { CugConfiguration cugConfiguration = new CugConfiguration(); + cugConfiguration.bindRootProvider(new RootProviderService()); + cugConfiguration.bindTreeProvider(new TreeProviderService()); + cugConfiguration.bindMountInfoProvider(Mounts.defaultMountInfoProvider()); cugConfiguration.activate(configuration.getConfigValue(AuthorizationConfiguration.NAME, ConfigurationParameters.EMPTY)); - return new SecurityProviderBuilder().with(configuration).with(cugConfiguration, AuthorizationConfiguration.class).build(); } + + public static CugConfiguration newCugConfiguration(@Nonnull SecurityProvider securityProvider) { + return newCugConfiguration(ConfigurationParameters.EMPTY, securityProvider); + } + + public static CugConfiguration newCugConfiguration(@Nonnull ConfigurationParameters configuration, + @Nonnull SecurityProvider securityProvider) { + CugConfiguration cugConfiguration = new CugConfiguration(); + cugConfiguration.setSecurityProvider(securityProvider); + cugConfiguration.bindRootProvider(new RootProviderService()); + cugConfiguration.bindTreeProvider(new TreeProviderService()); + cugConfiguration.bindMountInfoProvider(Mounts.defaultMountInfoProvider()); + cugConfiguration.activate(configuration); + return cugConfiguration; + } } \ No newline at end of file diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/EmptyCugTreePermissionTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/EmptyCugTreePermissionTest.java index 40c57540e6..4609eaf829 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/EmptyCugTreePermissionTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/EmptyCugTreePermissionTest.java @@ -23,7 +23,6 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeType; import org.apache.jackrabbit.oak.plugins.tree.impl.AbstractTree; import org.apache.jackrabbit.oak.spi.version.VersionConstants; @@ -54,7 +53,7 @@ public class EmptyCugTreePermissionTest extends AbstractCugTest { pp = createCugPermissionProvider( ImmutableSet.of(SUPPORTED_PATH, SUPPORTED_PATH2), getTestUser().getPrincipal(), EveryonePrincipal.getInstance()); - Root readOnlyRoot = RootFactory.createReadOnlyRoot(root); + Root readOnlyRoot = getRootProvider().createReadOnlyRoot(root); Tree t = readOnlyRoot.getTree("/"); tp = new EmptyCugTreePermission(t, TreeType.DEFAULT, pp); rootState = ((AbstractTree) t).getNodeState(); diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/HiddenTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/HiddenTest.java index 3b136ac67b..9c1e5cb4ef 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/HiddenTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/HiddenTest.java @@ -26,7 +26,6 @@ import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; import org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration; import org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionProvider; @@ -59,7 +58,7 @@ public class HiddenTest extends AbstractCugTest { createCug(SUPPORTED_PATH, EveryonePrincipal.getInstance()); root.commit(); - readOnlyRoot = RootFactory.createReadOnlyRoot(root); + readOnlyRoot = getRootProvider().createReadOnlyRoot(root); hiddenTree = readOnlyRoot.getTree("/oak:index/acPrincipalName/:index"); assertTrue(hiddenTree.exists()); diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookRootSupportedTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookRootSupportedTest.java index 034f172a4c..0e1c4aad91 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookRootSupportedTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookRootSupportedTest.java @@ -44,7 +44,7 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { createCug("/content2", EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, true, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content", "/content2"); } @Test @@ -53,13 +53,13 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { createCug("/content2", EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content", "/content2"); createCug(ROOT_PATH, EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false); - assertNestedCugs(root, ROOT_PATH, true, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content", "/content2"); } @Test @@ -69,7 +69,7 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { createCug("/content2", EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, true, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content", "/content2"); } @Test @@ -81,13 +81,13 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { root.commit(); assertTrue(removeCug(ROOT_PATH, true)); - assertNestedCugs(root, ROOT_PATH, false, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content", "/content2"); assertTrue(removeCug("/content", true)); - assertNestedCugs(root, ROOT_PATH, false, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2"); assertTrue(removeCug("/content2", true)); - assertNestedCugs(root, ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); } @Test @@ -99,13 +99,13 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { root.commit(); removeCug("/content", true); - assertNestedCugs(root, ROOT_PATH, true, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content2"); removeCug("/", true); - assertNestedCugs(root, ROOT_PATH, false, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2"); removeCug("/content2", true); - assertNestedCugs(root, ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); } @Test @@ -117,13 +117,13 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { root.commit(); assertTrue(removeCug("/content", true)); - assertNestedCugs(root, ROOT_PATH, true, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content2"); assertTrue(removeCug("/content2", true)); - assertNestedCugs(root, ROOT_PATH, true); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true); assertTrue(removeCug(ROOT_PATH, true)); - assertNestedCugs(root, ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); } @Test @@ -139,6 +139,6 @@ public class NestedCugHookRootSupportedTest extends NestedCugHookTest { assertTrue(removeCug("/", false)); root.commit(); - assertNestedCugs(root, "/", false); + assertNestedCugs(root, getRootProvider(), "/", false); } } \ No newline at end of file diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java index 529d8b0286..4814d999f9 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NestedCugHookTest.java @@ -27,10 +27,10 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; +import org.apache.jackrabbit.oak.plugins.tree.RootProvider; +import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.apache.jackrabbit.oak.spi.security.authorization.cug.CugPolicy; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; -import org.apache.jackrabbit.oak.util.NodeUtil; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -39,12 +39,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.apache.jackrabbit.oak.commons.PathUtils.ROOT_PATH; - public class NestedCugHookTest extends AbstractCugTest { - protected static void assertNestedCugs(@Nonnull Root root, @Nonnull String cugHoldingPath, - boolean hasCugPolicy, @Nonnull String... expectedNestedPaths) { - Root immutableRoot = RootFactory.createReadOnlyRoot(root); + protected static void assertNestedCugs(@Nonnull Root root, @Nonnull RootProvider rootProvider, + @Nonnull String cugHoldingPath, boolean hasCugPolicy, @Nonnull String... expectedNestedPaths) { + Root immutableRoot = rootProvider.createReadOnlyRoot(root); Tree tree = immutableRoot.getTree(cugHoldingPath); if (hasCugPolicy) { @@ -102,8 +101,8 @@ public class NestedCugHookTest extends AbstractCugTest { createCug("/content", getTestGroupPrincipal()); root.commit(); - assertNestedCugs(root, "/", false, "/content"); - assertNestedCugs(root, "/content", true); + assertNestedCugs(root, getRootProvider(), "/", false, "/content"); + assertNestedCugs(root, getRootProvider(), "/content", true); } @Test @@ -115,41 +114,41 @@ public class NestedCugHookTest extends AbstractCugTest { // - /content2 : allow everyone, deny testGroup (isolated) setupCugsAndAcls(); - assertNestedCugs(root, ROOT_PATH, false, "/content/a", "/content/aa/bb", "/content2"); - assertNestedCugs(root, "/content/a", true, "/content/a/b/c"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content/a", "/content/aa/bb", "/content2"); + assertNestedCugs(root, getRootProvider(), "/content/a", true, "/content/a/b/c"); // add CUG at /content after having created CUGs in the subtree createCug("/content", EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content", "/content2"); - assertNestedCugs(root, "/content", true, "/content/a", "/content/aa/bb"); - assertNestedCugs(root, "/content/a", true, "/content/a/b/c"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), "/content", true, "/content/a", "/content/aa/bb"); + assertNestedCugs(root, getRootProvider(), "/content/a", true, "/content/a/b/c"); } @Test public void testAddNodeWithCug() throws Exception { createCug(SUPPORTED_PATH2, EveryonePrincipal.getInstance()); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH2)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH2), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(path, getTestGroupPrincipal()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH2); - assertNestedCugs(root, SUPPORTED_PATH2, true, path); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH2); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH2, true, path); } @Test public void testAddNodeWithCugManually() throws Exception { createCug(root, SUPPORTED_PATH3, EveryonePrincipal.NAME); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(root, path, getTestGroupPrincipal().getName()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH3); - assertNestedCugs(root, SUPPORTED_PATH3, true, path); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH3); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true, path); } @Test @@ -159,7 +158,7 @@ public class NestedCugHookTest extends AbstractCugTest { createCug(root, unsupportedPath, EveryonePrincipal.NAME); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, unsupportedPath); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, unsupportedPath); } @Test @@ -173,7 +172,7 @@ public class NestedCugHookTest extends AbstractCugTest { createCug("/content2", EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, ROOT_PATH, true, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, true, "/content", "/content2"); } @Test @@ -184,7 +183,7 @@ public class NestedCugHookTest extends AbstractCugTest { // remove CUG at /content assertTrue(removeCug("/content", true)); - assertNestedCugs(root, ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); } @Test @@ -199,8 +198,8 @@ public class NestedCugHookTest extends AbstractCugTest { // remove CUG at /content/a/b/c assertTrue(removeCug("/content/a/b/c", true)); - assertNestedCugs(root, ROOT_PATH, false, "/content/a", "/content/aa/bb", "/content2"); - assertNestedCugs(root, "/content/a", true); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content/a", "/content/aa/bb", "/content2"); + assertNestedCugs(root, getRootProvider(), "/content/a", true); } @Test @@ -215,7 +214,7 @@ public class NestedCugHookTest extends AbstractCugTest { // remove CUG at /content/a assertTrue(removeCug("/content/a", true)); - assertNestedCugs(root, ROOT_PATH, false, "/content/aa/bb", "/content2", "/content/a/b/c"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content/aa/bb", "/content2", "/content/a/b/c"); assertFalse(root.getTree("/content/a").hasChild(REP_CUG_POLICY)); } @@ -232,7 +231,7 @@ public class NestedCugHookTest extends AbstractCugTest { assertTrue(removeCug("/content/aa/bb", false)); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content2", "/content/a/b/c"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2", "/content/a/b/c"); } @Test @@ -248,7 +247,7 @@ public class NestedCugHookTest extends AbstractCugTest { assertTrue(removeCug("/content/a/b/c", false)); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content/aa/bb", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content/aa/bb", "/content2"); } @Test @@ -263,7 +262,7 @@ public class NestedCugHookTest extends AbstractCugTest { root.getTree("/content").remove(); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2"); } @Test @@ -278,7 +277,7 @@ public class NestedCugHookTest extends AbstractCugTest { root.getTree("/content/a").remove(); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content2", "/content/aa/bb"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2", "/content/aa/bb"); } @Test @@ -292,39 +291,39 @@ public class NestedCugHookTest extends AbstractCugTest { assertTrue(root.getTree(PathUtils.concat(ROOT_PATH, REP_CUG_POLICY)).remove()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, "/content", "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content", "/content2"); assertTrue(removeCug("/content", true)); - assertNestedCugs(root, ROOT_PATH, false, "/content2"); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, "/content2"); assertTrue(removeCug("/content2", true)); - assertNestedCugs(root, ROOT_PATH, false); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false); } @Test public void testRemoveAndReadd() throws Exception { createCug(root, SUPPORTED_PATH3, EveryonePrincipal.NAME); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(path, getTestGroupPrincipal()); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH3); - assertNestedCugs(root, SUPPORTED_PATH3, true, path); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH3); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true, path); removeCug(path, false); createCug(path, EveryonePrincipal.getInstance()); root.commit(); - assertNestedCugs(root, SUPPORTED_PATH3, true, path); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true, path); } @Test public void testMoveToUnsupportedPath() throws Exception { createCug(root, SUPPORTED_PATH3, EveryonePrincipal.NAME); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(path, getTestGroupPrincipal()); root.commit(); @@ -333,15 +332,15 @@ public class NestedCugHookTest extends AbstractCugTest { root.move(path, destPath); root.commit(); - assertNestedCugs(root, SUPPORTED_PATH3, true); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH3, destPath); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH3, destPath); } @Test public void testMoveToSupportedPath() throws Exception { createCug(root, SUPPORTED_PATH3, EveryonePrincipal.NAME); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(path, getTestGroupPrincipal()); root.commit(); @@ -350,8 +349,8 @@ public class NestedCugHookTest extends AbstractCugTest { root.move(path, destPath); root.commit(); - assertNestedCugs(root, SUPPORTED_PATH3, true); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH3, destPath); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH3, destPath); } @Test @@ -359,7 +358,7 @@ public class NestedCugHookTest extends AbstractCugTest { createCug(root, SUPPORTED_PATH2, EveryonePrincipal.NAME); createCug(root, SUPPORTED_PATH3, EveryonePrincipal.NAME); - Tree newTree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NT_OAK_UNSTRUCTURED).getTree(); + Tree newTree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NT_OAK_UNSTRUCTURED); String path = newTree.getPath(); createCug(path, getTestGroupPrincipal()); root.commit(); @@ -368,8 +367,8 @@ public class NestedCugHookTest extends AbstractCugTest { root.move(path, destPath); root.commit(); - assertNestedCugs(root, ROOT_PATH, false, SUPPORTED_PATH3, SUPPORTED_PATH2); - assertNestedCugs(root, SUPPORTED_PATH3, true); - assertNestedCugs(root, SUPPORTED_PATH2, true, destPath); + assertNestedCugs(root, getRootProvider(), ROOT_PATH, false, SUPPORTED_PATH3, SUPPORTED_PATH2); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH3, true); + assertNestedCugs(root, getRootProvider(), SUPPORTED_PATH2, true, destPath); } } \ No newline at end of file diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java index 953285e22d..b5185330bb 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/NoCugTest.java @@ -24,7 +24,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions; import org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission; @@ -124,7 +123,7 @@ public class NoCugTest extends AbstractCugTest { @Test public void testHiddenProperty() { - Root immutableRoot = RootFactory.createReadOnlyRoot(root); + Root immutableRoot = getRootProvider().createReadOnlyRoot(root); assertFalse(immutableRoot.getTree(PathUtils.ROOT_PATH).hasProperty(HIDDEN_NESTED_CUGS)); } } \ No newline at end of file diff --git a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java index f87789ff1f..09fe323e42 100644 --- a/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java +++ b/oak-authorization-cug/src/test/java/org/apache/jackrabbit/oak/spi/security/authorization/cug/impl/TopLevelPathTest.java @@ -23,11 +23,10 @@ import com.google.common.collect.ImmutableSet; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; +import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; import org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; -import org.apache.jackrabbit.oak.util.NodeUtil; import org.apache.jackrabbit.util.Text; import org.junit.Test; @@ -43,25 +42,25 @@ public class TopLevelPathTest extends AbstractCugTest { @Test public void testHasAnyNoCug() { - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); assertFalse(tlp.hasAny()); assertFalse(tlp.hasAny()); } @Test public void testHasAnyWithCug() throws Exception { - Tree tree = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NodeTypeConstants.NT_OAK_UNSTRUCTURED).getTree(); + Tree tree = TreeUtil.addChild(root.getTree(SUPPORTED_PATH3), "child", NodeTypeConstants.NT_OAK_UNSTRUCTURED); createCug(tree.getPath(), EveryonePrincipal.getInstance()); root.commit(); - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); assertTrue(tlp.hasAny()); assertTrue(tlp.hasAny()); } @Test public void testContainsNoCug() throws Exception { - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); for (String p : PATHS) { assertFalse(tlp.contains(p)); } @@ -69,11 +68,12 @@ public class TopLevelPathTest extends AbstractCugTest { @Test public void testContainsWithCug() throws Exception { - String cugPath = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NodeTypeConstants.NT_OAK_UNSTRUCTURED).getTree().getPath(); + String cugPath = TreeUtil + .addChild(root.getTree(SUPPORTED_PATH3), "child", NodeTypeConstants.NT_OAK_UNSTRUCTURED).getPath(); createCug(cugPath, EveryonePrincipal.getInstance()); root.commit(); - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); assertTrue(tlp.contains(ROOT_PATH)); assertTrue(tlp.contains(SUPPORTED_PATH3)); @@ -89,7 +89,7 @@ public class TopLevelPathTest extends AbstractCugTest { createCug(root, ROOT_PATH, EveryonePrincipal.NAME); root.commit(); - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); assertTrue(tlp.contains(ROOT_PATH)); @@ -101,14 +101,14 @@ public class TopLevelPathTest extends AbstractCugTest { @Test public void testContainsMany() throws Exception { - NodeUtil n = new NodeUtil(root.getTree(SUPPORTED_PATH3)); + Tree n = root.getTree(SUPPORTED_PATH3); for (int i = 0; i <= TopLevelPaths.MAX_CNT; i++) { - Tree c = n.addChild("c" + i, NT_OAK_UNSTRUCTURED).getTree(); + Tree c = TreeUtil.addChild(n, "c" + i, NT_OAK_UNSTRUCTURED); createCug(c.getPath(), EveryonePrincipal.getInstance()); } root.commit(); - TopLevelPaths tlp = new TopLevelPaths(RootFactory.createReadOnlyRoot(root)); + TopLevelPaths tlp = new TopLevelPaths(getRootProvider().createReadOnlyRoot(root)); assertTrue(tlp.contains(ROOT_PATH)); assertTrue(tlp.contains(SUPPORTED_PATH)); assertTrue(tlp.contains(SUPPORTED_PATH2)); @@ -120,11 +120,12 @@ public class TopLevelPathTest extends AbstractCugTest { @Test public void testMayContainWithCug() throws Exception { - String cugPath = new NodeUtil(root.getTree(SUPPORTED_PATH3)).addChild("child", NodeTypeConstants.NT_OAK_UNSTRUCTURED).getTree().getPath(); + String cugPath = TreeUtil + .addChild(root.getTree(SUPPORTED_PATH3), "child", NodeTypeConstants.NT_OAK_UNSTRUCTURED).getPath(); createCug(cugPath, EveryonePrincipal.getInstance()); root.commit(); - Root readOnlyRoot = RootFactory.createReadOnlyRoot(root); + Root readOnlyRoot = getRootProvider().createReadOnlyRoot(root); TopLevelPaths tlp = new TopLevelPaths(readOnlyRoot); for (String p : PATHS) { assertEquals(p, Text.isDescendantOrEqual(p, cugPath), tlp.contains(p)); @@ -160,7 +161,7 @@ public class TopLevelPathTest extends AbstractCugTest { createCug(cugPath, EveryonePrincipal.getInstance()); root.commit(); - Root readOnlyRoot = RootFactory.createReadOnlyRoot(root); + Root readOnlyRoot = getRootProvider().createReadOnlyRoot(root); TopLevelPaths tlp = new TopLevelPaths(readOnlyRoot); assertTrue(tlp.contains(PathUtils.ROOT_PATH));