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/05/31 05:02:52 UTC

svn commit: r1796974 - in /jackrabbit/oak/trunk/oak-run/src: main/java/org/apache/jackrabbit/oak/index/ main/java/org/apache/jackrabbit/oak/run/cli/ test/java/org/apache/jackrabbit/oak/run/

Author: chetanm
Date: Wed May 31 05:02:52 2017
New Revision: 1796974

URL: http://svn.apache.org/viewvc?rev=1796974&view=rev
Log:
OAK-6280 - Expose whiteboard from NodeStoreFixture to provide access to NodeStore components

Modified:
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixture.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixtureProvider.java
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
    jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/JsonIndexTest.java

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java?rev=1796974&r1=1796973&r2=1796974&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/index/IndexCommand.java Wed May 31 05:02:52 2017
@@ -35,6 +35,7 @@ import org.apache.jackrabbit.oak.run.cli
 import org.apache.jackrabbit.oak.run.commons.Command;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -72,7 +73,8 @@ public class IndexCommand implements Com
         try (Closer closer = Closer.create()) {
             closer.register(fixture);
             cleanWorkDir(indexOpts.getWorkDir());
-            execute(fixture.getStore(), fixture.getBlobStore(), fixture.getStatisticsProvider(), indexOpts, closer);
+            StatisticsProvider statisticsProvider = WhiteboardUtils.getService(fixture.getWhiteboard(), StatisticsProvider.class);
+            execute(fixture.getStore(), fixture.getBlobStore(), statisticsProvider, indexOpts, closer);
             tellReportPaths();
         }
     }

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixture.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixture.java?rev=1796974&r1=1796973&r2=1796974&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixture.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/NodeStoreFixture.java Wed May 31 05:02:52 2017
@@ -23,7 +23,7 @@ import javax.annotation.CheckForNull;
 
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.stats.StatisticsProvider;
+import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 
 public interface NodeStoreFixture extends Closeable {
 
@@ -32,6 +32,6 @@ public interface NodeStoreFixture extend
     @CheckForNull
     BlobStore getBlobStore();
 
-    StatisticsProvider getStatisticsProvider();
+    Whiteboard getWhiteboard();
 
 }

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=1796974&r1=1796973&r2=1796974&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 May 31 05:02:52 2017
@@ -23,6 +23,7 @@ import java.io.Closeable;
 import java.io.File;
 import java.io.IOException;
 import java.net.UnknownHostException;
+import java.util.Collections;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
@@ -44,6 +45,7 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
+import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
 
 import static java.lang.management.ManagementFactory.getPlatformMBeanServer;
@@ -58,7 +60,7 @@ public class NodeStoreFixtureProvider {
 
     public static NodeStoreFixture create(Options options, boolean readOnly) throws Exception {
         CommonOptions commonOpts = options.getOptionBean(CommonOptions.class);
-
+        Whiteboard wb = options.getWhiteboard();
         Closer closer = Closer.create();
         BlobStoreFixture blobFixture = BlobStoreFixtureProvider.create(options);
         BlobStore blobStore = null;
@@ -68,14 +70,16 @@ public class NodeStoreFixtureProvider {
         }
 
         StatisticsProvider statisticsProvider = createStatsProvider(options, closer);
-        NodeStore store = null;
+        wb.register(StatisticsProvider.class, statisticsProvider, Collections.emptyMap());
+
+        NodeStore store;
         if (commonOpts.isMongo() || commonOpts.isRDB()) {
             store = configureDocumentMk(options, blobStore, statisticsProvider, closer, readOnly);
         } else {
             store = configureSegment(options, blobStore, statisticsProvider, closer, readOnly);
         }
 
-        return new SimpleNodeStoreFixture(store, blobStore, statisticsProvider, closer);
+        return new SimpleNodeStoreFixture(store, blobStore, wb, closer);
     }
 
     private static NodeStore configureDocumentMk(Options options,
@@ -180,12 +184,12 @@ public class NodeStoreFixtureProvider {
         private final Closer closer;
         private final NodeStore nodeStore;
         private final BlobStore blobStore;
-        private final StatisticsProvider statisticsProvider;
+        private final Whiteboard whiteboard;
 
         private SimpleNodeStoreFixture(NodeStore nodeStore, BlobStore blobStore,
-                                       StatisticsProvider statisticsProvider, Closer closer) {
+                                       Whiteboard whiteboard, Closer closer) {
             this.blobStore = blobStore;
-            this.statisticsProvider = statisticsProvider;
+            this.whiteboard = whiteboard;
             this.closer = closer;
             this.nodeStore = nodeStore;
         }
@@ -201,8 +205,8 @@ public class NodeStoreFixtureProvider {
         }
 
         @Override
-        public StatisticsProvider getStatisticsProvider() {
-            return statisticsProvider;
+        public Whiteboard getWhiteboard() {
+            return whiteboard;
         }
 
         @Override

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java?rev=1796974&r1=1796973&r2=1796974&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/cli/Options.java Wed May 31 05:02:52 2017
@@ -29,6 +29,8 @@ import com.google.common.collect.Mutable
 import com.google.common.collect.Sets;
 import joptsimple.OptionParser;
 import joptsimple.OptionSet;
+import org.apache.jackrabbit.oak.spi.whiteboard.DefaultWhiteboard;
+import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static java.util.Arrays.asList;
@@ -42,6 +44,7 @@ public class Options {
     private String commandName;
     private String summary;
     private String connectionString;
+    private final Whiteboard whiteboard = new DefaultWhiteboard();
 
     public Options(){
         this.oakRunOptions = EnumSet.allOf(OptionBeans.class);
@@ -119,6 +122,10 @@ public class Options {
         return getOptionBean(CommonOptions.class);
     }
 
+    public Whiteboard getWhiteboard() {
+        return whiteboard;
+    }
+
     private void configure(OptionSet optionSet){
         for (OptionsBean bean : optionBeans.values()){
             bean.configure(optionSet);

Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/JsonIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/JsonIndexTest.java?rev=1796974&r1=1796973&r2=1796974&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/JsonIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/JsonIndexTest.java Wed May 31 05:02:52 2017
@@ -29,7 +29,8 @@ import org.apache.jackrabbit.oak.segment
 import org.apache.jackrabbit.oak.segment.memory.MemoryStore;
 import org.apache.jackrabbit.oak.spi.blob.BlobStore;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.stats.StatisticsProvider;
+import org.apache.jackrabbit.oak.spi.whiteboard.DefaultWhiteboard;
+import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard;
 import org.junit.Test;
 
 public class JsonIndexTest {
@@ -84,6 +85,7 @@ public class JsonIndexTest {
     
     private static NodeStoreFixture memoryFixture() {
         return new NodeStoreFixture() {
+            private final Whiteboard whiteboard = new DefaultWhiteboard();
 
             @Override
             public void close() throws IOException {
@@ -105,8 +107,8 @@ public class JsonIndexTest {
             }
 
             @Override
-            public StatisticsProvider getStatisticsProvider() {
-                return null;
+            public Whiteboard getWhiteboard() {
+                return whiteboard;
             }
         };
     }
@@ -114,8 +116,7 @@ public class JsonIndexTest {
     @Test
     public void readWrite() throws Exception {
         JsonIndexCommand index = new JsonIndexCommand();
-        try (NodeStoreFixture fixture = memoryFixture();
-                ) {
+        try (NodeStoreFixture fixture = memoryFixture()) {
             NodeStore store = fixture.getStore();
             index.session = JsonIndexCommand.openSession(store);
             assertCommand(index,