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 2017/06/02 11:39:31 UTC

svn commit: r1797375 - in /jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak: console/Console.java console/ConsoleSession.java run/cli/NodeStoreFixtureProvider.java

Author: chetanm
Date: Fri Jun  2 11:39:31 2017
New Revision: 1797375

URL: http://svn.apache.org/viewvc?rev=1797375&view=rev
Log:
OAK-6081 - Indexing tooling via oak-run

Expose MongoConnection and DataSource instance to Whiteboard associated
with the NodeStoreFixtureProvider

Also expose the whiteboard to the console session

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/ConsoleSession.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/console/Console.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java?rev=1797375&r1=1797374&r2=1797375&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/Console.java Fri Jun  2 11:39:31 2017
@@ -61,7 +61,7 @@ public class Console {
         }
 
         GroovyConsole console =
-                new GroovyConsole(ConsoleSession.create(fixture.getStore()), new IO(), fixture);
+                new GroovyConsole(ConsoleSession.create(fixture.getStore(), fixture.getWhiteboard()), new IO(), fixture);
 
         int code = 0;
         if(!scriptArgs.isEmpty()){

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/ConsoleSession.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/ConsoleSession.java?rev=1797375&r1=1797374&r2=1797375&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/ConsoleSession.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/console/ConsoleSession.java Fri Jun  2 11:39:31 2017
@@ -26,22 +26,25 @@ import org.apache.jackrabbit.oak.spi.sta
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 
 import com.google.common.collect.Maps;
+import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 
 /**
  * Light weight session to a NodeStore, holding context information.
  */
-public abstract class ConsoleSession {
+public class ConsoleSession {
 
     private final Map<String, Object> context = Maps.newHashMap();
 
     private final NodeStore store;
+    private final Whiteboard whiteboard;
 
-    private ConsoleSession(NodeStore store) {
+    private ConsoleSession(NodeStore store, Whiteboard whiteboard) {
         this.store = store;
+        this.whiteboard = whiteboard;
     }
 
-    public static ConsoleSession create(NodeStore store) {
-        return new DefaultSession(store);
+    public static ConsoleSession create(NodeStore store, Whiteboard whiteboard) {
+        return new ConsoleSession(store, whiteboard);
     }
 
     /**
@@ -113,6 +116,10 @@ public abstract class ConsoleSession {
         return store;
     }
 
+    public Whiteboard getWhiteboard() {
+        return whiteboard;
+    }
+
     /**
      * The node state for the current working path. Possibly non-existent.
      *
@@ -155,11 +162,4 @@ public abstract class ConsoleSession {
     public void refresh() {
         context.put("root", store.getRoot());
     }
-
-    private static final class DefaultSession extends ConsoleSession {
-
-        DefaultSession(NodeStore store) {
-            super(store);
-        }
-    }
 }

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=1797375&r1=1797374&r2=1797375&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 Fri Jun  2 11:39:31 2017
@@ -19,7 +19,6 @@
 
 package org.apache.jackrabbit.oak.run.cli;
 
-import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.net.UnknownHostException;
@@ -70,12 +69,12 @@ public class NodeStoreFixtureProvider {
             closer.register(blobFixture);
         }
 
-        StatisticsProvider statisticsProvider = createStatsProvider(options, closer);
+        StatisticsProvider statisticsProvider = createStatsProvider(options, wb, closer);
         wb.register(StatisticsProvider.class, statisticsProvider, Collections.emptyMap());
 
         NodeStore store;
         if (commonOpts.isMongo() || commonOpts.isRDB()) {
-            store = configureDocumentMk(options, blobStore, statisticsProvider, closer, readOnly);
+            store = configureDocumentMk(options, blobStore, statisticsProvider, closer, wb, readOnly);
         } else {
             store = configureSegment(options, blobStore, statisticsProvider, closer, readOnly);
         }
@@ -87,7 +86,7 @@ public class NodeStoreFixtureProvider {
                                                  BlobStore blobStore,
                                                  StatisticsProvider statisticsProvider,
                                                  Closer closer,
-                                                 boolean readOnly) throws UnknownHostException {
+                                                 Whiteboard wb, boolean readOnly) throws UnknownHostException {
         DocumentMK.Builder builder = new DocumentMK.Builder();
 
         if (blobStore != null) {
@@ -130,12 +129,14 @@ public class NodeStoreFixtureProvider {
                 System.exit(1);
             }
             MongoConnection mongo = new MongoConnection(uri.getURI());
+            wb.register(MongoConnection.class, mongo, Collections.emptyMap());
             closer.register(mongo::close);
             builder.setMongoDB(mongo.getDB());
         } 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());
             builder.setRDBConnection(ds);
         }
 
@@ -170,13 +171,14 @@ public class NodeStoreFixtureProvider {
         return nodeStore;
     }
 
-    private static StatisticsProvider createStatsProvider(Options options, Closer closer) {
+    private static StatisticsProvider createStatsProvider(Options options, Whiteboard wb, Closer closer) {
         if (options.getCommonOpts().isMetricsEnabled()) {
             ScheduledExecutorService executorService =
                     MoreExecutors.getExitingScheduledExecutorService(new ScheduledThreadPoolExecutor(1));
             MetricStatisticsProvider statsProvider = new MetricStatisticsProvider(getPlatformMBeanServer(), executorService);
             closer.register(statsProvider);
             closer.register(() -> reportMetrics(statsProvider));
+            wb.register(MetricRegistry.class, statsProvider.getRegistry(), Collections.emptyMap());
             return statsProvider;
         }
         return StatisticsProvider.NOOP;