Index: oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java (working copy) @@ -532,9 +532,9 @@ } }); OakInitializer.initialize( - workspaceInitializers, store, defaultWorkspaceName, indexEditors); + workspaceInitializers, store, defaultWorkspaceName, indexEditors, indexProvider); - // add index hooks later to prevent the OakInitializer to do excessive indexing + // add index hooks later to prevent the OakInitializer from doing excessive indexing with(new IndexUpdateProvider(indexEditors)); withEditorHook(); Index: oak-core/src/main/java/org/apache/jackrabbit/oak/core/SystemRoot.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/core/SystemRoot.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/core/SystemRoot.java (working copy) @@ -77,7 +77,7 @@ }); } - public SystemRoot(NodeStore store) { + SystemRoot(NodeStore store) { this(store, EmptyHook.INSTANCE); } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/AuthorizationInitializer.java (working copy) @@ -20,6 +20,7 @@ import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.index.IndexUtils; +import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider; import org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionConstants; import org.apache.jackrabbit.oak.spi.lifecycle.WorkspaceInitializer; import org.apache.jackrabbit.oak.spi.security.authorization.accesscontrol.AccessControlConstants; @@ -41,7 +42,7 @@ class AuthorizationInitializer implements WorkspaceInitializer, AccessControlConstants, PermissionConstants { @Override - public void initialize(NodeBuilder builder, String workspaceName) { + public void initialize(NodeBuilder builder, String workspaceName, QueryIndexProvider indexProvider) { // property index for rep:principalName stored in ACEs NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder); if (!index.hasChildNode("acPrincipalName")) { Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeInitializer.java (working copy) @@ -23,6 +23,7 @@ import org.apache.jackrabbit.oak.core.SystemRoot; import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore; import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants; +import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; import org.apache.jackrabbit.oak.spi.state.ApplyDiff; @@ -54,7 +55,7 @@ NodeState base = builder.getNodeState(); NodeStore store = new MemoryNodeStore(base); try { - new PrivilegeDefinitionWriter(new SystemRoot(store)).writeBuiltInDefinitions(); + new PrivilegeDefinitionWriter(new SystemRoot(store, EmptyHook.INSTANCE)).writeBuiltInDefinitions(); } catch (RepositoryException e) { log.error("Failed to register built-in privileges", e); throw new RuntimeException(e); Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserInitializer.java (working copy) @@ -33,6 +33,7 @@ import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.lifecycle.WorkspaceInitializer; import org.apache.jackrabbit.oak.spi.query.CompositeQueryIndexProvider; +import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.SecurityProvider; import org.apache.jackrabbit.oak.spi.security.user.UserConfiguration; @@ -86,13 +87,13 @@ //-----------------------------------------------< WorkspaceInitializer >--- @Override - public void initialize(NodeBuilder builder, String workspaceName) { + public void initialize(NodeBuilder builder, String workspaceName, QueryIndexProvider indexProvider) { NodeState base = builder.getNodeState(); MemoryNodeStore store = new MemoryNodeStore(base); Root root = new SystemRoot( store, EmptyHook.INSTANCE, workspaceName, securityProvider, - new QueryEngineSettings(), new CompositeQueryIndexProvider()); + new QueryEngineSettings(), indexProvider); UserConfiguration userConfiguration = securityProvider.getConfiguration(UserConfiguration.class); UserManager userManager = userConfiguration.getUserManager(root, NamePathMapper.DEFAULT); Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/CompositeWorkspaceInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/CompositeWorkspaceInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/CompositeWorkspaceInitializer.java (working copy) @@ -23,6 +23,7 @@ import javax.annotation.Nonnull; +import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; /** @@ -43,9 +44,9 @@ } @Override - public void initialize(NodeBuilder builder, String workspaceName) { + public void initialize(NodeBuilder builder, String workspaceName, QueryIndexProvider indexProvider) { for (WorkspaceInitializer tracker : initializers) { - tracker.initialize(builder, workspaceName); + tracker.initialize(builder, workspaceName, indexProvider); } } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/OakInitializer.java (working copy) @@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EditorHook; +import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeStore; @@ -51,10 +52,11 @@ public static void initialize(@Nonnull Iterable initializer, @Nonnull NodeStore store, @Nonnull String workspaceName, - @Nonnull IndexEditorProvider indexEditor) { + @Nonnull IndexEditorProvider indexEditor, + @Nonnull QueryIndexProvider indexProvider) { NodeBuilder builder = store.getRoot().builder(); for (WorkspaceInitializer wspInit : initializer) { - wspInit.initialize(builder, workspaceName); + wspInit.initialize(builder, workspaceName, indexProvider); } try { CommitHook hook = new EditorHook(new IndexUpdateProvider(indexEditor)); Index: oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/WorkspaceInitializer.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/WorkspaceInitializer.java (revision 1587883) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/spi/lifecycle/WorkspaceInitializer.java (working copy) @@ -16,6 +16,7 @@ */ package org.apache.jackrabbit.oak.spi.lifecycle; +import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; /** @@ -29,7 +30,7 @@ WorkspaceInitializer DEFAULT = new WorkspaceInitializer() { @Override - public void initialize(NodeBuilder builder, String workspaceName) { + public void initialize(NodeBuilder builder, String workspaceName, QueryIndexProvider indexProvider) { } }; @@ -39,6 +40,7 @@ * * @param builder builder for accessing and modifying the workspace * @param workspaceName The name of the workspace that is being initialized. + * @param indexProvider The available query index providers */ - void initialize(NodeBuilder builder, String workspaceName); + void initialize(NodeBuilder builder, String workspaceName, QueryIndexProvider indexProvider); }