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;