Index: src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/AbstractSecurityTest.java (working copy) @@ -51,6 +51,8 @@ import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider; import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider; import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; +import org.apache.jackrabbit.oak.plugins.tree.impl.RootProviderService; +import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService; import org.apache.jackrabbit.oak.plugins.value.jcr.ValueFactoryImpl; import org.apache.jackrabbit.oak.plugins.version.VersionHook; import org.apache.jackrabbit.oak.query.QueryEngineSettings; @@ -81,6 +83,8 @@ protected Root root; protected QueryEngineSettings querySettings; + private final RootProviderService rootProvider = new RootProviderService(); + private final TreeProviderService treeProvider = new TreeProviderService(); @Before public void before() throws Exception { @@ -247,4 +251,12 @@ protected T getConfig(Class configClass) { return getSecurityProvider().getConfiguration(configClass); } + + public RootProviderService getRootProvider() { + return rootProvider; + } + + public TreeProviderService getTreeProvider() { + return treeProvider; + } } Index: src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/plugins/index/property/OrderedPropertyIndexEditorProviderTest.java (working copy) @@ -32,12 +32,10 @@ import com.google.common.collect.ImmutableList; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.commons.junit.LogCustomizer; import org.apache.jackrabbit.oak.plugins.index.IndexConstants; import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider; import org.apache.jackrabbit.oak.plugins.index.IndexUtils; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EditorHook; @@ -59,11 +57,9 @@ private final String DEPRECATION_MESSAGE = OrderedIndex.DEPRECATION_MESSAGE.replace("{}", "/" + INDEX_DEFINITIONS_NAME + "/" + indexName); - private Tree createIndexDef(NodeBuilder root) throws RepositoryException { - return IndexUtils - .createIndexDefinition( - TreeFactory.createTree(root - .child(IndexConstants.INDEX_DEFINITIONS_NAME)), indexName, false, + private NodeBuilder createIndexDef(NodeBuilder root) throws RepositoryException { + return IndexUtils.createIndexDefinition( + root.child(IndexConstants.INDEX_DEFINITIONS_NAME), indexName, false, ImmutableList.of(indexedProperty), null, OrderedIndex.TYPE, null); } Index: src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java (working copy) @@ -33,7 +33,6 @@ import org.apache.jackrabbit.oak.plugins.tree.TreeType; import org.apache.jackrabbit.oak.plugins.tree.TreeTypeProvider; import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration; import org.apache.jackrabbit.oak.util.NodeUtil; import org.apache.jackrabbit.util.Text; @@ -291,7 +290,7 @@ public void testGetTypeForImmutableTree() { TreeTypeProvider typeProvider = new TreeTypeProvider(getConfig(AuthorizationConfiguration.class).getContext()); for (String path : new String[] {"/", "/testPath"}) { - Tree t = RootFactory.createReadOnlyRoot(root).getTree(path); + Tree t = getRootProvider().createReadOnlyRoot(root).getTree(path); assertEquals(TreeType.DEFAULT, typeProvider.getType(t)); // also for repeated calls assertEquals(TreeType.DEFAULT, typeProvider.getType(t)); @@ -306,7 +305,7 @@ public void testGetTypeForImmutableTreeWithParent() { TreeTypeProvider typeProvider = new TreeTypeProvider(getConfig(AuthorizationConfiguration.class).getContext()); - Tree t = RootFactory.createReadOnlyRoot(root).getTree("/:hidden/testPath"); + Tree t = getRootProvider().createReadOnlyRoot(root).getTree("/:hidden/testPath"); assertEquals(TreeType.HIDDEN, typeProvider.getType(t, TreeType.HIDDEN)); // the type of an immutable tree is set after the first call irrespective of the passed parent type. Index: src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/AbstractCompositeProviderTest.java (working copy) @@ -39,7 +39,6 @@ import org.apache.jackrabbit.oak.commons.PathUtils; 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.TreeUtil; import org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree; import org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.CompositionType; @@ -183,7 +182,7 @@ put(TEST_A_B_C_PATH, new String[] {Session.ACTION_ADD_NODE, JackrabbitSession.ACTION_ADD_PROPERTY, JackrabbitSession.ACTION_VERSIONING}). build(); - readOnlyRoot = RootFactory.createReadOnlyRoot(root); + readOnlyRoot = getRootProvider().createReadOnlyRoot(root); } @Override Index: src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeTreePermissionTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeTreePermissionTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/authorization/composite/CompositeTreePermissionTest.java (working copy) @@ -25,7 +25,6 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.apache.jackrabbit.oak.plugins.tree.impl.ImmutableTree; import org.apache.jackrabbit.oak.security.authorization.composite.CompositeAuthorizationConfiguration.CompositionType; @@ -56,7 +55,7 @@ TreeUtil.addChild(rootNode, "test", NodeTypeConstants.NT_OAK_UNSTRUCTURED); root.commit(); - readOnlyRoot = RootFactory.createReadOnlyRoot(root); + readOnlyRoot = getRootProvider().createReadOnlyRoot(root); rootTree = (ImmutableTree) readOnlyRoot.getTree("/"); fullScopeProvider = new FullScopeProvider(readOnlyRoot); Index: src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/AllPermissionsTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/AllPermissionsTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/AllPermissionsTest.java (working copy) @@ -22,7 +22,6 @@ import org.apache.jackrabbit.oak.AbstractSecurityTest; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; import org.apache.jackrabbit.oak.spi.version.VersionConstants; import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions; @@ -62,7 +61,7 @@ @Test public void testGetTreePermission() { for (String path : paths) { - Tree tree = RootFactory.createReadOnlyRoot(root).getTree(path); + Tree tree = getRootProvider().createReadOnlyRoot(root).getTree(path); assertTrue(tree.exists()); assertSame(TreePermission.ALL, all.getTreePermission(tree, TreePermission.EMPTY)); @@ -75,7 +74,7 @@ @Test public void testIsGranted() { for (String path : paths) { - Tree tree = RootFactory.createReadOnlyRoot(root).getTree(path); + Tree tree = getRootProvider().createReadOnlyRoot(root).getTree(path); assertTrue(tree.exists()); assertTrue(all.isGranted(tree, null, Permissions.ALL)); Index: src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImplTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImplTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImplTest.java (working copy) @@ -30,7 +30,6 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.spi.namespace.NamespaceConstants; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; import org.apache.jackrabbit.oak.spi.version.VersionConstants; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; @@ -42,9 +41,9 @@ import org.apache.jackrabbit.oak.spi.security.authorization.permission.RepositoryPermission; import org.apache.jackrabbit.oak.spi.security.authorization.permission.TreePermission; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; -import org.apache.jackrabbit.oak.util.NodeUtil; import org.junit.Test; +import static org.apache.jackrabbit.oak.plugins.tree.TreeUtil.addChild; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; @@ -67,7 +66,7 @@ public void before() throws Exception { super.before(); - new NodeUtil(root.getTree("/")).addChild("test", JcrConstants.NT_UNSTRUCTURED); + addChild(root.getTree("/"), "test", JcrConstants.NT_UNSTRUCTURED); UserManager uMgr = getUserManager(root); adminstrators = uMgr.createGroup(ADMINISTRATOR_GROUP); root.commit(); @@ -209,7 +208,7 @@ ContentSession testSession = createTestSession(); try { Root r = testSession.getLatestRoot(); - Root immutableRoot = RootFactory.createReadOnlyRoot(r); + Root immutableRoot = getRootProvider().createReadOnlyRoot(r); PermissionProvider pp = createPermissionProvider(testSession) ; assertTrue(r.getTree("/").exists()); Index: src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionTreePermissionTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionTreePermissionTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/authorization/permission/VersionTreePermissionTest.java (working copy) @@ -32,7 +32,6 @@ import org.apache.jackrabbit.oak.namepath.NamePathMapper; 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.impl.ImmutableTree; import org.apache.jackrabbit.oak.plugins.version.ReadOnlyVersionManager; import org.apache.jackrabbit.oak.spi.security.authorization.AuthorizationConfiguration; @@ -166,7 +165,7 @@ public void testGetChild() throws Exception { Tree versionHistory = checkNotNull(vMgr.getVersionHistory(testTree)); - ImmutableTree t = (ImmutableTree) RootFactory.createReadOnlyRoot(root).getTree("/"); + ImmutableTree t = (ImmutableTree) getRootProvider().createReadOnlyRoot(root).getTree("/"); TreePermission tp = pp.getTreePermission(t, TreePermission.EMPTY); for (String name : PathUtils.elements(versionHistory.getPath())) { t = t.getChild(name); Index: src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeContextTest.java (working copy) @@ -28,8 +28,8 @@ import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; +import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService; import org.apache.jackrabbit.oak.spi.security.Context; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; import org.junit.Test; @@ -110,7 +110,8 @@ @Test public void testEmptyNotDefinesTree() { - assertFalse(ctx.definesTree(TreeFactory.createReadOnlyTree(EmptyNodeState.EMPTY_NODE))); + TreeProviderService treeProvider = new TreeProviderService(); + assertFalse(ctx.definesTree(treeProvider.createReadOnlyTree(EmptyNodeState.EMPTY_NODE))); } @Test Index: src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeManagerImplTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeManagerImplTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeManagerImplTest.java (working copy) @@ -35,7 +35,6 @@ import org.apache.jackrabbit.oak.namepath.impl.NamePathMapperImpl; import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState; import org.apache.jackrabbit.oak.plugins.name.ReadWriteNamespaceRegistry; -import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; import org.apache.jackrabbit.oak.plugins.tree.TreeUtil; import org.junit.Before; @@ -76,7 +75,7 @@ @Test public void testGetRegisteredPrivilegesFromEmptyRoot() throws RepositoryException { - Privilege[] registered = create(RootFactory.createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getRegisteredPrivileges(); + Privilege[] registered = create(getRootProvider().createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getRegisteredPrivileges(); assertNotNull(registered); assertEquals(0, registered.length); } @@ -125,22 +124,22 @@ @Test(expected = AccessControlException.class) public void testGetPrivilegeFromEmptyRoot() throws Exception { - create(RootFactory.createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(PrivilegeConstants.JCR_READ); + create(getRootProvider().createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(PrivilegeConstants.JCR_READ); } @Test(expected = AccessControlException.class) public void testGetUnknownPrivilege() throws Exception { - create(RootFactory.createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege("jcr:someName"); + create(getRootProvider().createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege("jcr:someName"); } @Test(expected = AccessControlException.class) public void testGetPrivilegeEmptyName() throws Exception { - create(RootFactory.createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(""); + create(getRootProvider().createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(""); } @Test(expected = AccessControlException.class) public void testGetPrivilegeNullName() throws Exception { - create(RootFactory.createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(null); + create(getRootProvider().createReadOnlyRoot(EmptyNodeState.EMPTY_NODE)).getPrivilege(null); } @Test(expected = RepositoryException.class) Index: src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java =================================================================== --- src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java (revision 1817756) +++ src/test/java/org/apache/jackrabbit/oak/security/user/UserContextTest.java (working copy) @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.spi.nodetype.NodeTypeConstants; -import org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory; +import org.apache.jackrabbit.oak.plugins.tree.impl.TreeProviderService; import org.apache.jackrabbit.oak.plugins.tree.TreeLocation; import org.apache.jackrabbit.oak.spi.security.Context; import org.apache.jackrabbit.oak.spi.security.user.UserConstants; @@ -184,7 +184,8 @@ @Test public void testEmptyNotDefinesTree() { - assertFalse(ctx.definesTree(TreeFactory.createReadOnlyTree(EmptyNodeState.EMPTY_NODE))); + TreeProviderService treeProvider = new TreeProviderService(); + assertFalse(ctx.definesTree(treeProvider.createReadOnlyTree(EmptyNodeState.EMPTY_NODE))); } @Test