Author: chetanm
Date: Wed Jul 19 06:15:32 2017
New Revision: 1802357

URL: http://svn.apache.org/viewvc?rev=1802357&view=rev
Log:
OAK-6353 - Use Document order traversal for reindexing performed on 
DocumentNodeStore setups

Register the MongoDocumentStore with Whiteboard so that it can be
accessed in the command

Modified:
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
    
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java?rev=1802357&r1=1802356&r2=1802357&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/CommonOptions.java
 Wed Jul 19 06:15:32 2017
@@ -70,7 +70,11 @@ public class CommonOptions implements Op
     }
 
     public boolean isSegment(){
-        return !isMongo() && !isRDB();
+        return !isDocument();
+    }
+
+    public boolean isDocument(){
+        return isMongo() || isRDB();
     }
 
     public boolean isMetricsEnabled() {

Modified: 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java?rev=1802357&r1=1802356&r2=1802357&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
 Wed Jul 19 06:15:32 2017
@@ -36,7 +36,9 @@ import com.google.common.util.concurrent
 import com.mongodb.MongoClientURI;
 import org.apache.jackrabbit.oak.plugins.document.DocumentMK;
 import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore;
+import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore;
 import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDataSourceFactory;
+import org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore;
 import org.apache.jackrabbit.oak.plugins.document.util.MongoConnection;
 import org.apache.jackrabbit.oak.plugins.metric.MetricStatisticsProvider;
 import org.apache.jackrabbit.oak.segment.SegmentNodeStoreBuilders;
@@ -50,6 +52,7 @@ import org.apache.jackrabbit.oak.spi.whi
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
+import static java.util.Collections.emptyMap;
 import static 
org.apache.jackrabbit.oak.segment.file.FileStoreBuilder.fileStoreBuilder;
 
 public class NodeStoreFixtureProvider {
@@ -71,7 +74,7 @@ public class NodeStoreFixtureProvider {
         }
 
         StatisticsProvider statisticsProvider = createStatsProvider(options, 
wb, closer);
-        wb.register(StatisticsProvider.class, statisticsProvider, 
Collections.emptyMap());
+        wb.register(StatisticsProvider.class, statisticsProvider, emptyMap());
 
         NodeStore store;
         if (commonOpts.isMongo() || commonOpts.isRDB()) {
@@ -122,6 +125,7 @@ public class NodeStoreFixtureProvider {
             );
         }
 
+        DocumentNodeStore dns;
         if (commonOpts.isMongo()) {
             MongoClientURI uri = new MongoClientURI(commonOpts.getStoreArg());
             if (uri.getDatabase() == null) {
@@ -130,18 +134,23 @@ public class NodeStoreFixtureProvider {
                 System.exit(1);
             }
             MongoConnection mongo = new MongoConnection(uri.getURI());
-            wb.register(MongoConnection.class, mongo, Collections.emptyMap());
+            wb.register(MongoConnection.class, mongo, emptyMap());
             closer.register(mongo::close);
             builder.setMongoDB(mongo.getDB());
+            dns = builder.getNodeStore();
+            wb.register(MongoDocumentStore.class, (MongoDocumentStore) 
builder.getDocumentStore(), emptyMap());
         } else if (commonOpts.isRDB()) {
             RDBStoreOptions rdbOpts = 
options.getOptionBean(RDBStoreOptions.class);
             DataSource ds = 
RDBDataSourceFactory.forJdbcUrl(commonOpts.getStoreArg(),
                     rdbOpts.getUser(), rdbOpts.getPassword());
-            wb.register(DataSource.class, ds, Collections.emptyMap());
+            wb.register(DataSource.class, ds, emptyMap());
             builder.setRDBConnection(ds);
+            dns = builder.getNodeStore();
+            wb.register(RDBDocumentStore.class, (RDBDocumentStore) 
builder.getDocumentStore(), emptyMap());
+        } else {
+            throw new IllegalStateException("Unknown DocumentStore");
         }
 
-        DocumentNodeStore dns = builder.getNodeStore();
         closer.register(() -> dns.dispose());
 
         return dns;
@@ -182,7 +191,7 @@ public class NodeStoreFixtureProvider {
             MetricStatisticsProvider statsProvider = new 
MetricStatisticsProvider(getPlatformMBeanServer(), executorService);
             closer.register(statsProvider);
             closer.register(() -> reportMetrics(statsProvider));
-            wb.register(MetricRegistry.class, statsProvider.getRegistry(), 
Collections.emptyMap());
+            wb.register(MetricRegistry.class, statsProvider.getRegistry(), 
emptyMap());
             return statsProvider;
         }
         return StatisticsProvider.NOOP;


Reply via email to