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,