You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2014/06/12 13:12:27 UTC

svn commit: r1602121 - /jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java

Author: chetanm
Date: Thu Jun 12 11:12:27 2014
New Revision: 1602121

URL: http://svn.apache.org/r1602121
Log:
OAK-1462 - Aggregate Index isn't usable in an osgi environment

Updating to pick RepositoryInitializer from the service registry. This is required by tests to provide extra initial content

Modified:
    jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java

Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java?rev=1602121&r1=1602120&r2=1602121&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/osgi/RepositoryManager.java Thu Jun 12 11:12:27 2014
@@ -35,8 +35,10 @@ import org.apache.jackrabbit.oak.osgi.Os
 import org.apache.jackrabbit.oak.plugins.commit.JcrConflictHandler;
 import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
 import org.apache.jackrabbit.oak.plugins.observation.CommitRateLimiter;
+import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import org.apache.jackrabbit.oak.spi.security.SecurityProvider;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.spi.whiteboard.Tracker;
 import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardEditorProvider;
 import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardExecutor;
@@ -67,6 +69,8 @@ public class RepositoryManager {
 
     private final WhiteboardExecutor executor = new WhiteboardExecutor();
 
+    private Tracker<RepositoryInitializer> initializers;
+
     private Whiteboard whiteboard;
 
     private ServiceRegistration registration;
@@ -107,6 +111,7 @@ public class RepositoryManager {
         }
 
         whiteboard = new OsgiWhiteboard(bundleContext);
+        initializers = whiteboard.track(RepositoryInitializer.class);
         editorProvider.start(whiteboard);
         indexEditorProvider.start(whiteboard);
         indexProvider.start(whiteboard);
@@ -132,6 +137,7 @@ public class RepositoryManager {
             registration.unregister();
         }
 
+        initializers.stop();
         executor.stop();
         indexProvider.stop();
         indexEditorProvider.stop();
@@ -150,6 +156,10 @@ public class RepositoryManager {
                 .withAsyncIndexing()
                 .with(executor);
 
+        for(RepositoryInitializer initializer : initializers.getServices()){
+            oak.with(initializer);
+        }
+
         if (commitRateLimiter != null) {
             oak.with(commitRateLimiter);
         }