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 an...@apache.org on 2017/06/02 12:42:57 UTC
svn commit: r1797384 - in
/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak:
Oak.java query/QueryEngineSettingsMBeanImpl.java
Author: angela
Date: Fri Jun 2 12:42:57 2017
New Revision: 1797384
URL: http://svn.apache.org/viewvc?rev=1797384&view=rev
Log:
OAK-6301 : Make QueryEngineSettingsMBeanImpl an inner class of o.a.j.oak.Oak
Removed:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/QueryEngineSettingsMBeanImpl.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.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=1797384&r1=1797383&r2=1797384&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 Fri Jun 2 12:42:57 2017
@@ -63,6 +63,7 @@ import org.apache.jackrabbit.oak.api.Roo
import org.apache.jackrabbit.oak.api.jmx.QueryEngineSettingsMBean;
import org.apache.jackrabbit.oak.api.jmx.RepositoryManagementMBean;
import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
+import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean;
import org.apache.jackrabbit.oak.core.ContentRepositoryImpl;
import org.apache.jackrabbit.oak.management.RepositoryManager;
import org.apache.jackrabbit.oak.plugins.atomic.AtomicCounterEditorProvider;
@@ -79,7 +80,6 @@ import org.apache.jackrabbit.oak.plugins
import org.apache.jackrabbit.oak.plugins.index.property.jmx.PropertyIndexAsyncReindexMBean;
import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
import org.apache.jackrabbit.oak.query.QueryEngineSettings;
-import org.apache.jackrabbit.oak.query.QueryEngineSettingsMBeanImpl;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
import org.apache.jackrabbit.oak.spi.commit.CommitInfo;
import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider;
@@ -132,7 +132,7 @@ public class Oak {
private final List<RepositoryInitializer> initializers = newArrayList();
- private QueryEngineSettingsMBeanImpl queryEngineSettings = new QueryEngineSettingsMBeanImpl();
+ private AnnotatedQueryEngineSettings queryEngineSettings = new AnnotatedQueryEngineSettings();
private final List<QueryIndexProvider> queryIndexProviders = newArrayList();
@@ -380,7 +380,7 @@ public class Oak {
@Nonnull
public Oak with(@Nonnull QueryEngineSettings queryEngineSettings) {
- this.queryEngineSettings = new QueryEngineSettingsMBeanImpl(queryEngineSettings);
+ this.queryEngineSettings = new AnnotatedQueryEngineSettings(queryEngineSettings);
return this;
}
@@ -526,7 +526,7 @@ public class Oak {
}
QueryEngineSettings queryEngineSettings = WhiteboardUtils.getService(whiteboard, QueryEngineSettings.class);
if (queryEngineSettings != null) {
- this.queryEngineSettings = new QueryEngineSettingsMBeanImpl(queryEngineSettings);
+ this.queryEngineSettings = new AnnotatedQueryEngineSettings(queryEngineSettings);
}
return this;
}
@@ -786,4 +786,93 @@ public class Oak {
}
}
+ /**
+ * Settings of the query engine. This instance is an AnnotatedStandardMBean.
+ */
+ private static final class AnnotatedQueryEngineSettings extends AnnotatedStandardMBean implements QueryEngineSettingsMBean {
+
+ private final QueryEngineSettings settings;
+
+ /**
+ * Create a new query engine settings object. Creating the object is
+ * relatively slow, and at runtime, as few such objects as possible should
+ * be created (ideally, only one per Oak instance). Creating new instances
+ * also means they can not be configured using JMX, as one would expect.
+ */
+ private AnnotatedQueryEngineSettings(QueryEngineSettings settings) {
+ super(QueryEngineSettingsMBean.class);
+ this.settings = settings;
+ }
+
+ /**
+ * Create a new query engine settings object. Creating the object is
+ * relatively slow, and at runtime, as few such objects as possible should
+ * be created (ideally, only one per Oak instance). Creating new instances
+ * also means they can not be configured using JMX, as one would expect.
+ */
+ private AnnotatedQueryEngineSettings() {
+ this(new QueryEngineSettings());
+ }
+
+ @Override
+ public long getLimitInMemory() {
+ return settings.getLimitInMemory();
+ }
+
+ @Override
+ public void setLimitInMemory(long limitInMemory) {
+ settings.setLimitInMemory(limitInMemory);
+ }
+
+ @Override
+ public long getLimitReads() {
+ return settings.getLimitReads();
+ }
+
+ @Override
+ public void setLimitReads(long limitReads) {
+ settings.setLimitReads(limitReads);
+ }
+
+ @Override
+ public boolean getFailTraversal() {
+ return settings.getFailTraversal();
+ }
+
+ @Override
+ public void setFailTraversal(boolean failQueriesWithoutIndex) {
+ settings.setFailTraversal(failQueriesWithoutIndex);
+ }
+
+ @Override
+ public boolean isFastQuerySize() {
+ return settings.isFastQuerySize();
+ }
+
+ @Override
+ public void setFastQuerySize(boolean fastQuerySize) {
+ settings.setFastQuerySize(fastQuerySize);
+ }
+
+ public void setFullTextComparisonWithoutIndex(boolean fullTextComparisonWithoutIndex) {
+ settings.setFullTextComparisonWithoutIndex(fullTextComparisonWithoutIndex);
+ }
+
+ public boolean getFullTextComparisonWithoutIndex() {
+ return settings.getFullTextComparisonWithoutIndex();
+ }
+
+ public boolean isSql2Optimisation() {
+ return settings.isSql2Optimisation();
+ }
+
+ public QueryEngineSettings unwrap() {
+ return settings;
+ }
+
+ @Override
+ public String toString() {
+ return settings.toString();
+ }
+ }
}