You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2016/02/05 00:19:30 UTC
lucene-solr git commit: changes in no particular order:
Repository: lucene-solr
Updated Branches:
refs/heads/master-solr-8621 2367d8457 -> e0730d3be
changes in no particular order:
* added no-args DefaultMergePolicyFactory (returning TieredMergePolicy)
* WrapperMergePolicyFactory.getDefaultWrappedMergePolicy() now no longer abstract, instead uses DefaultMergePolicyFactory
* SolrIndexConfig constructor now references DefaultMergePolicyFactory instead of TieredMergePolicy[Factory]
* solrconfig-tieredmergepolicyfactory.xml class lucene->solr change
* WrapperMergePolicyFactoryTest.testProperlyInitializesWrappedMergePolicy: test.(maxMergeAtOnce|maxMergedSegmentMB) args - test that corresponding setters were invoked
* WrapperMergePolicyFactoryTest: test that all args were consumed ==> WrapperMergePolicyFactory.filterWrappedMergePolicyFactoryArgs needs to remove wrapped.prefix arg
* SolrIndexConfigTest.testToMap change
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/e0730d3b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/e0730d3b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/e0730d3b
Branch: refs/heads/master-solr-8621
Commit: e0730d3be044ae9b32bdc6e28313087bdc1622b5
Parents: 2367d84
Author: Christine Poerschke <cp...@apache.org>
Authored: Thu Feb 4 23:08:32 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Thu Feb 4 23:08:32 2016 +0000
----------------------------------------------------------------------
.../solr/index/DefaultMergePolicyFactory.java | 47 ++++++++++++++++++++
.../index/UpgradeIndexMergePolicyFactory.java | 6 ---
.../solr/index/WrapperMergePolicyFactory.java | 7 ++-
.../org/apache/solr/update/SolrIndexConfig.java | 6 +--
.../solrconfig-tieredmergepolicyfactory.xml | 2 +-
.../index/WrapperMergePolicyFactoryTest.java | 21 +++++----
.../apache/solr/update/SolrIndexConfigTest.java | 6 ++-
7 files changed, 75 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java
new file mode 100644
index 0000000..231eac9
--- /dev/null
+++ b/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.solr.index;
+
+import org.apache.lucene.index.MergePolicy;
+import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.solr.core.SolrResourceLoader;
+
+/**
+ * A {@link MergePolicyFactory} for the default {@link MergePolicy}.
+ */
+public class DefaultMergePolicyFactory extends MergePolicyFactory {
+
+ @Deprecated // Remove when SolrIndexConfig no longer uses it.
+ public static final String defaultMergePolicyClassName = TieredMergePolicy.class.getName();
+
+ public DefaultMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
+ super(resourceLoader, args);
+ if (!args.keys().isEmpty()) {
+ throw new IllegalArgumentException("Arguments were "+args+" but "+getClass().getSimpleName()+" takes no arguments.");
+ }
+ }
+
+ public DefaultMergePolicyFactory() {
+ super(null, null);
+ }
+
+ @Override
+ public final MergePolicy getMergePolicy() {
+ return new TieredMergePolicy();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
index d864919..d4f5e46 100644
--- a/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
@@ -17,7 +17,6 @@
package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
-import org.apache.lucene.index.TieredMergePolicy;
import org.apache.lucene.index.UpgradeIndexMergePolicy;
import org.apache.solr.core.SolrResourceLoader;
@@ -29,11 +28,6 @@ public class UpgradeIndexMergePolicyFactory extends WrapperMergePolicyFactory {
public UpgradeIndexMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
super(resourceLoader, args);
}
-
- @Override
- protected MergePolicy getDefaultWrappedMergePolicy() {
- return new TieredMergePolicy();
- }
@Override
public MergePolicy getMergePolicy() {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
index 8dbac4e..bb72de8 100644
--- a/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
@@ -42,7 +42,10 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
* Returns the default wrapped {@link MergePolicy}. This is called if the factory settings do not explicitly specify
* the wrapped policy.
*/
- protected abstract MergePolicy getDefaultWrappedMergePolicy();
+ protected MergePolicy getDefaultWrappedMergePolicy() {
+ final MergePolicyFactory mpf = new DefaultMergePolicyFactory();
+ return mpf.getMergePolicy();
+ }
/** Returns an instance of the wrapped {@link MergePolicy} after it has been configured with all set parameters. */
protected final MergePolicy getWrappedMergePolicy() {
@@ -72,6 +75,8 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
final String wrappedPolicyPrefix = (String) args.get(WRAPPED_PREFIX);
if (wrappedPolicyPrefix == null) {
return null;
+ } else {
+ args.remove(WRAPPED_PREFIX);
}
final String baseArgsPrefix = wrappedPolicyPrefix + '.';
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
index 9349a72..a2477f3 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
@@ -36,9 +36,9 @@ import org.apache.solr.core.PluginInfo;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.index.DefaultMergePolicyFactory;
import org.apache.solr.index.MergePolicyFactory;
import org.apache.solr.index.MergePolicyFactoryArgs;
-import org.apache.solr.index.TieredMergePolicyFactory;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.util.SolrPluginUtils;
import org.slf4j.Logger;
@@ -91,8 +91,8 @@ public class SolrIndexConfig implements MapSerializable {
mergePolicyInfo = null;
mergePolicyFactoryInfo = null;
mergeSchedulerInfo = null;
- defaultMergePolicyClassName = TieredMergePolicy.class.getName();
- defaultMergePolicyFactoryClassName = TieredMergePolicyFactory.class.getName();
+ defaultMergePolicyClassName = DefaultMergePolicyFactory.defaultMergePolicyClassName;
+ defaultMergePolicyFactoryClassName = DefaultMergePolicyFactory.class.getName();
mergedSegmentWarmerInfo = null;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicyfactory.xml
----------------------------------------------------------------------
diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicyfactory.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicyfactory.xml
index e790ccf..ebf360d 100644
--- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicyfactory.xml
+++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicyfactory.xml
@@ -23,7 +23,7 @@
<schemaFactory class="ClassicIndexSchemaFactory"/>
<indexConfig>
- <mergePolicyFactory class="org.apache.lucene.index.TieredMergePolicyFactory">
+ <mergePolicyFactory class="org.apache.solr.index.TieredMergePolicyFactory">
<int name="maxMergeAtOnceExplicit">19</int>
<int name="segmentsPerTier">9</int>
<double name="noCFSRatio">0.1</double>
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
index 69aa499..3237204 100644
--- a/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
@@ -45,30 +45,35 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
}
public void testProperlyInitializesWrappedMergePolicy() {
+ final TieredMergePolicy defaultTMP = new TieredMergePolicy();
+ final int testMaxMergeAtOnce = defaultTMP.getMaxMergeAtOnce() * 2;
+ final double testMaxMergedSegmentMB = defaultTMP.getMaxMergedSegmentMB() * 10;
+
final MergePolicyFactoryArgs args = new MergePolicyFactoryArgs();
args.put(WrapperMergePolicyFactory.WRAPPED_PREFIX, "test");
args.put("test.class", TieredMergePolicyFactory.class.getName());
- args.put("test.maxMergeAtOnce", 2);
- args.put("test.maxMergedSegmentMB", 1.0);
- MergePolicyFactory mpf = new WrapperMergePolicyFactory(resourceLoader, args) {
+ args.put("test.maxMergeAtOnce", testMaxMergeAtOnce);
+ args.put("test.maxMergedSegmentMB", testMaxMergedSegmentMB);
+ MergePolicyFactory mpf = new DefaultingWrapperMergePolicyFactory(resourceLoader, args) {
@Override
protected MergePolicy getDefaultWrappedMergePolicy() {
throw new IllegalStateException("Should not have reached here!");
}
-
- @Override
- public MergePolicy getMergePolicy() {
- return getWrappedMergePolicy();
- }
};
final MergePolicy mp = mpf.getMergePolicy();
assertSame(mp.getClass(), TieredMergePolicy.class);
+ final TieredMergePolicy tmp = (TieredMergePolicy)mp;
+ assertEquals("maxMergeAtOnce", testMaxMergeAtOnce, tmp.getMaxMergeAtOnce());
+ assertEquals("maxMergedSegmentMB", testMaxMergedSegmentMB, tmp.getMaxMergedSegmentMB(), 0.0d);
}
private static class DefaultingWrapperMergePolicyFactory extends WrapperMergePolicyFactory {
DefaultingWrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs wrapperArgs) {
super(resourceLoader, wrapperArgs);
+ if (!args.keys().isEmpty()) {
+ throw new IllegalArgumentException("All arguments should have been claimed by the wrapped policy but some ("+args.keys()+") remain.");
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e0730d3b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
index cd4b5e4..1d144cb 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
@@ -110,7 +110,11 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 {
SolrConfig solrConfig = new SolrConfig(instanceDir, solrConfigFileName, null);
SolrIndexConfig solrIndexConfig = new SolrIndexConfig(solrConfig, null, null);
assertNotNull(solrIndexConfig);
- assertNotNull(solrIndexConfig.mergePolicyInfo);
+ if (solrConfigFileName.equals(solrConfigFileNameTieredMergePolicyFactory)) {
+ assertNotNull(solrIndexConfig.mergePolicyFactoryInfo);
+ } else {
+ assertNotNull(solrIndexConfig.mergePolicyInfo);
+ }
if (solrConfigFileName.equals(solrConfigFileNameWarmer)) {
assertNotNull(solrIndexConfig.mergedSegmentWarmerInfo);
} else {