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 {