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();
+        }
+    }
 }