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/10 17:41:26 UTC
lucene-solr git commit: SOLR-8621: add IndexSchema arg to
MergePolicyFactory constructor
Repository: lucene-solr
Updated Branches:
refs/heads/master 8299b0086 -> 5d32609cd
SOLR-8621: add IndexSchema arg to MergePolicyFactory constructor
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/5d32609c
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/5d32609c
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/5d32609c
Branch: refs/heads/master
Commit: 5d32609cdc413e15619a94d8d508987a65514e7e
Parents: 8299b00
Author: Christine Poerschke <cp...@apache.org>
Authored: Tue Feb 9 21:13:46 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Wed Feb 10 16:28:06 2016 +0000
----------------------------------------------------------------------
.../solr/index/DefaultMergePolicyFactory.java | 7 ++--
.../index/LogByteSizeMergePolicyFactory.java | 5 +--
.../solr/index/LogDocMergePolicyFactory.java | 5 +--
.../apache/solr/index/MergePolicyFactory.java | 5 ++-
.../solr/index/SimpleMergePolicyFactory.java | 5 +--
.../solr/index/TieredMergePolicyFactory.java | 5 +--
.../index/UpgradeIndexMergePolicyFactory.java | 5 +--
.../solr/index/WrapperMergePolicyFactory.java | 9 ++---
.../org/apache/solr/update/SolrIndexConfig.java | 35 +++++++++++++-------
.../solr/index/DummyMergePolicyFactory.java | 5 +--
.../index/WrapperMergePolicyFactoryTest.java | 11 +++---
.../solr/util/RandomMergePolicyFactory.java | 2 +-
12 files changed, 61 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/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
index 101204b..92f63e7 100644
--- a/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/DefaultMergePolicyFactory.java
@@ -19,21 +19,22 @@ package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for the default {@link MergePolicy}.
*/
public class DefaultMergePolicyFactory extends MergePolicyFactory {
- public DefaultMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ public DefaultMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
if (!args.keys().isEmpty()) {
throw new IllegalArgumentException("Arguments were "+args+" but "+getClass().getSimpleName()+" takes no arguments.");
}
}
public DefaultMergePolicyFactory() {
- super(null, null);
+ super(null, null, null);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/java/org/apache/solr/index/LogByteSizeMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/LogByteSizeMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/LogByteSizeMergePolicyFactory.java
index 6f1c092..479d05b 100644
--- a/solr/core/src/java/org/apache/solr/index/LogByteSizeMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/LogByteSizeMergePolicyFactory.java
@@ -19,14 +19,15 @@ package org.apache.solr.index;
import org.apache.lucene.index.LogByteSizeMergePolicy;
import org.apache.lucene.index.MergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for {@link LogByteSizeMergePolicy} objects.
*/
public class LogByteSizeMergePolicyFactory extends SimpleMergePolicyFactory {
- public LogByteSizeMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ public LogByteSizeMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/java/org/apache/solr/index/LogDocMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/LogDocMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/LogDocMergePolicyFactory.java
index 1ada776..f19d302 100644
--- a/solr/core/src/java/org/apache/solr/index/LogDocMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/LogDocMergePolicyFactory.java
@@ -19,14 +19,15 @@ package org.apache.solr.index;
import org.apache.lucene.index.LogDocMergePolicy;
import org.apache.lucene.index.MergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for {@link LogDocMergePolicy} objects.
*/
public class LogDocMergePolicyFactory extends SimpleMergePolicyFactory {
- public LogDocMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ public LogDocMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/java/org/apache/solr/index/MergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/MergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/MergePolicyFactory.java
index 5dfba20..c1534f5 100644
--- a/solr/core/src/java/org/apache/solr/index/MergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/MergePolicyFactory.java
@@ -18,18 +18,21 @@ package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A factory for creating a {@link MergePolicy}.
*/
public abstract class MergePolicyFactory {
+ protected final IndexSchema schema;
protected final MergePolicyFactoryArgs args;
protected final SolrResourceLoader resourceLoader;
- protected MergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
+ protected MergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
this.resourceLoader = resourceLoader;
this.args = args;
+ this.schema = schema;
}
public abstract MergePolicy getMergePolicy();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/java/org/apache/solr/index/SimpleMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/SimpleMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/SimpleMergePolicyFactory.java
index 6e975bc..fd45443 100644
--- a/solr/core/src/java/org/apache/solr/index/SimpleMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/SimpleMergePolicyFactory.java
@@ -18,6 +18,7 @@ package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for simple {@link MergePolicy} objects. Implementations need only create the policy
@@ -25,8 +26,8 @@ import org.apache.solr.core.SolrResourceLoader;
*/
public abstract class SimpleMergePolicyFactory extends MergePolicyFactory {
- protected SimpleMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ protected SimpleMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
protected abstract MergePolicy getMergePolicyInstance();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/java/org/apache/solr/index/TieredMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/TieredMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/TieredMergePolicyFactory.java
index 6481f01..9a14dd5 100644
--- a/solr/core/src/java/org/apache/solr/index/TieredMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/TieredMergePolicyFactory.java
@@ -19,14 +19,15 @@ package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for {@link TieredMergePolicy} objects.
*/
public class TieredMergePolicyFactory extends SimpleMergePolicyFactory {
- public TieredMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ public TieredMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/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 d9d4f4b..f4b1781 100644
--- a/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/UpgradeIndexMergePolicyFactory.java
@@ -19,14 +19,15 @@ package org.apache.solr.index;
import org.apache.lucene.index.MergePolicy;
import org.apache.lucene.index.UpgradeIndexMergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for {@link UpgradeIndexMergePolicy} objects.
*/
public class UpgradeIndexMergePolicyFactory extends WrapperMergePolicyFactory {
- public UpgradeIndexMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ public UpgradeIndexMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/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 e407010..24ba237 100644
--- a/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
@@ -20,6 +20,7 @@ import java.util.Iterator;
import org.apache.lucene.index.MergePolicy;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* A {@link MergePolicyFactory} for wrapping additional {@link MergePolicyFactory factories}.
@@ -34,8 +35,8 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
private final MergePolicyFactoryArgs wrappedMergePolicyArgs;
- protected WrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ protected WrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
wrappedMergePolicyArgs = filterWrappedMergePolicyFactoryArgs();
}
@@ -63,8 +64,8 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
className,
MergePolicyFactory.class,
NO_SUB_PACKAGES,
- new Class[] {SolrResourceLoader.class, MergePolicyFactoryArgs.class},
- new Object[] {resourceLoader, wrappedMergePolicyArgs});
+ new Class[] {SolrResourceLoader.class, MergePolicyFactoryArgs.class, IndexSchema.class},
+ new Object[] {resourceLoader, wrappedMergePolicyArgs, schema});
return mpf.getMergePolicy();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/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 ee16f7f..f0463c2 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
@@ -58,7 +58,7 @@ public class SolrIndexConfig implements MapSerializable {
private static final String NO_SUB_PACKAGES[] = new String[0];
- private final DefaultMergePolicyFactory defaultMergePolicyFactory = new DefaultMergePolicyFactory();
+ private static final String DEFAULT_MERGE_POLICY_FACTORY_CLASSNAME = DefaultMergePolicyFactory.class.getName();
public static final String DEFAULT_MERGE_SCHEDULER_CLASSNAME = ConcurrentMergeScheduler.class.getName();
public final Version luceneVersion;
@@ -261,21 +261,24 @@ public class SolrIndexConfig implements MapSerializable {
return buildMergePolicyFromInfo(schema);
}
- final MergePolicyFactory mpf;
+ final String mpfClassName;
+ final MergePolicyFactoryArgs mpfArgs;
if (mergePolicyFactoryInfo == null) {
- mpf = defaultMergePolicyFactory;
+ mpfClassName = DEFAULT_MERGE_POLICY_FACTORY_CLASSNAME;
+ mpfArgs = new MergePolicyFactoryArgs();
} else {
- final String mpfClassName = mergePolicyFactoryInfo.className;
- final MergePolicyFactoryArgs mpfArgs = new MergePolicyFactoryArgs(mergePolicyFactoryInfo.initArgs);
- final SolrResourceLoader resourceLoader = schema.getResourceLoader();
- mpf = resourceLoader.newInstance(
- mpfClassName,
- MergePolicyFactory.class,
- NO_SUB_PACKAGES,
- new Class[] { SolrResourceLoader.class, MergePolicyFactoryArgs.class },
- new Object[] { resourceLoader, mpfArgs });
+ mpfClassName = mergePolicyFactoryInfo.className;
+ mpfArgs = new MergePolicyFactoryArgs(mergePolicyFactoryInfo.initArgs);
}
+ final SolrResourceLoader resourceLoader = schema.getResourceLoader();
+ final MergePolicyFactory mpf = resourceLoader.newInstance(
+ mpfClassName,
+ MergePolicyFactory.class,
+ NO_SUB_PACKAGES,
+ new Class[] { SolrResourceLoader.class, MergePolicyFactoryArgs.class, IndexSchema.class },
+ new Object[] { resourceLoader, mpfArgs, schema });
+
return mpf.getMergePolicy();
}
@@ -291,6 +294,14 @@ public class SolrIndexConfig implements MapSerializable {
private MergePolicy buildMergePolicyFromInfo(IndexSchema schema) {
final MergePolicy policy;
if (mergePolicyInfo == null) {
+ final SolrResourceLoader resourceLoader = schema.getResourceLoader();
+ final MergePolicyFactoryArgs mpfArgs = new MergePolicyFactoryArgs();
+ final MergePolicyFactory defaultMergePolicyFactory = resourceLoader.newInstance(
+ DEFAULT_MERGE_POLICY_FACTORY_CLASSNAME,
+ MergePolicyFactory.class,
+ NO_SUB_PACKAGES,
+ new Class[] { SolrResourceLoader.class, MergePolicyFactoryArgs.class, IndexSchema.class },
+ new Object[] { resourceLoader, mpfArgs, schema });
policy = defaultMergePolicyFactory.getMergePolicy();
} else {
policy = schema.getResourceLoader().newInstance(mergePolicyInfo.className, MergePolicy.class);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/core/src/test/org/apache/solr/index/DummyMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/index/DummyMergePolicyFactory.java b/solr/core/src/test/org/apache/solr/index/DummyMergePolicyFactory.java
index e8b3d43..30a52a0 100644
--- a/solr/core/src/test/org/apache/solr/index/DummyMergePolicyFactory.java
+++ b/solr/core/src/test/org/apache/solr/index/DummyMergePolicyFactory.java
@@ -17,6 +17,7 @@
package org.apache.solr.index;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/**
* Dummy implementation of {@link org.apache.solr.index.MergePolicyFactory}
@@ -25,8 +26,8 @@ import org.apache.solr.core.SolrResourceLoader;
*/
class DummyMergePolicyFactory extends LogByteSizeMergePolicyFactory {
- private DummyMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args) {
- super(resourceLoader, args);
+ private DummyMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
+ super(resourceLoader, args, schema);
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/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 ee8eb71..cd904f5 100644
--- a/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
@@ -21,6 +21,7 @@ import org.apache.lucene.index.NoMergePolicy;
import org.apache.lucene.index.TieredMergePolicy;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.core.SolrResourceLoader;
+import org.apache.solr.schema.IndexSchema;
/** Unit tests for {@link WrapperMergePolicyFactory}. */
public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
@@ -29,7 +30,7 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
public void testReturnsDefaultMergePolicyIfNoneSpecified() {
final MergePolicyFactoryArgs args = new MergePolicyFactoryArgs();
- MergePolicyFactory mpf = new DefaultingWrapperMergePolicyFactory(resourceLoader, args);
+ MergePolicyFactory mpf = new DefaultingWrapperMergePolicyFactory(resourceLoader, args, null);
assertSame(mpf.getMergePolicy(), NoMergePolicy.INSTANCE);
}
@@ -37,7 +38,7 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
final MergePolicyFactoryArgs args = new MergePolicyFactoryArgs();
args.add(WrapperMergePolicyFactory.WRAPPED_PREFIX, "foo");
try {
- new DefaultingWrapperMergePolicyFactory(resourceLoader, args).getMergePolicy();
+ new DefaultingWrapperMergePolicyFactory(resourceLoader, args, null).getMergePolicy();
fail("Should have failed when no 'class' specified for wrapped merge policy");
} catch (final IllegalArgumentException e) {
// Good!
@@ -54,7 +55,7 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
args.add("test.class", TieredMergePolicyFactory.class.getName());
args.add("test.maxMergeAtOnce", testMaxMergeAtOnce);
args.add("test.maxMergedSegmentMB", testMaxMergedSegmentMB);
- MergePolicyFactory mpf = new DefaultingWrapperMergePolicyFactory(resourceLoader, args) {
+ MergePolicyFactory mpf = new DefaultingWrapperMergePolicyFactory(resourceLoader, args, null) {
@Override
protected MergePolicy getDefaultWrappedMergePolicy() {
throw new IllegalStateException("Should not have reached here!");
@@ -69,8 +70,8 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
private static class DefaultingWrapperMergePolicyFactory extends WrapperMergePolicyFactory {
- DefaultingWrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs wrapperArgs) {
- super(resourceLoader, wrapperArgs);
+ DefaultingWrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs wrapperArgs, IndexSchema schema) {
+ super(resourceLoader, wrapperArgs, schema);
if (!args.keys().isEmpty()) {
throw new IllegalArgumentException("All arguments should have been claimed by the wrapped policy but some ("+args+") remain.");
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5d32609c/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicyFactory.java b/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicyFactory.java
index e6e28c8..907c95d 100644
--- a/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicyFactory.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/RandomMergePolicyFactory.java
@@ -24,7 +24,7 @@ import org.apache.solr.index.MergePolicyFactoryArgs;
public final class RandomMergePolicyFactory extends MergePolicyFactory {
public RandomMergePolicyFactory() {
- super(null, new MergePolicyFactoryArgs());
+ super(null, new MergePolicyFactoryArgs(), null);
}
@Override