Author: stillalex Date: Thu Nov 16 14:18:16 2017 New Revision: 1815457 URL: http://svn.apache.org/viewvc?rev=1815457&view=rev Log: OAK-6826 Refactor Jcr class to remove dependency on o.a.j.oak.plugins.index
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java?rev=1815457&r1=1815456&r2=1815457&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java (original) +++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java Thu Nov 16 14:18:16 2017 @@ -51,6 +51,7 @@ import javax.security.auth.login.LoginEx import com.google.common.base.Function; import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.io.Closer; @@ -68,20 +69,35 @@ import org.apache.jackrabbit.oak.core.Co import org.apache.jackrabbit.oak.management.RepositoryManager; import org.apache.jackrabbit.oak.plugins.atomic.AtomicCounterEditorProvider; import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; +import org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider; import org.apache.jackrabbit.oak.plugins.index.AsyncIndexUpdate; import org.apache.jackrabbit.oak.plugins.index.CompositeIndexEditorProvider; import org.apache.jackrabbit.oak.plugins.index.IndexConstants; import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider; import org.apache.jackrabbit.oak.plugins.index.IndexMBeanRegistration; import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider; +import org.apache.jackrabbit.oak.plugins.index.counter.NodeCounterEditorProvider; import org.apache.jackrabbit.oak.plugins.index.counter.jmx.NodeCounter; import org.apache.jackrabbit.oak.plugins.index.counter.jmx.NodeCounterMBean; import org.apache.jackrabbit.oak.plugins.index.counter.jmx.NodeCounterOld; +import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider; +import org.apache.jackrabbit.oak.plugins.index.property.OrderedPropertyIndexEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider; import org.apache.jackrabbit.oak.plugins.index.property.jmx.PropertyIndexAsyncReindex; import org.apache.jackrabbit.oak.plugins.index.property.jmx.PropertyIndexAsyncReindexMBean; +import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider; +import org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider; import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore; +import org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider; +import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider; +import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; +import org.apache.jackrabbit.oak.plugins.observation.ChangeCollectorProvider; +import org.apache.jackrabbit.oak.plugins.version.VersionHook; import org.apache.jackrabbit.oak.query.QueryEngineSettings; import org.apache.jackrabbit.oak.query.stats.QueryStatsMBean; +import org.apache.jackrabbit.oak.security.SecurityProviderImpl; import org.apache.jackrabbit.oak.spi.commit.CompositeConflictHandler; import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -915,4 +931,55 @@ public class Oak { return settings.toString(); } } + + public static class OakDefaultComponents { + + public static final OakDefaultComponents INSTANCE = new OakDefaultComponents(); + + private final Iterable<CommitHook> commitHooks = ImmutableList.of(new VersionHook()); + + private final Iterable<RepositoryInitializer> repositoryInitializers = ImmutableList + .of(new InitialContent()); + + private final Iterable<EditorProvider> editorProviders = ImmutableList.of( + new ItemSaveValidatorProvider(), new NameValidatorProvider(), new NamespaceEditorProvider(), + new TypeEditorProvider(), new ConflictValidatorProvider(), new ChangeCollectorProvider()); + + private final Iterable<IndexEditorProvider> indexEditorProviders = ImmutableList.of( + new ReferenceEditorProvider(), new PropertyIndexEditorProvider(), new NodeCounterEditorProvider(), + new OrderedPropertyIndexEditorProvider()); + + private final Iterable<QueryIndexProvider> queryIndexProviders = ImmutableList + .of(new ReferenceIndexProvider(), new PropertyIndexProvider(), new NodeTypeIndexProvider()); + + private final SecurityProvider securityProvider = new SecurityProviderImpl(); + + private OakDefaultComponents() { + } + + public Iterable<CommitHook> commitHooks() { + return commitHooks; + } + + public Iterable<RepositoryInitializer> repositoryInitializers() { + return repositoryInitializers; + } + + public Iterable<EditorProvider> editorProviders() { + return editorProviders; + } + + public Iterable<IndexEditorProvider> indexEditorProviders() { + return indexEditorProviders; + } + + public Iterable<QueryIndexProvider> queryIndexProviders() { + return queryIndexProviders; + } + + public SecurityProvider securityProvider() { + return securityProvider; + } + } + } Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java?rev=1815457&r1=1815456&r2=1815457&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java (original) +++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/Jcr.java Thu Nov 16 14:18:16 2017 @@ -29,26 +29,11 @@ import javax.annotation.Nonnull; import javax.jcr.Repository; import org.apache.jackrabbit.oak.Oak; +import org.apache.jackrabbit.oak.Oak.OakDefaultComponents; import org.apache.jackrabbit.oak.api.ContentRepository; import org.apache.jackrabbit.oak.jcr.repository.RepositoryImpl; -import org.apache.jackrabbit.oak.plugins.commit.ConflictValidatorProvider; import org.apache.jackrabbit.oak.plugins.index.IndexEditorProvider; -import org.apache.jackrabbit.oak.plugins.index.counter.NodeCounterEditorProvider; -import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider; -import org.apache.jackrabbit.oak.plugins.index.property.OrderedPropertyIndexEditorProvider; -import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider; -import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexProvider; -import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceEditorProvider; -import org.apache.jackrabbit.oak.plugins.index.reference.ReferenceIndexProvider; -import org.apache.jackrabbit.oak.plugins.itemsave.ItemSaveValidatorProvider; -import org.apache.jackrabbit.oak.plugins.name.NameValidatorProvider; -import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider; -import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; -import org.apache.jackrabbit.oak.InitialContent; -import org.apache.jackrabbit.oak.plugins.observation.ChangeCollectorProvider; import org.apache.jackrabbit.oak.plugins.observation.CommitRateLimiter; -import org.apache.jackrabbit.oak.plugins.version.VersionHook; -import org.apache.jackrabbit.oak.security.SecurityProviderImpl; import org.apache.jackrabbit.oak.spi.commit.BackgroundObserver; import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CompositeConflictHandler; @@ -113,29 +98,23 @@ public class Jcr { this.oak = oak; if (initialize) { - with(new InitialContent()); - - with(new VersionHook()); - - with(new SecurityProviderImpl()); - - with(new ItemSaveValidatorProvider()); - with(new NameValidatorProvider()); - with(new NamespaceEditorProvider()); - with(new TypeEditorProvider()); - with(new ConflictValidatorProvider()); - with(new ChangeCollectorProvider()); - - with(new ReferenceEditorProvider()); - with(new ReferenceIndexProvider()); - - with(new PropertyIndexEditorProvider()); - with(new NodeCounterEditorProvider()); - - with(new PropertyIndexProvider()); - with(new NodeTypeIndexProvider()); - - with(new OrderedPropertyIndexEditorProvider()); + OakDefaultComponents defs = OakDefaultComponents.INSTANCE; + with(defs.securityProvider()); + for (CommitHook ch : defs.commitHooks()) { + with(ch); + } + for (RepositoryInitializer ri : defs.repositoryInitializers()) { + with(ri); + } + for (EditorProvider ep : defs.editorProviders()) { + with(ep); + } + for (IndexEditorProvider iep : defs.indexEditorProviders()) { + with(iep); + } + for (QueryIndexProvider qip : defs.queryIndexProviders()) { + with(qip); + } } }