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);
+ }
}
}