diff options
author | Nik Everett <nik9000@gmail.com> | 2016-07-11 21:16:52 -0400 |
---|---|---|
committer | Nik Everett <nik9000@gmail.com> | 2016-07-20 12:33:51 -0400 |
commit | 3a82c613e43ebfaa010e5cf5e79cc54cee2d9468 (patch) | |
tree | 27a3595109e0c6e21c6cd04f69a3dcb8effd3894 /core/src/test/java/org/elasticsearch | |
parent | 2cf94d2d8a420813619fd1aeb6f5744f8c094b05 (diff) |
Migrate query registration from push to pull
Remove `ParseField` constants used for names where there are no deprecated
names and just use the `String` version of the registration method instead.
This is step 2 in cleaning up the plugin interface for extending
search time actions. Aggregations are next.
This is breaking for plugins because those that register a new query should
now implement `SearchPlugin` rather than `onModule(SearchModule)`.
Diffstat (limited to 'core/src/test/java/org/elasticsearch')
8 files changed, 33 insertions, 26 deletions
diff --git a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java index f0f0334777..690f49171a 100644 --- a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java +++ b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java @@ -142,7 +142,7 @@ public class MultiSearchRequestTests extends ESTestCase { private IndicesQueriesRegistry registry() { IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); QueryParser<MatchAllQueryBuilder> parser = MatchAllQueryBuilder::fromXContent; - registry.register(parser, MatchAllQueryBuilder.QUERY_NAME_FIELD); + registry.register(parser, MatchAllQueryBuilder.NAME); return registry; } } diff --git a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java index 334244559c..08b9ee6474 100644 --- a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java +++ b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java @@ -20,7 +20,6 @@ package org.elasticsearch.index.query.plugin; import org.apache.lucene.search.Query; -import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -34,8 +33,7 @@ import java.io.IOException; import java.util.Optional; public class DummyQueryBuilder extends AbstractQueryBuilder<DummyQueryBuilder> { - private static final String NAME = "dummy"; - static final ParseField QUERY_NAME_FIELD = new ParseField(NAME); + public static final String NAME = "dummy"; public DummyQueryBuilder() { } diff --git a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryParserPlugin.java b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryParserPlugin.java index e61fe24d29..86c03c7273 100644 --- a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryParserPlugin.java +++ b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryParserPlugin.java @@ -24,14 +24,18 @@ import org.apache.lucene.search.MatchAllDocsQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.Weight; import org.elasticsearch.plugins.Plugin; -import org.elasticsearch.search.SearchModule; +import org.elasticsearch.plugins.SearchPlugin; import java.io.IOException; +import java.util.List; -public class DummyQueryParserPlugin extends Plugin { +import static java.util.Collections.singletonList; - public void onModule(SearchModule module) { - module.registerQuery(DummyQueryBuilder::new, DummyQueryBuilder::fromXContent, DummyQueryBuilder.QUERY_NAME_FIELD); +public class DummyQueryParserPlugin extends Plugin implements SearchPlugin { + + @Override + public List<QuerySpec<?>> getQueries() { + return singletonList(new QuerySpec<>(DummyQueryBuilder.NAME, DummyQueryBuilder::new, DummyQueryBuilder::fromXContent)); } public static class DummyQuery extends Query { diff --git a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java index 282ac98251..839a42aa09 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -94,8 +94,8 @@ public class SearchModuleTests extends ModuleTestCase { SearchPlugin registersDupeSignificanceHeuristic = new SearchPlugin() { @Override - public List<SearchPluginSpec<SignificanceHeuristic, SignificanceHeuristicParser>> getSignificanceHeuristics() { - return singletonList(new SearchPluginSpec<>(ChiSquare.NAME, ChiSquare::new, ChiSquare.PARSER)); + public List<SearchExtensionSpec<SignificanceHeuristic, SignificanceHeuristicParser>> getSignificanceHeuristics() { + return singletonList(new SearchExtensionSpec<>(ChiSquare.NAME, ChiSquare::new, ChiSquare.PARSER)); } }; expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, new NamedWriteableRegistry(), false, @@ -103,8 +103,8 @@ public class SearchModuleTests extends ModuleTestCase { SearchPlugin registersDupeMovAvgModel = new SearchPlugin() { @Override - public List<SearchPluginSpec<MovAvgModel, MovAvgModel.AbstractModelParser>> getMovingAverageModels() { - return singletonList(new SearchPluginSpec<>(SimpleModel.NAME, SimpleModel::new, SimpleModel.PARSER)); + public List<SearchExtensionSpec<MovAvgModel, MovAvgModel.AbstractModelParser>> getMovingAverageModels() { + return singletonList(new SearchExtensionSpec<>(SimpleModel.NAME, SimpleModel::new, SimpleModel.PARSER)); } }; expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, new NamedWriteableRegistry(), false, @@ -119,10 +119,13 @@ public class SearchModuleTests extends ModuleTestCase { expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, new NamedWriteableRegistry(), false, singletonList(registersDupeFetchSubPhase))); - SearchModule module = new SearchModule(Settings.EMPTY, new NamedWriteableRegistry(), false, emptyList()); - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> module - .registerQuery(TermQueryBuilder::new, TermQueryBuilder::fromXContent, TermQueryBuilder.QUERY_NAME_FIELD)); - assertThat(e.getMessage(), containsString("] already registered for [query][term] while trying to register [org.elasticsearch.")); + SearchPlugin registersDupeFetchQuery = new SearchPlugin() { + public List<SearchPlugin.QuerySpec<?>> getQueries() { + return singletonList(new QuerySpec<>(TermQueryBuilder.NAME, TermQueryBuilder::new, TermQueryBuilder::fromXContent)); + } + }; + expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, new NamedWriteableRegistry(), false, + singletonList(registersDupeFetchQuery))); } public void testRegisterSuggester() { diff --git a/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java b/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java index 1c63ac7b62..fba71499cc 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java @@ -22,7 +22,6 @@ package org.elasticsearch.search; import org.apache.lucene.search.Query; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -34,12 +33,15 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.indices.IndicesService; import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.test.ESSingleNodeTestCase; import java.io.IOException; import java.util.Collection; +import java.util.List; import java.util.concurrent.ExecutionException; +import static java.util.Collections.singletonList; import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.hamcrest.Matchers.is; @@ -110,12 +112,12 @@ public class SearchServiceTests extends ESSingleNodeTestCase { assertEquals(activeRefs, indexShard.store().refCount()); } - public static class FailOnRewriteQueryPlugin extends Plugin { - - public void onModule(SearchModule module) { - module.registerQuery(FailOnRewriteQueryBuilder::new, parseContext -> { + public static class FailOnRewriteQueryPlugin extends Plugin implements SearchPlugin { + @Override + public List<QuerySpec<?>> getQueries() { + return singletonList(new QuerySpec<>("fail_on_rewrite_query", FailOnRewriteQueryBuilder::new, parseContext -> { throw new UnsupportedOperationException("No query parser for this plugin"); - }, new ParseField("fail_on_rewrite_query")); + })); } } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java index 64a5b33659..1027a1097a 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java @@ -169,8 +169,8 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { public static class CustomSignificanceHeuristicPlugin extends Plugin implements ScriptPlugin, SearchPlugin { @Override - public List<SearchPluginSpec<SignificanceHeuristic, SignificanceHeuristicParser>> getSignificanceHeuristics() { - return singletonList(new SearchPluginSpec<SignificanceHeuristic, SignificanceHeuristicParser>(SimpleHeuristic.NAME, + public List<SearchExtensionSpec<SignificanceHeuristic, SignificanceHeuristicParser>> getSignificanceHeuristics() { + return singletonList(new SearchExtensionSpec<SignificanceHeuristic, SignificanceHeuristicParser>(SimpleHeuristic.NAME, SimpleHeuristic::new, SimpleHeuristic::parse)); } diff --git a/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java b/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java index 88af1ddf2b..89881a9000 100644 --- a/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java @@ -56,7 +56,7 @@ public class SearchAfterBuilderTests extends ESTestCase { namedWriteableRegistry = new NamedWriteableRegistry(); indicesQueriesRegistry = new IndicesQueriesRegistry(); QueryParser<MatchAllQueryBuilder> parser = MatchAllQueryBuilder::fromXContent; - indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.QUERY_NAME_FIELD); + indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.NAME); } @AfterClass diff --git a/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java index 668351c6db..fd83fe3add 100644 --- a/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java @@ -79,7 +79,7 @@ public class SliceBuilderTests extends ESTestCase { namedWriteableRegistry = new NamedWriteableRegistry(); indicesQueriesRegistry = new IndicesQueriesRegistry(); QueryParser<MatchAllQueryBuilder> parser = MatchAllQueryBuilder::fromXContent; - indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.QUERY_NAME_FIELD); + indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.NAME); } @AfterClass |