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


Reply via email to