Author: tommaso
Date: Mon Dec 10 15:49:19 2018
New Revision: 1848592
URL: http://svn.apache.org/viewvc?rev=1848592&view=rev
Log:
OAK-7948 - expose StatisticsProvider from QueryEngineSettings
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java?rev=1848592&r1=1848591&r2=1848592&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java
Mon Dec 10 15:49:19 2018
@@ -132,6 +132,7 @@ import org.apache.jackrabbit.oak.spi.whi
import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardAware;
import org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils;
import org.apache.jackrabbit.oak.spi.descriptors.AggregatingDescriptors;
+import org.apache.jackrabbit.oak.stats.StatisticsProvider;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -153,7 +154,7 @@ public class Oak {
public static final String DEFAULT_WORKSPACE_NAME = "default";
private final NodeStore store;
-
+
private final List<RepositoryInitializer> initializers = newArrayList();
private AnnotatedQueryEngineSettings queryEngineSettings = new
AnnotatedQueryEngineSettings();
@@ -179,7 +180,7 @@ public class Oak {
private final Closer closer = Closer.create();
private ContentRepository contentRepository;
-
+
private Clusterable clusterable;
/**
@@ -371,10 +372,10 @@ public class Oak {
// this(new DocumentMK.Builder().open());
// this(new LogWrapper(new DocumentMK.Builder().open()));
}
-
+
/**
* Define the current repository as being a {@link Clusterable} one.
- *
+ *
* @param c
* @return
*/
@@ -383,7 +384,7 @@ public class Oak {
this.clusterable = checkNotNull(c);
return this;
}
-
+
/**
* Sets the default workspace name that should be used in case of login
* with {@code null} workspace name. If this method has not been called
@@ -406,12 +407,10 @@ public class Oak {
@NotNull
public Oak with(@NotNull QueryLimits settings) {
- QueryEngineSettings s = new QueryEngineSettings();
- s.setFailTraversal(settings.getFailTraversal());
-
s.setFullTextComparisonWithoutIndex(settings.getFullTextComparisonWithoutIndex());
- s.setLimitInMemory(settings.getLimitInMemory());
- s.setLimitReads(settings.getLimitReads());
- this.queryEngineSettings = new AnnotatedQueryEngineSettings(s);
+ this.queryEngineSettings.setFailTraversal(settings.getFailTraversal());
+
this.queryEngineSettings.setFullTextComparisonWithoutIndex(settings.getFullTextComparisonWithoutIndex());
+ this.queryEngineSettings.setLimitInMemory(settings.getLimitInMemory());
+ this.queryEngineSettings.setLimitReads(settings.getLimitReads());
return this;
}
@@ -565,6 +564,17 @@ public class Oak {
if (queryEngineSettings != null) {
this.queryEngineSettings = new
AnnotatedQueryEngineSettings(queryEngineSettings);
}
+ StatisticsProvider statisticsProvider =
WhiteboardUtils.getService(whiteboard, StatisticsProvider.class);
+ if (statisticsProvider != null) {
+ QueryEngineSettings newSettings = new
QueryEngineSettings(statisticsProvider);
+
newSettings.setFullTextComparisonWithoutIndex(this.queryEngineSettings.settings.getFullTextComparisonWithoutIndex());
+
newSettings.setFailTraversal(this.queryEngineSettings.getFailTraversal());
+
newSettings.setFastQuerySize(this.queryEngineSettings.isFastQuerySize());
+
newSettings.setLimitInMemory(this.queryEngineSettings.getLimitInMemory());
+
newSettings.setLimitReads(this.queryEngineSettings.getLimitReads());
+ this.queryEngineSettings = new
AnnotatedQueryEngineSettings(newSettings);
+ }
+
return this;
}
@@ -608,7 +618,7 @@ public class Oak {
public ScheduledExecutorService get() {
return scheduledExecutor;
}
- },
+ },
new Supplier<NodeStore>() {
@Override
public NodeStore get() {
@@ -622,7 +632,7 @@ public class Oak {
}
}));
}
-
+
/**
* <p>
* Enable the asynchronous (background) indexing behavior for the provided
@@ -761,7 +771,7 @@ public class Oak {
CommitHook composite = CompositeHook.compose(commitHooks);
regs.add(whiteboard.register(CommitHook.class, composite,
Collections.emptyMap()));
-
+
final Tracker<Descriptors> t = whiteboard.track(Descriptors.class);
return new ContentRepositoryImpl(
@@ -933,6 +943,10 @@ public class Oak {
public String toString() {
return settings.toString();
}
+
+ void setFullTextComparisonWithoutIndex(boolean
fullTextComparisonWithoutIndex) {
+
this.settings.setFullTextComparisonWithoutIndex(fullTextComparisonWithoutIndex);
+ }
}
public static class OakDefaultComponents {
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java?rev=1848592&r1=1848591&r2=1848592&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettings.java
Mon Dec 10 15:49:19 2018
@@ -23,6 +23,7 @@ import org.apache.jackrabbit.oak.query.s
import org.apache.jackrabbit.oak.query.stats.QueryStatsMBeanImpl;
import org.apache.jackrabbit.oak.query.stats.QueryStatsReporter;
import org.apache.jackrabbit.oak.spi.query.QueryLimits;
+import org.apache.jackrabbit.oak.stats.StatisticsProvider;
/**
* Settings of the query engine.
@@ -77,9 +78,19 @@ public class QueryEngineSettings impleme
private QueryStatsMBeanImpl queryStats = new QueryStatsMBeanImpl(this);
+ /**
+ * StatisticsProvider used to record query side metrics.
+ */
+ private final StatisticsProvider statisticsProvider;
+
public QueryEngineSettings() {
+ statisticsProvider = StatisticsProvider.NOOP;
}
-
+
+ public QueryEngineSettings(StatisticsProvider statisticsProvider) {
+ this.statisticsProvider = statisticsProvider;
+ }
+
@Override
public long getLimitInMemory() {
return limitInMemory;
@@ -141,6 +152,10 @@ public class QueryEngineSettings impleme
return queryStats;
}
+ StatisticsProvider getStatisticsProvider() {
+ return statisticsProvider;
+ }
+
@Override
public String toString() {
return "QueryEngineSettings{" +