From 4f43d90a4f2d60e86639a1060d98774f07b4f84c Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Tue, 20 Dec 2016 15:38:46 -0500 Subject: [PATCH 1/4] Switch query parsing to namedObject --- .../xcontent/NamedXContentRegistry.java | 10 ++++ .../index/query/MatchAllQueryBuilder.java | 2 +- .../index/query/QueryParseContext.java | 11 ++++- .../elasticsearch/search/SearchModule.java | 48 +++++++++++-------- .../search/MultiSearchRequestTests.java | 12 +++++ .../index/query/BoolQueryBuilderTests.java | 1 - .../index/query/InnerHitBuilderTests.java | 9 ++++ .../index/query/QueryParseContextTests.java | 8 ++++ .../search/AbstractSearchTestCase.java | 8 ++++ .../aggregations/AggregatorParsingTests.java | 10 +++- .../aggregations/BaseAggregationTestCase.java | 8 ++++ .../highlight/HighlightBuilderTests.java | 9 ++++ .../rescore/QueryRescoreBuilderTests.java | 9 ++++ .../search/sort/AbstractSortTestCase.java | 11 ++++- .../search/sort/SortBuilderTests.java | 14 ++++-- 15 files changed, 140 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java b/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java index 046908d654e01..9df8855008e74 100644 --- a/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java +++ b/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java @@ -97,6 +97,16 @@ public Entry(Class categoryClass, ParseField name, FromXContentWithContex } } + private static class Category { + final String name; + final Map entries; + + public Category(String name, Map entries) { + this.name = name; + this.entries = entries; + } + } + private final Map, Map> registry; public NamedXContentRegistry(List entries) { diff --git a/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java index 4a86854e7bf07..63580eca3e7e8 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java @@ -58,7 +58,7 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep builder.endObject(); } - private static ObjectParser PARSER = new ObjectParser<>(NAME, MatchAllQueryBuilder::new); + private static final ObjectParser PARSER = new ObjectParser<>(NAME, MatchAllQueryBuilder::new); static { declareStandardFields(PARSER); diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java index b944bd3a42c9a..0d9f9b4845201 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java @@ -23,6 +23,8 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.ParsingException; +import org.elasticsearch.common.xcontent.NamedXContentRegistry.UnknownNamedObjectException; +import org.elasticsearch.common.xcontent.XContentLocation; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.Script; @@ -105,7 +107,14 @@ public QueryBuilder parseInnerQueryBuilder() throws IOException { if (parser.nextToken() != XContentParser.Token.START_OBJECT) { throw new ParsingException(parser.getTokenLocation(), "[" + queryName + "] query malformed, no start_object after query name"); } - QueryBuilder result = indicesQueriesRegistry.lookup(queryName, parseFieldMatcher, parser.getTokenLocation()).fromXContent(this); + QueryBuilder result; + try { + result = parser.namedObject(QueryBuilder.class, queryName, this); + } catch (UnknownNamedObjectException e) { + // Preserve the error message from 5.0 until we have a compellingly better message so we don't break BWC. + throw new ParsingException(new XContentLocation(e.getLineNumber(), e.getColumnNumber()), + "no [query] registered for [" + e.getName() + "]", e); + } //end_object of the specific query (e.g. match, multi_match etc.) element if (parser.currentToken() != XContentParser.Token.END_OBJECT) { throw new ParsingException(parser.getTokenLocation(), diff --git a/core/src/main/java/org/elasticsearch/search/SearchModule.java b/core/src/main/java/org/elasticsearch/search/SearchModule.java index a5ea15c6702f1..8469cd2b63017 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/core/src/main/java/org/elasticsearch/search/SearchModule.java @@ -442,11 +442,12 @@ private void registerAggregation(AggregationSpec spec) { if (false == transportClient) { aggregationParserRegistry.register(spec.getParser(), spec.getName()); } - namedWriteables.add(new Entry(AggregationBuilder.class, spec.getName().getPreferredName(), spec.getReader())); + namedWriteables.add( + new NamedWriteableRegistry.Entry(AggregationBuilder.class, spec.getName().getPreferredName(), spec.getReader())); for (Map.Entry> t : spec.getResultReaders().entrySet()) { String writeableName = t.getKey(); Writeable.Reader internalReader = t.getValue(); - namedWriteables.add(new Entry(InternalAggregation.class, writeableName, internalReader)); + namedWriteables.add(new NamedWriteableRegistry.Entry(InternalAggregation.class, writeableName, internalReader)); } } @@ -535,10 +536,13 @@ private void registerPipelineAggregation(PipelineAggregationSpec spec) { if (false == transportClient) { pipelineAggregationParserRegistry.register(spec.getParser(), spec.getName()); } - namedWriteables.add(new Entry(PipelineAggregationBuilder.class, spec.getName().getPreferredName(), spec.getReader())); - namedWriteables.add(new Entry(PipelineAggregator.class, spec.getName().getPreferredName(), spec.getAggregatorReader())); + namedWriteables.add( + new NamedWriteableRegistry.Entry(PipelineAggregationBuilder.class, spec.getName().getPreferredName(), spec.getReader())); + namedWriteables.add( + new NamedWriteableRegistry.Entry(PipelineAggregator.class, spec.getName().getPreferredName(), spec.getAggregatorReader())); for (Map.Entry> resultReader : spec.getResultReaders().entrySet()) { - namedWriteables.add(new Entry(InternalAggregation.class, resultReader.getKey(), resultReader.getValue())); + namedWriteables + .add(new NamedWriteableRegistry.Entry(InternalAggregation.class, resultReader.getKey(), resultReader.getValue())); } } @@ -549,14 +553,14 @@ private void registerShapes() { } private void registerRescorers() { - namedWriteables.add(new Entry(RescoreBuilder.class, QueryRescorerBuilder.NAME, QueryRescorerBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(RescoreBuilder.class, QueryRescorerBuilder.NAME, QueryRescorerBuilder::new)); } private void registerSorts() { - namedWriteables.add(new Entry(SortBuilder.class, GeoDistanceSortBuilder.NAME, GeoDistanceSortBuilder::new)); - namedWriteables.add(new Entry(SortBuilder.class, ScoreSortBuilder.NAME, ScoreSortBuilder::new)); - namedWriteables.add(new Entry(SortBuilder.class, ScriptSortBuilder.NAME, ScriptSortBuilder::new)); - namedWriteables.add(new Entry(SortBuilder.class, FieldSortBuilder.NAME, FieldSortBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SortBuilder.class, GeoDistanceSortBuilder.NAME, GeoDistanceSortBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SortBuilder.class, ScoreSortBuilder.NAME, ScoreSortBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SortBuilder.class, ScriptSortBuilder.NAME, ScriptSortBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SortBuilder.class, FieldSortBuilder.NAME, FieldSortBuilder::new)); } private void registerFromPlugin(List plugins, Function> producer, Consumer consumer) { @@ -568,9 +572,9 @@ private void registerFromPlugin(List plugins, Function namedWriteables) { - namedWriteables.add(new Entry(SmoothingModel.class, Laplace.NAME, Laplace::new)); - namedWriteables.add(new Entry(SmoothingModel.class, LinearInterpolation.NAME, LinearInterpolation::new)); - namedWriteables.add(new Entry(SmoothingModel.class, StupidBackoff.NAME, StupidBackoff::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SmoothingModel.class, Laplace.NAME, Laplace::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SmoothingModel.class, LinearInterpolation.NAME, LinearInterpolation::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SmoothingModel.class, StupidBackoff.NAME, StupidBackoff::new)); } private Map> setupSuggesters(List plugins) { @@ -581,7 +585,7 @@ private Map> setupSuggesters(List plugins) { @Override public void register(String name, Suggester t) { super.register(name, t); - namedWriteables.add(new Entry(SuggestionBuilder.class, name, t)); + namedWriteables.add(new NamedWriteableRegistry.Entry(SuggestionBuilder.class, name, t)); } }; suggesters.register("phrase", PhraseSuggester.INSTANCE); @@ -619,7 +623,7 @@ private void registerScoreFunctions(List plugins) { //weight doesn't have its own parser, so every function supports it out of the box. //Can be a single function too when not associated to any other function, which is why it needs to be registered manually here. - namedWriteables.add(new Entry(ScoreFunctionBuilder.class, WeightBuilder.NAME, WeightBuilder::new)); + namedWriteables.add(new NamedWriteableRegistry.Entry(ScoreFunctionBuilder.class, WeightBuilder.NAME, WeightBuilder::new)); registerFromPlugin(plugins, SearchPlugin::getScoreFunctions, this::registerScoreFunction); } @@ -646,7 +650,7 @@ private void registerValueFormats() { * Register a new ValueFormat. */ private void registerValueFormat(String name, Writeable.Reader reader) { - namedWriteables.add(new Entry(DocValueFormat.class, name, reader)); + namedWriteables.add(new NamedWriteableRegistry.Entry(DocValueFormat.class, name, reader)); } private void registerSignificanceHeuristics(List plugins) { @@ -662,7 +666,8 @@ private void registerSignificanceHeuristics(List plugins) { private void registerSignificanceHeuristic(SearchExtensionSpec heuristic) { significanceHeuristicParserRegistry.register(heuristic.getParser(), heuristic.getName()); - namedWriteables.add(new Entry(SignificanceHeuristic.class, heuristic.getName().getPreferredName(), heuristic.getReader())); + namedWriteables.add(new NamedWriteableRegistry.Entry(SignificanceHeuristic.class, heuristic.getName().getPreferredName(), + heuristic.getReader())); } private void registerMovingAverageModels(List plugins) { @@ -677,7 +682,8 @@ private void registerMovingAverageModels(List plugins) { private void registerMovingAverageModel(SearchExtensionSpec movAvgModel) { movingAverageModelParserRegistry.register(movAvgModel.getParser(), movAvgModel.getName()); - namedWriteables.add(new Entry(MovAvgModel.class, movAvgModel.getName().getPreferredName(), movAvgModel.getReader())); + namedWriteables.add( + new NamedWriteableRegistry.Entry(MovAvgModel.class, movAvgModel.getName().getPreferredName(), movAvgModel.getReader())); } private void registerFetchSubPhases(List plugins) { @@ -700,7 +706,7 @@ private void registerSearchExts(List plugins) { private void registerSearchExt(SearchExtSpec spec) { searchExtParserRegistry.register(spec.getParser(), spec.getName()); - namedWriteables.add(new Entry(SearchExtBuilder.class, spec.getName().getPreferredName(), spec.getReader())); + namedWriteables.add(new NamedWriteableRegistry.Entry(SearchExtBuilder.class, spec.getName().getPreferredName(), spec.getReader())); } private void registerFetchSubPhase(FetchSubPhase subPhase) { @@ -775,7 +781,9 @@ private void registerQueryParsers(List plugins) { private void registerQuery(QuerySpec spec) { queryParserRegistry.register(spec.getParser(), spec.getName()); - namedWriteables.add(new Entry(QueryBuilder.class, spec.getName().getPreferredName(), spec.getReader())); + namedWriteables.add(new NamedWriteableRegistry.Entry(QueryBuilder.class, spec.getName().getPreferredName(), spec.getReader())); + namedXContents.add(new NamedXContentRegistry.Entry(QueryBuilder.class, spec.getName(), + (p, c) -> spec.getParser().fromXContent((QueryParseContext) c))); } public FetchPhase getFetchPhase() { 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 e42c56046e6f3..8fb3c05f249e1 100644 --- a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java +++ b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java @@ -20,13 +20,18 @@ package org.elasticsearch.action.search; import org.elasticsearch.action.support.IndicesOptions; +import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.MatchAllQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryParser; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.RestRequest; @@ -38,6 +43,7 @@ import java.io.IOException; +import static java.util.Collections.singletonList; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; @@ -171,6 +177,12 @@ private MultiSearchRequest parseMultiSearchRequest(String sample) throws IOExcep return RestMultiSearchAction.parseRequest(restRequest, true, parsers(), ParseFieldMatcher.EMPTY); } + @Override + protected NamedXContentRegistry xContentRegistry() { + return new NamedXContentRegistry(singletonList(new NamedXContentRegistry.Entry(QueryBuilder.class, + new ParseField(MatchAllQueryBuilder.NAME), (p, c) -> MatchAllQueryBuilder.fromXContent((QueryParseContext) c)))); + } + private SearchRequestParsers parsers() { IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); QueryParser parser = MatchAllQueryBuilder::fromXContent; diff --git a/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java index 13854ffc1e214..ab73551d3e159 100644 --- a/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java @@ -30,7 +30,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; -import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; import org.hamcrest.Matchers; diff --git a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java index 9c021e249a875..fa232303286b3 100644 --- a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java @@ -22,6 +22,7 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -63,18 +64,26 @@ public class InnerHitBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; private static IndicesQueriesRegistry indicesQueriesRegistry; + private static NamedXContentRegistry xContentRegistry; @BeforeClass public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); indicesQueriesRegistry = searchModule.getQueryParserRegistry(); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; indicesQueriesRegistry = null; + xContentRegistry = null; + } + + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; } public void testSerialization() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java index da76c2796f6a2..5849372b219ea 100644 --- a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java @@ -24,6 +24,7 @@ import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.indices.query.IndicesQueriesRegistry; @@ -40,10 +41,12 @@ public class QueryParseContextTests extends ESTestCase { private static IndicesQueriesRegistry indicesQueriesRegistry; + private static NamedXContentRegistry xContentRegistry; @BeforeClass public static void init() { indicesQueriesRegistry = new SearchModule(Settings.EMPTY, false, emptyList()).getQueryParserRegistry(); + xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, false, emptyList()).getNamedXContents()); } private ThreadContext threadContext; @@ -60,6 +63,11 @@ public void teardown() throws IOException { this.threadContext.close(); } + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } + public void testParseTopLevelBuilder() throws IOException { QueryBuilder query = new MatchQueryBuilder("foo", "bar"); String requestBody = "{ \"query\" : " + query.toString() + "}"; diff --git a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java index cf290b2b1b605..27ac2f2048432 100644 --- a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.indices.IndicesModule; @@ -55,6 +56,7 @@ public abstract class AbstractSearchTestCase extends ESTestCase { protected SearchRequestParsers searchRequestParsers; private TestSearchExtPlugin searchExtPlugin; protected IndicesQueriesRegistry queriesRegistry; + private NamedXContentRegistry xContentRegistry; public void setUp() throws Exception { super.setUp(); @@ -65,10 +67,16 @@ public void setUp() throws Exception { entries.addAll(indicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); searchRequestParsers = searchModule.getSearchRequestParsers(); queriesRegistry = searchModule.getQueryParserRegistry(); } + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } + protected SearchSourceBuilder createSearchSourceBuilder() { Supplier> randomExtBuilders = () -> { Set elementNames = new HashSet<>(searchExtPlugin.getSupportedElements().keySet()); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java index 26b3dd6f8f2af..b2531fedc0765 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java @@ -22,16 +22,17 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.env.Environment; -import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; +import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.test.ESTestCase; import java.util.Random; @@ -51,6 +52,7 @@ protected String[] getCurrentTypes() { protected AggregatorParsers aggParsers; protected IndicesQueriesRegistry queriesRegistry; + private NamedXContentRegistry xContentRegistry; protected ParseFieldMatcher parseFieldMatcher; /** @@ -74,6 +76,7 @@ public void setUp() throws Exception { currentTypes[i] = type; } queriesRegistry = searchModule.getQueryParserRegistry(); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); parseFieldMatcher = ParseFieldMatcher.STRICT; } @@ -265,4 +268,9 @@ public void testMissingType() throws Exception { // All Good } } + + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java index e8073bac35430..ea7bf31278400 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -65,6 +66,7 @@ protected String[] getCurrentTypes() { protected AggregatorParsers aggParsers; protected IndicesQueriesRegistry queriesRegistry; + private NamedXContentRegistry xContentRegistry; protected ParseFieldMatcher parseFieldMatcher; protected abstract AB createTestAggregatorBuilder(); @@ -85,6 +87,7 @@ public void setUp() throws Exception { entries.addAll(indicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); queriesRegistry = searchModule.getQueryParserRegistry(); aggParsers = searchModule.getSearchRequestParsers().aggParsers; //create some random type with some default field, those types will stick around for all of the subclasses @@ -96,6 +99,11 @@ public void setUp() throws Exception { parseFieldMatcher = ParseFieldMatcher.STRICT; } + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } + /** * Generic test that creates new AggregatorFactory from the test * AggregatorFactory and checks both for equality and asserts equality on diff --git a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java index e494bcf981e62..7762ea4959f31 100644 --- a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -76,6 +77,7 @@ public class HighlightBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; private static IndicesQueriesRegistry indicesQueriesRegistry; + private static NamedXContentRegistry xContentRegistry; /** * setup for the whole base test class @@ -85,12 +87,14 @@ public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); indicesQueriesRegistry = searchModule.getQueryParserRegistry(); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; indicesQueriesRegistry = null; + xContentRegistry = null; } /** @@ -715,4 +719,9 @@ private static HighlightBuilder mutate(HighlightBuilder original) throws IOExcep private static HighlightBuilder serializedCopy(HighlightBuilder original) throws IOException { return ESTestCase.copyWriteable(original, namedWriteableRegistry, HighlightBuilder::new); } + + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } } diff --git a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java b/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java index 160e539339100..db6a25c65d81d 100644 --- a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java @@ -27,6 +27,7 @@ import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -60,6 +61,7 @@ public class QueryRescoreBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; private static IndicesQueriesRegistry indicesQueriesRegistry; + private static NamedXContentRegistry xContentRegistry; /** * setup for the whole base test class @@ -69,12 +71,14 @@ public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); indicesQueriesRegistry = searchModule.getQueryParserRegistry(); + xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; indicesQueriesRegistry = null; + xContentRegistry = null; } /** @@ -258,6 +262,11 @@ private QueryParseContext createContext(String rescoreElement) throws IOExceptio return context; } + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } + private static RescoreBuilder mutate(RescoreBuilder original) throws IOException { RescoreBuilder mutation = ESTestCase.copyWriteable(original, namedWriteableRegistry, QueryRescorerBuilder::new); if (randomBoolean()) { diff --git a/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java b/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java index 63e65a9106217..0c3072e6eecdf 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; @@ -77,11 +78,12 @@ import static org.elasticsearch.test.EqualsHashCodeTestUtils.checkEqualsAndHashCode; public abstract class AbstractSortTestCase> extends ESTestCase { + private static final int NUMBER_OF_TESTBUILDERS = 20; protected static NamedWriteableRegistry namedWriteableRegistry; - private static final int NUMBER_OF_TESTBUILDERS = 20; static IndicesQueriesRegistry indicesQueriesRegistry; + private static NamedXContentRegistry xContentRegistry; private static ScriptService scriptService; @BeforeClass @@ -105,6 +107,7 @@ public CompiledScript compile(Script script, ScriptContext scriptContext, Map Date: Tue, 20 Dec 2016 16:58:47 -0500 Subject: [PATCH 2/4] Remove IndicesQueriesRegistry Replace it with `XContentParser#namedObject`. --- .../org/elasticsearch/index/IndexModule.java | 4 +- .../org/elasticsearch/index/IndexService.java | 6 +-- .../index/query/QueryParseContext.java | 13 ++--- .../index/query/QueryRewriteContext.java | 7 +-- .../index/query/QueryShardContext.java | 9 ++-- .../elasticsearch/indices/IndicesService.java | 18 +------ .../indices/query/IndicesQueriesRegistry.java | 32 ------------ .../java/org/elasticsearch/node/Node.java | 4 +- .../rest/action/RestActions.java | 7 ++- .../indices/RestValidateQueryAction.java | 12 +---- .../rest/action/cat/RestCountAction.java | 9 +--- .../rest/action/document/RestCountAction.java | 11 +--- .../rest/action/search/RestExplainAction.java | 9 +--- .../action/search/RestMultiSearchAction.java | 3 +- .../rest/action/search/RestSearchAction.java | 2 +- .../elasticsearch/search/SearchModule.java | 9 +--- .../search/SearchRequestParsers.java | 14 +---- .../search/MultiSearchRequestTests.java | 11 +--- .../elasticsearch/index/IndexModuleTests.java | 5 +- .../index/mapper/DateFieldTypeTests.java | 10 ++-- .../index/mapper/RangeFieldTypeTests.java | 2 +- .../index/query/InnerHitBuilderTests.java | 6 +-- .../index/query/QueryParseContextTests.java | 30 +++++------ .../index/query/QueryShardContextTests.java | 2 +- .../index/query/RangeQueryRewriteTests.java | 6 +-- .../index/query/SimpleQueryParserTests.java | 26 +--------- .../search/AbstractSearchTestCase.java | 3 -- .../search/SearchModuleTests.java | 52 +++++++------------ .../AggregationCollectorTests.java | 4 +- .../aggregations/AggregatorParsingTests.java | 15 +++--- .../aggregations/BaseAggregationTestCase.java | 5 +- .../BasePipelineAggregationTestCase.java | 5 +- .../geogrid/GeoHashGridParserTests.java | 14 ++--- .../bucket/histogram/ExtendedBoundsTests.java | 2 +- .../SignificanceHeuristicTests.java | 7 +-- .../aggregations/metrics/FiltersTests.java | 8 ++- .../aggregations/metrics/TopHitsTests.java | 5 +- .../ExtendedStatsBucketTests.java | 2 +- .../bucketmetrics/PercentilesBucketTests.java | 2 +- .../pipeline/moving/avg/MovAvgTests.java | 2 +- .../support/IncludeExcludeTests.java | 7 +-- .../builder/SearchSourceBuilderTests.java | 4 +- .../highlight/HighlightBuilderTests.java | 20 +++---- .../ShardSearchTransportRequestTests.java | 4 +- .../rescore/QueryRescoreBuilderTests.java | 10 ++-- .../searchafter/SearchAfterBuilderTests.java | 23 +------- .../search/slice/SliceBuilderTests.java | 24 +-------- .../search/sort/AbstractSortTestCase.java | 8 +-- .../search/sort/FieldSortBuilderTests.java | 2 +- .../sort/GeoDistanceSortBuilderTests.java | 17 +++--- .../search/sort/ScoreSortBuilderTests.java | 5 +- .../search/sort/ScriptSortBuilderTests.java | 10 ++-- .../search/sort/SortBuilderTests.java | 17 +++--- .../AbstractSuggestionBuilderTestCase.java | 8 +-- .../search/suggest/SuggestBuilderTests.java | 4 +- .../CategoryContextMappingTests.java | 3 +- .../completion/GeoContextMappingTests.java | 3 +- .../completion/QueryContextTestCase.java | 4 +- .../phrase/DirectCandidateGeneratorTests.java | 11 ++-- .../phrase/SmoothingModelTestCase.java | 3 +- .../TransportSearchTemplateAction.java | 2 +- .../TransportMultiPercolateAction.java | 2 +- .../percolator/TransportPercolateAction.java | 9 ++-- .../index/reindex/RestReindexAction.java | 2 +- .../index/reindex/RestReindexActionTests.java | 5 +- .../test/AbstractQueryTestCase.java | 8 +-- .../search/MockSearchServiceTests.java | 2 +- 67 files changed, 168 insertions(+), 442 deletions(-) delete mode 100644 core/src/main/java/org/elasticsearch/indices/query/IndicesQueriesRegistry.java diff --git a/core/src/main/java/org/elasticsearch/index/IndexModule.java b/core/src/main/java/org/elasticsearch/index/IndexModule.java index 3734a4eab5807..97edd2fd468f8 100644 --- a/core/src/main/java/org/elasticsearch/index/IndexModule.java +++ b/core/src/main/java/org/elasticsearch/index/IndexModule.java @@ -48,7 +48,6 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.mapper.MapperRegistry; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ScriptService; import org.elasticsearch.threadpool.ThreadPool; @@ -327,7 +326,6 @@ public IndexService newIndexService( BigArrays bigArrays, ThreadPool threadPool, ScriptService scriptService, - IndicesQueriesRegistry indicesQueriesRegistry, ClusterService clusterService, Client client, IndicesQueryCache indicesQueryCache, @@ -366,7 +364,7 @@ public IndexService newIndexService( } return new IndexService(indexSettings, environment, xContentRegistry, new SimilarityService(indexSettings, similarities), shardStoreDeleter, analysisRegistry, engineFactory.get(), circuitBreakerService, bigArrays, threadPool, scriptService, - indicesQueriesRegistry, clusterService, client, queryCache, store, eventListener, searcherWrapperFactory, mapperRegistry, + clusterService, client, queryCache, store, eventListener, searcherWrapperFactory, mapperRegistry, indicesFieldDataCache, globalCheckpointSyncer, searchOperationListeners, indexOperationListeners); } diff --git a/core/src/main/java/org/elasticsearch/index/IndexService.java b/core/src/main/java/org/elasticsearch/index/IndexService.java index 11018d75b3bc3..32a0268e3ea8f 100644 --- a/core/src/main/java/org/elasticsearch/index/IndexService.java +++ b/core/src/main/java/org/elasticsearch/index/IndexService.java @@ -68,7 +68,6 @@ import org.elasticsearch.indices.cluster.IndicesClusterStateService; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.mapper.MapperRegistry; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ScriptService; import org.elasticsearch.threadpool.ThreadPool; @@ -120,7 +119,6 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust private final BigArrays bigArrays; private final AsyncGlobalCheckpointTask globalCheckpointTask; private final ScriptService scriptService; - private final IndicesQueriesRegistry queryRegistry; private final ClusterService clusterService; private final Client client; @@ -134,7 +132,6 @@ public IndexService(IndexSettings indexSettings, NodeEnvironment nodeEnv, BigArrays bigArrays, ThreadPool threadPool, ScriptService scriptService, - IndicesQueriesRegistry queryRegistry, ClusterService clusterService, Client client, QueryCache queryCache, @@ -162,7 +159,6 @@ public IndexService(IndexSettings indexSettings, NodeEnvironment nodeEnv, this.bigArrays = bigArrays; this.threadPool = threadPool; this.scriptService = scriptService; - this.queryRegistry = queryRegistry; this.clusterService = clusterService; this.client = client; this.eventListener = eventListener; @@ -478,7 +474,7 @@ public IndexSettings getIndexSettings() { public QueryShardContext newQueryShardContext(int shardId, IndexReader indexReader, LongSupplier nowInMillis) { return new QueryShardContext( shardId, indexSettings, indexCache.bitsetFilterCache(), indexFieldData, mapperService(), - similarityService(), scriptService, xContentRegistry, queryRegistry, + similarityService(), scriptService, xContentRegistry, client, indexReader, nowInMillis); } diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java index 0d9f9b4845201..c8b0e1cb67245 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry.UnknownNamedObjectException; import org.elasticsearch.common.xcontent.XContentLocation; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.Script; import java.io.IOException; @@ -38,17 +37,14 @@ public class QueryParseContext implements ParseFieldMatcherSupplier { private static final ParseField CACHE_KEY = new ParseField("_cache_key").withAllDeprecated("Filters are always used as cache keys"); private final XContentParser parser; - private final IndicesQueriesRegistry indicesQueriesRegistry; private final ParseFieldMatcher parseFieldMatcher; private final String defaultScriptLanguage; - public QueryParseContext(IndicesQueriesRegistry registry, XContentParser parser, ParseFieldMatcher parseFieldMatcher) { - this(Script.DEFAULT_SCRIPT_LANG, registry, parser, parseFieldMatcher); + public QueryParseContext(XContentParser parser, ParseFieldMatcher parseFieldMatcher) { + this(Script.DEFAULT_SCRIPT_LANG, parser, parseFieldMatcher); } - public QueryParseContext(String defaultScriptLanguage, IndicesQueriesRegistry registry, XContentParser parser, - ParseFieldMatcher parseFieldMatcher) { - this.indicesQueriesRegistry = Objects.requireNonNull(registry, "indices queries registry cannot be null"); + public QueryParseContext(String defaultScriptLanguage, XContentParser parser, ParseFieldMatcher parseFieldMatcher) { this.parser = Objects.requireNonNull(parser, "parser cannot be null"); this.parseFieldMatcher = Objects.requireNonNull(parseFieldMatcher, "parse field matcher cannot be null"); this.defaultScriptLanguage = defaultScriptLanguage; @@ -112,8 +108,9 @@ public QueryBuilder parseInnerQueryBuilder() throws IOException { result = parser.namedObject(QueryBuilder.class, queryName, this); } catch (UnknownNamedObjectException e) { // Preserve the error message from 5.0 until we have a compellingly better message so we don't break BWC. + // This intentionally doesn't include the causing exception because that'd change the "root_cause" of any unknown query errors throw new ParsingException(new XContentLocation(e.getLineNumber(), e.getColumnNumber()), - "no [query] registered for [" + e.getName() + "]", e); + "no [query] registered for [" + e.getName() + "]"); } //end_object of the specific query (e.g. match, multi_match etc.) element if (parser.currentToken() != XContentParser.Token.END_OBJECT) { diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java b/core/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java index e98af78cf2426..13362f676aa57 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryRewriteContext.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.mapper.MapperService; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; @@ -43,19 +42,17 @@ public class QueryRewriteContext implements ParseFieldMatcherSupplier { protected final ScriptService scriptService; protected final IndexSettings indexSettings; private final NamedXContentRegistry xContentRegistry; - protected final IndicesQueriesRegistry indicesQueriesRegistry; protected final Client client; protected final IndexReader reader; protected final LongSupplier nowInMillis; public QueryRewriteContext(IndexSettings indexSettings, MapperService mapperService, ScriptService scriptService, - NamedXContentRegistry xContentRegistry, IndicesQueriesRegistry indicesQueriesRegistry, Client client, IndexReader reader, + NamedXContentRegistry xContentRegistry, Client client, IndexReader reader, LongSupplier nowInMillis) { this.mapperService = mapperService; this.scriptService = scriptService; this.indexSettings = indexSettings; this.xContentRegistry = xContentRegistry; - this.indicesQueriesRegistry = indicesQueriesRegistry; this.client = client; this.reader = reader; this.nowInMillis = nowInMillis; @@ -107,7 +104,7 @@ public NamedXContentRegistry getXContentRegistry() { * are configured in the index settings. The default script language will always default to Painless. */ public QueryParseContext newParseContext(XContentParser parser) { - return new QueryParseContext(indicesQueriesRegistry, parser, indexSettings.getParseFieldMatcher()); + return new QueryParseContext(parser, indexSettings.getParseFieldMatcher()); } public long nowInMillis() { diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryShardContext.java b/core/src/main/java/org/elasticsearch/index/query/QueryShardContext.java index a4a1193063b89..31668922e6e4f 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryShardContext.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryShardContext.java @@ -48,7 +48,6 @@ import org.elasticsearch.index.mapper.TextFieldMapper; import org.elasticsearch.index.query.support.NestedScope; import org.elasticsearch.index.similarity.SimilarityService; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.CompiledScript; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.Script; @@ -92,7 +91,6 @@ public String[] getTypes() { private final Map namedQueries = new HashMap<>(); private final MapperQueryParser queryParser = new MapperQueryParser(this); - private final IndicesQueriesRegistry indicesQueriesRegistry; private boolean allowUnmappedFields; private boolean mapUnmappedFieldAsString; private NestedScope nestedScope; @@ -100,9 +98,9 @@ public String[] getTypes() { public QueryShardContext(int shardId, IndexSettings indexSettings, BitsetFilterCache bitsetFilterCache, IndexFieldDataService indexFieldDataService, MapperService mapperService, SimilarityService similarityService, - ScriptService scriptService, NamedXContentRegistry xContentRegistry, IndicesQueriesRegistry indicesQueriesRegistry, + ScriptService scriptService, NamedXContentRegistry xContentRegistry, Client client, IndexReader reader, LongSupplier nowInMillis) { - super(indexSettings, mapperService, scriptService, xContentRegistry, indicesQueriesRegistry, client, reader, nowInMillis); + super(indexSettings, mapperService, scriptService, xContentRegistry, client, reader, nowInMillis); this.shardId = shardId; this.indexSettings = indexSettings; this.similarityService = similarityService; @@ -110,14 +108,13 @@ public QueryShardContext(int shardId, IndexSettings indexSettings, BitsetFilterC this.bitsetFilterCache = bitsetFilterCache; this.indexFieldDataService = indexFieldDataService; this.allowUnmappedFields = indexSettings.isDefaultAllowUnmappedFields(); - this.indicesQueriesRegistry = indicesQueriesRegistry; this.nestedScope = new NestedScope(); } public QueryShardContext(QueryShardContext source) { this(source.shardId, source.indexSettings, source.bitsetFilterCache, source.indexFieldDataService, source.mapperService, - source.similarityService, source.scriptService, source.getXContentRegistry(), source.indicesQueriesRegistry, source.client, + source.similarityService, source.scriptService, source.getXContentRegistry(), source.client, source.reader, source.nowInMillis); this.types = source.getTypes(); } diff --git a/core/src/main/java/org/elasticsearch/indices/IndicesService.java b/core/src/main/java/org/elasticsearch/indices/IndicesService.java index 413af6466db17..8f5d01d768369 100644 --- a/core/src/main/java/org/elasticsearch/indices/IndicesService.java +++ b/core/src/main/java/org/elasticsearch/indices/IndicesService.java @@ -19,8 +19,6 @@ package org.elasticsearch.indices; -import com.carrotsearch.hppc.cursors.ObjectCursor; - import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.message.ParameterizedMessage; import org.apache.lucene.index.DirectoryReader; @@ -41,7 +39,6 @@ import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver; -import org.elasticsearch.cluster.metadata.MappingMetaData; import org.elasticsearch.cluster.routing.RecoverySource; import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.service.ClusterService; @@ -106,7 +103,6 @@ import org.elasticsearch.indices.cluster.IndicesClusterStateService; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.mapper.MapperRegistry; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.indices.recovery.PeerRecoveryTargetService; import org.elasticsearch.indices.recovery.RecoveryState; import org.elasticsearch.plugins.PluginsService; @@ -156,7 +152,6 @@ public class IndicesService extends AbstractLifecycleComponent private final NamedXContentRegistry xContentRegistry; private final TimeValue shardsClosedTimeout; private final AnalysisRegistry analysisRegistry; - private final IndicesQueriesRegistry indicesQueriesRegistry; private final IndexNameExpressionResolver indexNameExpressionResolver; private final IndexScopedSettings indexScopeSetting; private final IndicesFieldDataCache indicesFieldDataCache; @@ -187,7 +182,7 @@ protected void doStart() { public IndicesService(Settings settings, PluginsService pluginsService, NodeEnvironment nodeEnv, NamedXContentRegistry xContentRegistry, ClusterSettings clusterSettings, AnalysisRegistry analysisRegistry, - IndicesQueriesRegistry indicesQueriesRegistry, IndexNameExpressionResolver indexNameExpressionResolver, + IndexNameExpressionResolver indexNameExpressionResolver, MapperRegistry mapperRegistry, NamedWriteableRegistry namedWriteableRegistry, ThreadPool threadPool, IndexScopedSettings indexScopedSettings, CircuitBreakerService circuitBreakerService, BigArrays bigArrays, ScriptService scriptService, ClusterService clusterService, Client client, @@ -199,7 +194,6 @@ public IndicesService(Settings settings, PluginsService pluginsService, NodeEnvi this.xContentRegistry = xContentRegistry; this.shardsClosedTimeout = settings.getAsTime(INDICES_SHARDS_CLOSED_TIMEOUT, new TimeValue(1, TimeUnit.DAYS)); this.analysisRegistry = analysisRegistry; - this.indicesQueriesRegistry = indicesQueriesRegistry; this.indexNameExpressionResolver = indexNameExpressionResolver; this.indicesRequestCache = new IndicesRequestCache(settings); this.indicesQueryCache = new IndicesQueryCache(settings); @@ -451,7 +445,6 @@ private synchronized IndexService createIndexService(final String reason, bigArrays, threadPool, scriptService, - indicesQueriesRegistry, clusterService, client, indicesQueryCache, @@ -1017,13 +1010,6 @@ public boolean hasUncompletedPendingDeletes() { return numUncompletedDeletes.get() > 0; } - /** - * Returns this nodes {@link IndicesQueriesRegistry} - */ - public IndicesQueriesRegistry getIndicesQueryRegistry() { - return indicesQueriesRegistry; - } - public AnalysisRegistry getAnalysis() { return analysisRegistry; } @@ -1268,7 +1254,7 @@ public AliasFilter buildAliasFilter(ClusterState state, String index, String... * of dependencies we pass in a function that can perform the parsing. */ ShardSearchRequest.FilterParser filterParser = bytes -> { try (XContentParser parser = XContentFactory.xContent(bytes).createParser(xContentRegistry, bytes)) { - return new QueryParseContext(indicesQueriesRegistry, parser, new ParseFieldMatcher(settings)).parseInnerQueryBuilder(); + return new QueryParseContext(parser, new ParseFieldMatcher(settings)).parseInnerQueryBuilder(); } }; String[] aliases = indexNameExpressionResolver.filteringAliases(state, index, expressions); diff --git a/core/src/main/java/org/elasticsearch/indices/query/IndicesQueriesRegistry.java b/core/src/main/java/org/elasticsearch/indices/query/IndicesQueriesRegistry.java deleted file mode 100644 index f1d45b55495fb..0000000000000 --- a/core/src/main/java/org/elasticsearch/indices/query/IndicesQueriesRegistry.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch 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.elasticsearch.indices.query; - -import org.elasticsearch.common.xcontent.ParseFieldRegistry; -import org.elasticsearch.index.query.QueryParser; - -/** - * Extensions to ParseFieldRegistry to make Guice happy. - */ -public class IndicesQueriesRegistry extends ParseFieldRegistry> { - public IndicesQueriesRegistry() { - super("query"); - } -} diff --git a/core/src/main/java/org/elasticsearch/node/Node.java b/core/src/main/java/org/elasticsearch/node/Node.java index bfe5ad453b548..2c29d00ecc60d 100644 --- a/core/src/main/java/org/elasticsearch/node/Node.java +++ b/core/src/main/java/org/elasticsearch/node/Node.java @@ -94,7 +94,6 @@ import org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService; import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; import org.elasticsearch.indices.cluster.IndicesClusterStateService; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.indices.recovery.PeerRecoverySourceService; import org.elasticsearch.indices.recovery.PeerRecoveryTargetService; import org.elasticsearch.indices.recovery.RecoverySettings; @@ -372,7 +371,7 @@ protected Node(final Environment environment, Collection ).flatMap(Function.identity()).collect(toList())); final MetaStateService metaStateService = new MetaStateService(settings, nodeEnvironment); final IndicesService indicesService = new IndicesService(settings, pluginsService, nodeEnvironment, xContentRegistry, - settingsModule.getClusterSettings(), analysisModule.getAnalysisRegistry(), searchModule.getQueryParserRegistry(), + settingsModule.getClusterSettings(), analysisModule.getAnalysisRegistry(), clusterModule.getIndexNameExpressionResolver(), indicesModule.getMapperRegistry(), namedWriteableRegistry, threadPool, settingsModule.getIndexScopedSettings(), circuitBreakerService, bigArrays, scriptModule.getScriptService(), clusterService, client, metaStateService); @@ -410,7 +409,6 @@ protected Node(final Environment environment, Collection final DiscoveryModule discoveryModule = new DiscoveryModule(this.settings, threadPool, transportService, networkService, clusterService, pluginsService.filterPlugins(DiscoveryPlugin.class)); modules.add(b -> { - b.bind(IndicesQueriesRegistry.class).toInstance(searchModule.getQueryParserRegistry()); b.bind(SearchRequestParsers.class).toInstance(searchModule.getSearchRequestParsers()); b.bind(SearchExtRegistry.class).toInstance(searchModule.getSearchExtRegistry()); b.bind(NamedXContentRegistry.class).toInstance(xContentRegistry); diff --git a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java index 0cb1a248b170f..bffa7ac871d88 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java +++ b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java @@ -36,7 +36,6 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryStringQueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BytesRestResponse; import org.elasticsearch.rest.RestChannel; import org.elasticsearch.rest.RestRequest; @@ -195,9 +194,9 @@ public static QueryBuilder urlParamsToQueryBuilder(RestRequest request) { return queryBuilder; } - public static QueryBuilder getQueryContent(XContentParser requestParser, IndicesQueriesRegistry indicesQueriesRegistry, - ParseFieldMatcher parseFieldMatcher) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, requestParser, parseFieldMatcher); + public static QueryBuilder getQueryContent(XContentParser requestParser, ParseFieldMatcher parseFieldMatcher) { + // NOCOMMIT it is very close to time to remove this + QueryParseContext context = new QueryParseContext(requestParser, parseFieldMatcher); return context.parseTopLevelQueryBuilder(); } diff --git a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java index 8b68a3b6168fe..e12baa35beca6 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java @@ -19,7 +19,6 @@ package org.elasticsearch.rest.action.admin.indices; -import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.admin.indices.validate.query.QueryExplanation; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryResponse; @@ -30,9 +29,6 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.BytesRestResponse; import org.elasticsearch.rest.RestChannel; @@ -50,11 +46,8 @@ import static org.elasticsearch.rest.action.RestActions.buildBroadcastShardsHeader; public class RestValidateQueryAction extends BaseRestHandler { - - private final IndicesQueriesRegistry indicesQueriesRegistry; - @Inject - public RestValidateQueryAction(Settings settings, RestController controller, IndicesQueriesRegistry indicesQueriesRegistry) { + public RestValidateQueryAction(Settings settings, RestController controller) { super(settings); controller.registerHandler(GET, "/_validate/query", this); controller.registerHandler(POST, "/_validate/query", this); @@ -62,7 +55,6 @@ public RestValidateQueryAction(Settings settings, RestController controller, Ind controller.registerHandler(POST, "/{index}/_validate/query", this); controller.registerHandler(GET, "/{index}/{type}/_validate/query", this); controller.registerHandler(POST, "/{index}/{type}/_validate/query", this); - this.indicesQueriesRegistry = indicesQueriesRegistry; } @Override @@ -77,7 +69,7 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC try { request.withContentOrSourceParamParserOrNull(parser -> { if (parser != null) { - validateQueryRequest.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + validateQueryRequest.query(RestActions.getQueryContent(parser, parseFieldMatcher)); } else if (request.hasParam("q")) { validateQueryRequest.query(RestActions.urlParamsToQueryBuilder(request)); } diff --git a/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java b/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java index 22346ad277235..49cbcfa66105e 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; @@ -41,15 +40,11 @@ import static org.elasticsearch.rest.RestRequest.Method.GET; public class RestCountAction extends AbstractCatAction { - - private final IndicesQueriesRegistry indicesQueriesRegistry; - @Inject - public RestCountAction(Settings settings, RestController restController, RestController controller, IndicesQueriesRegistry indicesQueriesRegistry) { + public RestCountAction(Settings settings, RestController restController, RestController controller) { super(settings); restController.registerHandler(GET, "/_cat/count", this); restController.registerHandler(GET, "/_cat/count/{index}", this); - this.indicesQueriesRegistry = indicesQueriesRegistry; } @Override @@ -72,7 +67,7 @@ public RestChannelConsumer doCatRequest(final RestRequest request, final NodeCli searchSourceBuilder.query(queryBuilder); } } else { - searchSourceBuilder.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + searchSourceBuilder.query(RestActions.getQueryContent(parser, parseFieldMatcher)); } }); } catch (IOException e) { diff --git a/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java b/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java index 2983879961ccc..86acb1fb1b967 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java @@ -19,7 +19,6 @@ package org.elasticsearch.rest.action.document; -import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.IndicesOptions; @@ -28,9 +27,7 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.BytesRestResponse; import org.elasticsearch.rest.RestController; @@ -48,11 +45,8 @@ import static org.elasticsearch.search.internal.SearchContext.DEFAULT_TERMINATE_AFTER; public class RestCountAction extends BaseRestHandler { - - private final IndicesQueriesRegistry indicesQueriesRegistry; - @Inject - public RestCountAction(Settings settings, RestController controller, IndicesQueriesRegistry indicesQueriesRegistry) { + public RestCountAction(Settings settings, RestController controller) { super(settings); controller.registerHandler(POST, "/_count", this); controller.registerHandler(GET, "/_count", this); @@ -60,7 +54,6 @@ public RestCountAction(Settings settings, RestController controller, IndicesQuer controller.registerHandler(GET, "/{index}/_count", this); controller.registerHandler(POST, "/{index}/{type}/_count", this); controller.registerHandler(GET, "/{index}/{type}/_count", this); - this.indicesQueriesRegistry = indicesQueriesRegistry; } @Override @@ -76,7 +69,7 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC searchSourceBuilder.query(queryBuilder); } } else { - searchSourceBuilder.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + searchSourceBuilder.query(RestActions.getQueryContent(parser, parseFieldMatcher)); } }); countRequest.routing(request.param("routing")); diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java index 7d31ed7cad50b..a3c845555bf25 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.get.GetResult; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.BytesRestResponse; import org.elasticsearch.rest.RestController; @@ -50,13 +49,9 @@ * Rest action for computing a score explanation for specific documents. */ public class RestExplainAction extends BaseRestHandler { - - private final IndicesQueriesRegistry indicesQueriesRegistry; - @Inject - public RestExplainAction(Settings settings, RestController controller, IndicesQueriesRegistry indicesQueriesRegistry) { + public RestExplainAction(Settings settings, RestController controller) { super(settings); - this.indicesQueriesRegistry = indicesQueriesRegistry; controller.registerHandler(GET, "/{index}/{type}/{id}/_explain", this); controller.registerHandler(POST, "/{index}/{type}/{id}/_explain", this); } @@ -70,7 +65,7 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC String queryString = request.param("q"); request.withContentOrSourceParamParserOrNull(parser -> { if (parser != null) { - explainRequest.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + explainRequest.query(RestActions.getQueryContent(parser, parseFieldMatcher)); } else if (queryString != null) { QueryBuilder query = RestActions.urlParamsToQueryBuilder(request); explainRequest.query(query); diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java index 502d427050fe0..95c8ed51a3fae 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java @@ -89,8 +89,7 @@ public static MultiSearchRequest parseRequest(RestRequest restRequest, boolean a parseMultiLineRequest(restRequest, multiRequest.indicesOptions(), allowExplicitIndex, (searchRequest, parser) -> { try { - final QueryParseContext queryParseContext = new QueryParseContext(searchRequestParsers.queryParsers, parser, - parseFieldMatcher); + final QueryParseContext queryParseContext = new QueryParseContext(parser, parseFieldMatcher); searchRequest.source(SearchSourceBuilder.fromXContent(queryParseContext, searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers)); multiRequest.add(searchRequest); diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java index 425acbf41e3e0..b0e0ce074cf3d 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java @@ -92,7 +92,7 @@ public static void parseSearchRequest(SearchRequest searchRequest, RestRequest r } searchRequest.indices(Strings.splitStringByCommaToArray(request.param("index"))); if (requestContentParser != null) { - QueryParseContext context = new QueryParseContext(searchRequestParsers.queryParsers, requestContentParser, parseFieldMatcher); + QueryParseContext context = new QueryParseContext(requestContentParser, parseFieldMatcher); searchRequest.source().parseXContent(context, searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers); } diff --git a/core/src/main/java/org/elasticsearch/search/SearchModule.java b/core/src/main/java/org/elasticsearch/search/SearchModule.java index 8469cd2b63017..41b59e6d68680 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/core/src/main/java/org/elasticsearch/search/SearchModule.java @@ -85,7 +85,6 @@ import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilder; import org.elasticsearch.index.query.functionscore.ScriptScoreFunctionBuilder; import org.elasticsearch.index.query.functionscore.WeightBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.plugins.SearchPlugin.AggregationSpec; import org.elasticsearch.plugins.SearchPlugin.FetchPhaseConstructionContext; @@ -269,7 +268,6 @@ public class SearchModule { private final boolean transportClient; private final Map highlighters; private final Map> suggesters; - private final IndicesQueriesRegistry queryParserRegistry = new IndicesQueriesRegistry(); private final ParseFieldRegistry aggregationParserRegistry = new ParseFieldRegistry<>("aggregation"); private final ParseFieldRegistry pipelineAggregationParserRegistry = new ParseFieldRegistry<>( "pipline_aggregation"); @@ -304,7 +302,7 @@ public SearchModule(Settings settings, boolean transportClient, List getNamedWriteables() { @@ -319,10 +317,6 @@ public Suggesters getSuggesters() { return new Suggesters(suggesters); } - public IndicesQueriesRegistry getQueryParserRegistry() { - return queryParserRegistry; - } - public SearchRequestParsers getSearchRequestParsers() { return searchRequestParsers; } @@ -780,7 +774,6 @@ private void registerQueryParsers(List plugins) { } private void registerQuery(QuerySpec spec) { - queryParserRegistry.register(spec.getParser(), spec.getName()); namedWriteables.add(new NamedWriteableRegistry.Entry(QueryBuilder.class, spec.getName().getPreferredName(), spec.getReader())); namedXContents.add(new NamedXContentRegistry.Entry(QueryBuilder.class, spec.getName(), (p, c) -> spec.getParser().fromXContent((QueryParseContext) c))); diff --git a/core/src/main/java/org/elasticsearch/search/SearchRequestParsers.java b/core/src/main/java/org/elasticsearch/search/SearchRequestParsers.java index ba3afc1577196..085f55ad71f88 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchRequestParsers.java +++ b/core/src/main/java/org/elasticsearch/search/SearchRequestParsers.java @@ -20,7 +20,6 @@ package org.elasticsearch.search; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.aggregations.AggregatorParsers; import org.elasticsearch.search.suggest.Suggesters; @@ -33,15 +32,6 @@ public class SearchRequestParsers { // methods split across RestSearchAction and SearchSourceBuilder should be moved here // TODO: make all members private once parsing functions are moved here - // TODO: IndicesQueriesRegistry should be removed and just have the map of query parsers here - /** - * Query parsers that may be used in search requests. - * @see org.elasticsearch.index.query.QueryParseContext - * @see org.elasticsearch.search.builder.SearchSourceBuilder#fromXContent(QueryParseContext, AggregatorParsers, - * Suggesters, SearchExtRegistry) - */ - public final IndicesQueriesRegistry queryParsers; - // TODO: AggregatorParsers should be removed and the underlying maps of agg // and pipeline agg parsers should be here /** @@ -64,9 +54,7 @@ public class SearchRequestParsers { */ public final SearchExtRegistry searchExtParsers; - public SearchRequestParsers(IndicesQueriesRegistry queryParsers, AggregatorParsers aggParsers, Suggesters suggesters, - SearchExtRegistry searchExtParsers) { - this.queryParsers = queryParsers; + public SearchRequestParsers(AggregatorParsers aggParsers, Suggesters suggesters, SearchExtRegistry searchExtParsers) { this.aggParsers = aggParsers; this.suggesters = suggesters; this.searchExtParsers = searchExtParsers; 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 8fb3c05f249e1..cdaae6aa0ff42 100644 --- a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java +++ b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java @@ -28,12 +28,10 @@ import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryParser; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.action.search.RestMultiSearchAction; import org.elasticsearch.search.SearchRequestParsers; @@ -174,7 +172,7 @@ public void testMaxConcurrentSearchRequests() { private MultiSearchRequest parseMultiSearchRequest(String sample) throws IOException { byte[] data = StreamsUtils.copyToBytesFromClasspath(sample); RestRequest restRequest = new FakeRestRequest.Builder(xContentRegistry()).withContent(new BytesArray(data)).build(); - return RestMultiSearchAction.parseRequest(restRequest, true, parsers(), ParseFieldMatcher.EMPTY); + return RestMultiSearchAction.parseRequest(restRequest, true, new SearchRequestParsers(null, null, null), ParseFieldMatcher.EMPTY); } @Override @@ -182,11 +180,4 @@ protected NamedXContentRegistry xContentRegistry() { return new NamedXContentRegistry(singletonList(new NamedXContentRegistry.Entry(QueryBuilder.class, new ParseField(MatchAllQueryBuilder.NAME), (p, c) -> MatchAllQueryBuilder.fromXContent((QueryParseContext) c)))); } - - private SearchRequestParsers parsers() { - IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); - QueryParser parser = MatchAllQueryBuilder::fromXContent; - registry.register(parser, MatchAllQueryBuilder.NAME); - return new SearchRequestParsers(registry, null, null, null); - } } diff --git a/core/src/test/java/org/elasticsearch/index/IndexModuleTests.java b/core/src/test/java/org/elasticsearch/index/IndexModuleTests.java index e9b52589b9ca4..46281c812f180 100644 --- a/core/src/test/java/org/elasticsearch/index/IndexModuleTests.java +++ b/core/src/test/java/org/elasticsearch/index/IndexModuleTests.java @@ -64,7 +64,6 @@ import org.elasticsearch.indices.cluster.IndicesClusterStateService.AllocatedIndices.IndexRemovalReason; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.mapper.MapperRegistry; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ScriptContextRegistry; import org.elasticsearch.script.ScriptEngineRegistry; import org.elasticsearch.script.ScriptService; @@ -110,7 +109,6 @@ public void addPendingDelete(ShardId shardId, IndexSettings indexSettings) { private CircuitBreakerService circuitBreakerService; private BigArrays bigArrays; private ScriptService scriptService; - private IndicesQueriesRegistry indicesQueriesRegistry; private ClusterService clusterService; @Override @@ -130,7 +128,6 @@ public void setUp() throws Exception { ScriptSettings scriptSettings = new ScriptSettings(scriptEngineRegistry, scriptContextRegistry); scriptService = new ScriptService(settings, environment, new ResourceWatcherService(settings, threadPool), scriptEngineRegistry, scriptContextRegistry, scriptSettings); - indicesQueriesRegistry = new IndicesQueriesRegistry(); clusterService = ClusterServiceUtils.createClusterService(threadPool); nodeEnvironment = new NodeEnvironment(settings, environment); mapperRegistry = new IndicesModule(Collections.emptyList()).getMapperRegistry(); @@ -145,7 +142,7 @@ public void tearDown() throws Exception { private IndexService newIndexService(IndexModule module) throws IOException { return module.newIndexService(nodeEnvironment, xContentRegistry(), deleter, circuitBreakerService, bigArrays, threadPool, - scriptService, indicesQueriesRegistry, clusterService, null, indicesQueryCache, mapperRegistry, shardId -> {}, + scriptService, clusterService, null, indicesQueryCache, mapperRegistry, shardId -> {}, new IndicesFieldDataCache(settings, listener)); } diff --git a/core/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java b/core/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java index a93cf0153cf36..15f1819e939a9 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java +++ b/core/src/test/java/org/elasticsearch/index/mapper/DateFieldTypeTests.java @@ -71,7 +71,7 @@ public void modify(MappedFieldType ft) { } public void testIsFieldWithinQueryEmptyReader() throws IOException { - QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, null, + QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, () -> nowInMillis); IndexReader reader = new MultiReader(); DateFieldType ft = new DateFieldType(); @@ -82,7 +82,7 @@ public void testIsFieldWithinQueryEmptyReader() throws IOException { private void doTestIsFieldWithinQuery(DateFieldType ft, DirectoryReader reader, DateTimeZone zone, DateMathParser alternateFormat) throws IOException { - QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, null, + QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, () -> nowInMillis); assertEquals(Relation.INTERSECTS, ft.isFieldWithinQuery(reader, "2015-10-09", "2016-01-02", randomBoolean(), randomBoolean(), null, null, context)); @@ -130,7 +130,7 @@ public void testIsFieldWithinQuery() throws IOException { DateFieldType ft2 = new DateFieldType(); ft2.setName("my_date2"); - QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, null, + QueryRewriteContext context = new QueryRewriteContext(null, null, null, xContentRegistry(), null, null, () -> nowInMillis); assertEquals(Relation.DISJOINT, ft2.isFieldWithinQuery(reader, "2015-10-09", "2016-01-02", false, false, null, null, context)); IOUtils.close(reader, w, dir); @@ -166,7 +166,7 @@ public void testTermQuery() { QueryShardContext context = new QueryShardContext(0, new IndexSettings(IndexMetaData.builder("foo").settings(indexSettings).build(), indexSettings), - null, null, null, null, null, xContentRegistry(), null, null, null, () -> nowInMillis); + null, null, null, null, null, xContentRegistry(), null, null, () -> nowInMillis); MappedFieldType ft = createDefaultFieldType(); ft.setName("field"); String date = "2015-10-12T14:10:55"; @@ -185,7 +185,7 @@ public void testRangeQuery() throws IOException { .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1).put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 1).build(); QueryShardContext context = new QueryShardContext(0, new IndexSettings(IndexMetaData.builder("foo").settings(indexSettings).build(), indexSettings), - null, null, null, null, null, xContentRegistry(), null, null, null, () -> nowInMillis); + null, null, null, null, null, xContentRegistry(), null, null, () -> nowInMillis); MappedFieldType ft = createDefaultFieldType(); ft.setName("field"); String date1 = "2015-10-12T14:10:55"; diff --git a/core/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java b/core/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java index da82234990935..04f5dcb5b912c 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java +++ b/core/src/test/java/org/elasticsearch/index/mapper/RangeFieldTypeTests.java @@ -74,7 +74,7 @@ public void testRangeQuery() throws Exception { Settings indexSettings = Settings.builder() .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build(); IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(randomAsciiOfLengthBetween(1, 10), indexSettings); - QueryShardContext context = new QueryShardContext(0, idxSettings, null, null, null, null, null, xContentRegistry(), null, + QueryShardContext context = new QueryShardContext(0, idxSettings, null, null, null, null, null, xContentRegistry(), null, null, () -> nowInMillis); RangeFieldMapper.RangeFieldType ft = new RangeFieldMapper.RangeFieldType(type); ft.setName(FIELDNAME); diff --git a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java index fa232303286b3..6b9fbe76ba83a 100644 --- a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptType; import org.elasticsearch.search.SearchModule; @@ -63,21 +62,18 @@ public class InnerHitBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; - private static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; @BeforeClass public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; - indicesQueriesRegistry = null; xContentRegistry = null; } @@ -107,7 +103,7 @@ public void testFromAndToXContent() throws Exception { } XContentParser parser = createParser(shuffled); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); InnerHitBuilder secondInnerHits = InnerHitBuilder.fromXContent(context); assertThat(innerHit, not(sameInstance(secondInnerHits))); assertThat(innerHit, equalTo(secondInnerHits)); diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java index 5849372b219ea..1e00176f558d9 100644 --- a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.junit.After; @@ -39,13 +38,10 @@ import static java.util.Collections.emptyList; public class QueryParseContextTests extends ESTestCase { - - private static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; @BeforeClass public static void init() { - indicesQueriesRegistry = new SearchModule(Settings.EMPTY, false, emptyList()).getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, false, emptyList()).getNamedXContents()); } @@ -63,16 +59,11 @@ public void teardown() throws IOException { this.threadContext.close(); } - @Override - protected NamedXContentRegistry xContentRegistry() { - return xContentRegistry; - } - public void testParseTopLevelBuilder() throws IOException { QueryBuilder query = new MatchQueryBuilder("foo", "bar"); String requestBody = "{ \"query\" : " + query.toString() + "}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); QueryBuilder actual = context.parseTopLevelQueryBuilder(); assertEquals(query, actual); } @@ -81,7 +72,7 @@ public void testParseTopLevelBuilder() throws IOException { public void testParseTopLevelBuilderEmptyObject() throws IOException { String requestBody = "{}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); QueryBuilder query = context.parseTopLevelQueryBuilder(); assertNull(query); } @@ -90,7 +81,7 @@ public void testParseTopLevelBuilderEmptyObject() throws IOException { public void testParseTopLevelBuilderUnknownParameter() throws IOException { String requestBody = "{ \"foo\" : \"bar\"}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ParsingException exception = expectThrows(ParsingException.class, () -> context.parseTopLevelQueryBuilder()); assertEquals("request does not support [foo]", exception.getMessage()); } @@ -100,7 +91,7 @@ public void testParseInnerQueryBuilder() throws IOException { QueryBuilder query = new MatchQueryBuilder("foo", "bar"); String source = query.toString(); try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); QueryBuilder actual = context.parseInnerQueryBuilder(); assertEquals(query, actual); } @@ -111,30 +102,35 @@ public void testParseInnerQueryBuilderExceptions() throws IOException { try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { parser.nextToken(); parser.nextToken(); // don't start with START_OBJECT to provoke exception - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder()); assertEquals("[_na] query malformed, must start with start_object", exception.getMessage()); } source = "{}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); IllegalArgumentException exception = expectThrows(IllegalArgumentException.class, () -> context.parseInnerQueryBuilder()); assertEquals("query malformed, empty clause found at [1:2]", exception.getMessage()); } source = "{ \"foo\" : \"bar\" }"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder()); assertEquals("[foo] query malformed, no start_object after query name", exception.getMessage()); } source = "{ \"foo\" : {} }"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder()); assertEquals("no [query] registered for [foo]", exception.getMessage()); } } + + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } } diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java index ccf514dd41c04..434c3d1ebf3f8 100644 --- a/core/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/QueryShardContextTests.java @@ -48,7 +48,7 @@ public void testFailIfFieldMappingNotFound() { when(mapperService.getIndexSettings()).thenReturn(indexSettings); final long nowInMillis = randomPositiveLong(); QueryShardContext context = new QueryShardContext( - 0, indexSettings, null, null, mapperService, null, null, xContentRegistry(), null, null, null, + 0, indexSettings, null, null, mapperService, null, null, xContentRegistry(), null, null, () -> nowInMillis); context.setAllowUnmappedFields(false); diff --git a/core/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java b/core/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java index 607f3f924d3ec..d7ef534bcb2bd 100644 --- a/core/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/RangeQueryRewriteTests.java @@ -37,7 +37,7 @@ public void testRewriteMissingField() throws Exception { IndexService indexService = createIndex("test"); IndexReader reader = new MultiReader(); QueryRewriteContext context = new QueryShardContext(0, indexService.getIndexSettings(), null, null, indexService.mapperService(), - null, null, xContentRegistry(), null, null, reader, null); + null, null, xContentRegistry(), null, reader, null); RangeQueryBuilder range = new RangeQueryBuilder("foo"); assertEquals(Relation.DISJOINT, range.getRelation(context)); } @@ -54,7 +54,7 @@ public void testRewriteMissingReader() throws Exception { indexService.mapperService().merge("type", new CompressedXContent(mapping), MergeReason.MAPPING_UPDATE, false); QueryRewriteContext context = new QueryShardContext(0, indexService.getIndexSettings(), null, null, indexService.mapperService(), - null, null, xContentRegistry(), null, null, null, null); + null, null, xContentRegistry(), null, null, null); RangeQueryBuilder range = new RangeQueryBuilder("foo"); // can't make assumptions on a missing reader, so it must return INTERSECT assertEquals(Relation.INTERSECTS, range.getRelation(context)); @@ -73,7 +73,7 @@ public void testRewriteEmptyReader() throws Exception { new CompressedXContent(mapping), MergeReason.MAPPING_UPDATE, false); IndexReader reader = new MultiReader(); QueryRewriteContext context = new QueryShardContext(0, indexService.getIndexSettings(), null, null, indexService.mapperService(), - null, null, xContentRegistry(), null, null, reader, null); + null, null, xContentRegistry(), null, reader, null); RangeQueryBuilder range = new RangeQueryBuilder("foo"); // no values -> DISJOINT assertEquals(Relation.DISJOINT, range.getRelation(context)); diff --git a/core/src/test/java/org/elasticsearch/index/query/SimpleQueryParserTests.java b/core/src/test/java/org/elasticsearch/index/query/SimpleQueryParserTests.java index 2d7809b7df6f3..3c9b0f29d7558 100644 --- a/core/src/test/java/org/elasticsearch/index/query/SimpleQueryParserTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/SimpleQueryParserTests.java @@ -34,37 +34,15 @@ import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MockFieldMapper; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; -import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; -import org.junit.AfterClass; -import org.junit.BeforeClass; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import static java.util.Collections.emptyList; import static org.hamcrest.Matchers.equalTo; public class SimpleQueryParserTests extends ESTestCase { - - private static IndicesQueriesRegistry indicesQueriesRegistry; - - /** - * setup for the whole base test class - */ - @BeforeClass - public static void init() { - SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); - } - - @AfterClass - public static void afterClass() throws Exception { - indicesQueriesRegistry = null; - } - private static class MockSimpleQueryParser extends SimpleQueryParser { public MockSimpleQueryParser(Analyzer analyzer, Map weights, int flags, Settings settings) { super(analyzer, weights, flags, settings, null); @@ -148,7 +126,7 @@ public void testQuoteFieldSuffix() { IndexMetaData indexState = IndexMetaData.builder("index").settings(indexSettings).build(); IndexSettings settings = new IndexSettings(indexState, Settings.EMPTY); QueryShardContext mockShardContext = new QueryShardContext(0, settings, null, null, null, null, null, xContentRegistry(), - indicesQueriesRegistry, null, null, System::currentTimeMillis) { + null, null, System::currentTimeMillis) { @Override public MappedFieldType fieldMapper(String name) { return new MockFieldMapper.FakeFieldType(); @@ -161,7 +139,7 @@ public MappedFieldType fieldMapper(String name) { assertEquals(new TermQuery(new Term("foo.quote", "bar")), parser.parse("\"bar\"")); // Now check what happens if foo.quote does not exist - mockShardContext = new QueryShardContext(0, settings, null, null, null, null, null, xContentRegistry(), indicesQueriesRegistry, + mockShardContext = new QueryShardContext(0, settings, null, null, null, null, null, xContentRegistry(), null, null, System::currentTimeMillis) { @Override public MappedFieldType fieldMapper(String name) { diff --git a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java index 27ac2f2048432..310ad86eb1135 100644 --- a/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/AbstractSearchTestCase.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.indices.IndicesModule; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -55,7 +54,6 @@ public abstract class AbstractSearchTestCase extends ESTestCase { protected NamedWriteableRegistry namedWriteableRegistry; protected SearchRequestParsers searchRequestParsers; private TestSearchExtPlugin searchExtPlugin; - protected IndicesQueriesRegistry queriesRegistry; private NamedXContentRegistry xContentRegistry; public void setUp() throws Exception { @@ -69,7 +67,6 @@ public void setUp() throws Exception { namedWriteableRegistry = new NamedWriteableRegistry(entries); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); searchRequestParsers = searchModule.getSearchRequestParsers(); - queriesRegistry = searchModule.getQueryParserRegistry(); } @Override diff --git a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java index 2e9644191f677..89e846bdb8b25 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -19,20 +19,16 @@ package org.elasticsearch.search; import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.inject.ModuleTestCase; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.json.JsonXContent; +import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.index.query.QueryParser; import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.index.query.functionscore.GaussDecayFunctionBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; @@ -70,16 +66,17 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Set; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; +import static java.util.stream.Collectors.toSet; import static org.hamcrest.Matchers.containsInAnyOrder; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.notNullValue; public class SearchModuleTests extends ModuleTestCase { @@ -109,8 +106,8 @@ public List> getScoreFunctions() { GaussDecayFunctionBuilder.PARSER)); } }; - SearchModule searchModule = new SearchModule(Settings.EMPTY, false, singletonList(registersDupeScoreFunction)); - expectThrows(IllegalArgumentException.class, () -> new NamedXContentRegistry(searchModule.getNamedXContents())); + expectThrows(IllegalArgumentException.class, () -> new NamedXContentRegistry( + new SearchModule(Settings.EMPTY, false, singletonList(registersDupeScoreFunction)).getNamedXContents())); SearchPlugin registersDupeSignificanceHeuristic = new SearchPlugin() { @Override @@ -144,8 +141,8 @@ public List> getQueries() { return singletonList(new QuerySpec<>(TermQueryBuilder.NAME, TermQueryBuilder::new, TermQueryBuilder::fromXContent)); } }; - expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, false, - singletonList(registersDupeQuery))); + expectThrows(IllegalArgumentException.class, () -> new NamedXContentRegistry( + new SearchModule(Settings.EMPTY, false, singletonList(registersDupeQuery)).getNamedXContents())); SearchPlugin registersDupeAggregation = new SearchPlugin() { public List getAggregations() { @@ -200,31 +197,22 @@ public Map getHighlighters() { } public void testRegisteredQueries() throws IOException { - SearchModule module = new SearchModule(Settings.EMPTY, false, emptyList()); List allSupportedQueries = new ArrayList<>(); Collections.addAll(allSupportedQueries, NON_DEPRECATED_QUERIES); Collections.addAll(allSupportedQueries, DEPRECATED_QUERIES); - String[] supportedQueries = allSupportedQueries.toArray(new String[allSupportedQueries.size()]); - assertThat(module.getQueryParserRegistry().getNames(), containsInAnyOrder(supportedQueries)); - - IndicesQueriesRegistry indicesQueriesRegistry = module.getQueryParserRegistry(); - XContentParser dummyParser = createParser(JsonXContent.jsonXContent, new BytesArray("{}")); - for (String queryName : supportedQueries) { - indicesQueriesRegistry.lookup(queryName, ParseFieldMatcher.EMPTY, dummyParser.getTokenLocation()); - } + SearchModule module = new SearchModule(Settings.EMPTY, false, emptyList()); - for (String queryName : NON_DEPRECATED_QUERIES) { - QueryParser queryParser = indicesQueriesRegistry.lookup(queryName, ParseFieldMatcher.STRICT, dummyParser.getTokenLocation()); - assertThat(queryParser, notNullValue()); - } - for (String queryName : DEPRECATED_QUERIES) { - try { - indicesQueriesRegistry.lookup(queryName, ParseFieldMatcher.STRICT, dummyParser.getTokenLocation()); - fail("query is deprecated, getQueryParser should have failed in strict mode"); - } catch(IllegalArgumentException e) { - assertThat(e.getMessage(), containsString("Deprecated field [" + queryName + "] used")); - } - } + Set registeredNonDeprecated = module.getNamedXContents().stream() + .filter(e -> e.categoryClass.equals(QueryBuilder.class)) + .map(e -> e.name.getPreferredName()) + .collect(toSet()); + Set registeredAll = module.getNamedXContents().stream() + .filter(e -> e.categoryClass.equals(QueryBuilder.class)) + .flatMap(e -> Arrays.stream(e.name.getAllNamesIncludedDeprecated())) + .collect(toSet()); + + assertThat(registeredNonDeprecated, containsInAnyOrder(NON_DEPRECATED_QUERIES)); + assertThat(registeredAll, containsInAnyOrder(allSupportedQueries.toArray(new String[0]))); } public void testRegisterAggregation() { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java index c81ec476b8699..0e79655d8289f 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchRequestParsers; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.ESSingleNodeTestCase; @@ -61,9 +60,8 @@ public void testNeedsScores() throws Exception { private boolean needsScores(IndexService index, String agg) throws IOException { AggregatorParsers parser = getInstanceFromNode(SearchRequestParsers.class).aggParsers; - IndicesQueriesRegistry queriesRegistry = getInstanceFromNode(IndicesQueriesRegistry.class); XContentParser aggParser = createParser(JsonXContent.jsonXContent, agg); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, aggParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(aggParser, ParseFieldMatcher.STRICT); aggParser.nextToken(); SearchContext context = createSearchContext(index); final AggregatorFactories factories = parser.parseAggregators(parseContext).build(context, null); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java index b2531fedc0765..5d6222e697910 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorParsingTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.env.Environment; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractQueryTestCase; @@ -51,7 +50,6 @@ protected String[] getCurrentTypes() { } protected AggregatorParsers aggParsers; - protected IndicesQueriesRegistry queriesRegistry; private NamedXContentRegistry xContentRegistry; protected ParseFieldMatcher parseFieldMatcher; @@ -75,7 +73,6 @@ public void setUp() throws Exception { String type = randomAsciiOfLengthBetween(1, 10); currentTypes[i] = type; } - queriesRegistry = searchModule.getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); parseFieldMatcher = ParseFieldMatcher.STRICT; } @@ -98,7 +95,7 @@ public void testTwoTypes() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); @@ -135,7 +132,7 @@ public void testTwoAggs() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); @@ -174,7 +171,7 @@ public void testInvalidAggregationName() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); @@ -202,7 +199,7 @@ public void testSameAggregationName() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); @@ -231,7 +228,7 @@ public void testMissingName() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); @@ -260,7 +257,7 @@ public void testMissingType() throws Exception { .endObject(); try { XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java index ea7bf31278400..a39a17068f5f1 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/BaseAggregationTestCase.java @@ -34,7 +34,6 @@ import org.elasticsearch.env.Environment; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.IndicesModule; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.test.ESTestCase; @@ -65,7 +64,6 @@ protected String[] getCurrentTypes() { private NamedWriteableRegistry namedWriteableRegistry; protected AggregatorParsers aggParsers; - protected IndicesQueriesRegistry queriesRegistry; private NamedXContentRegistry xContentRegistry; protected ParseFieldMatcher parseFieldMatcher; @@ -88,7 +86,6 @@ public void setUp() throws Exception { entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); - queriesRegistry = searchModule.getQueryParserRegistry(); aggParsers = searchModule.getSearchRequestParsers().aggParsers; //create some random type with some default field, those types will stick around for all of the subclasses currentTypes = new String[randomIntBetween(0, 5)]; @@ -119,7 +116,7 @@ public void testFromXContent() throws IOException { factoriesBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS); XContentBuilder shuffled = shuffleXContent(builder); XContentParser parser = createParser(shuffled); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); assertSame(XContentParser.Token.FIELD_NAME, parser.nextToken()); assertEquals(testAgg.name, parser.currentName()); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java index 4e51ac13df6b1..b55c8025f9f91 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java @@ -34,7 +34,6 @@ import org.elasticsearch.env.Environment; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.IndicesModule; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.pipeline.AbstractPipelineAggregationBuilder; import org.elasticsearch.test.AbstractQueryTestCase; @@ -65,7 +64,6 @@ protected String[] getCurrentTypes() { private NamedWriteableRegistry namedWriteableRegistry; protected AggregatorParsers aggParsers; - protected IndicesQueriesRegistry queriesRegistry; protected ParseFieldMatcher parseFieldMatcher; protected abstract AF createTestAggregatorFactory(); @@ -86,7 +84,6 @@ public void setUp() throws Exception { entries.addAll(indicesModule.getNamedWriteables()); entries.addAll(searchModule.getNamedWriteables()); namedWriteableRegistry = new NamedWriteableRegistry(entries); - queriesRegistry = searchModule.getQueryParserRegistry(); aggParsers = searchModule.getSearchRequestParsers().aggParsers; //create some random type with some default field, those types will stick around for all of the subclasses currentTypes = new String[randomIntBetween(0, 5)]; @@ -113,7 +110,7 @@ public void testFromXContent() throws IOException { factoriesBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS); XContentBuilder shuffled = shuffleXContent(builder); XContentParser parser = createParser(shuffled); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); String contentString = factoriesBuilder.toString(); logger.info("Content string: {}", contentString); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java index 48b393ef46daa..d52cc108d5a66 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java @@ -23,20 +23,16 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.test.ESTestCase; import static org.hamcrest.Matchers.instanceOf; public class GeoHashGridParserTests extends ESTestCase { - private static final IndicesQueriesRegistry mockRegistry = new IndicesQueriesRegistry(); - public void testParseValidFromInts() throws Exception { int precision = randomIntBetween(1, 12); XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":" + precision + ", \"size\": 500, \"shard_size\": 550}"); - QueryParseContext parseContext = new QueryParseContext(mockRegistry, - stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); // can create a factory @@ -47,7 +43,7 @@ public void testParseValidFromStrings() throws Exception { int precision = randomIntBetween(1, 12); XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"" + precision + "\", \"size\": \"500\", \"shard_size\": \"550\"}"); - QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); // can create a factory @@ -56,7 +52,7 @@ public void testParseValidFromStrings() throws Exception { public void testParseErrorOnNonIntPrecision() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"2.0\"}"); - QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { @@ -70,7 +66,7 @@ public void testParseErrorOnNonIntPrecision() throws Exception { public void testParseErrorOnBooleanPrecision() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":false}"); - QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { @@ -83,7 +79,7 @@ public void testParseErrorOnBooleanPrecision() throws Exception { public void testParseErrorOnPrecisionOutOfRange() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"13\"}"); - QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/ExtendedBoundsTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/ExtendedBoundsTests.java index ca4b20c6a5b5b..9853d09e31ec5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/ExtendedBoundsTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/ExtendedBoundsTests.java @@ -100,7 +100,7 @@ public void testParseAndValidate() { SearchContext context = mock(SearchContext.class); QueryShardContext qsc = new QueryShardContext(0, new IndexSettings(IndexMetaData.builder("foo").settings(indexSettings).build(), indexSettings), null, null, null, null, - null, xContentRegistry(), null, null, null, () -> now); + null, xContentRegistry(), null, null, () -> now); when(context.getQueryShardContext()).thenReturn(qsc); FormatDateTimeFormatter formatter = Joda.forPattern("dateOptionalTime"); DocValueFormat format = new DocValueFormat.DateTime(formatter, DateTimeZone.UTC); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java index 655a03a75c044..0db3fd6aa3fa7 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java @@ -35,7 +35,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.Index; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.SearchShardTarget; @@ -267,11 +266,10 @@ public void testBuilderAndParser() throws Exception { protected void checkParseException(ParseFieldRegistry significanceHeuristicParserRegistry, SearchContext searchContext, String faultyHeuristicDefinition, String expectedError) throws IOException { - IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); try { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"text\", " + faultyHeuristicDefinition + ",\"min_doc_count\":200}"); - QueryParseContext parseContext = new QueryParseContext(registry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); stParser.nextToken(); SignificantTermsAggregationBuilder.getParser(significanceHeuristicParserRegistry).parse("testagg", parseContext); fail(); @@ -293,8 +291,7 @@ protected SignificanceHeuristic parseFromBuilder(ParseFieldRegistry significanceHeuristicParserRegistry, SearchContext searchContext, XContentParser stParser) throws IOException { - IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); - QueryParseContext parseContext = new QueryParseContext(registry, stParser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(stParser, ParseFieldMatcher.STRICT); stParser.nextToken(); SignificantTermsAggregationBuilder aggregatorFactory = (SignificantTermsAggregationBuilder) SignificantTermsAggregationBuilder.getParser( diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/FiltersTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/FiltersTests.java index 496e77f364c3b..bf8e742174728 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/FiltersTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/FiltersTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.aggregations.BaseAggregationTestCase; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregator.KeyedFilter; @@ -89,8 +88,7 @@ public void testOtherBucket() throws IOException { builder.endObject(); XContentParser parser = createParser(shuffleXContent(builder)); parser.nextToken(); - QueryParseContext context = new QueryParseContext(new IndicesQueriesRegistry(), parser, - ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); FiltersAggregationBuilder filters = FiltersAggregationBuilder.parse("agg_name", context); // The other bucket is disabled by default assertFalse(filters.otherBucket()); @@ -102,7 +100,7 @@ public void testOtherBucket() throws IOException { builder.endObject(); parser = createParser(shuffleXContent(builder)); parser.nextToken(); - context = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.STRICT); + context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); filters = FiltersAggregationBuilder.parse("agg_name", context); // but setting a key enables it automatically assertTrue(filters.otherBucket()); @@ -115,7 +113,7 @@ public void testOtherBucket() throws IOException { builder.endObject(); parser = createParser(shuffleXContent(builder)); parser.nextToken(); - context = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.STRICT); + context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); filters = FiltersAggregationBuilder.parse("agg_name", context); // unless the other bucket is explicitly disabled assertFalse(filters.otherBucket()); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java index e076472a1333e..ddf58d11dbbc5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TopHitsTests.java @@ -19,10 +19,8 @@ package org.elasticsearch.search.aggregations.metrics; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; -import org.elasticsearch.test.AbstractQueryTestCase; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationInitializationException; @@ -33,6 +31,7 @@ import org.elasticsearch.search.sort.ScriptSortBuilder.ScriptSortType; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; +import org.elasticsearch.test.AbstractQueryTestCase; import java.util.ArrayList; import java.util.Collections; @@ -188,7 +187,7 @@ public void testFailWithSubAgg() throws Exception { "}"; try { XContentParser parser = createParser(JsonXContent.jsonXContent, source); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); aggParsers.parseAggregators(parseContext); fail(); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/ExtendedStatsBucketTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/ExtendedStatsBucketTests.java index 670ab0dabde9f..f0cfc632f65bd 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/ExtendedStatsBucketTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/ExtendedStatsBucketTests.java @@ -47,7 +47,7 @@ public void testSigmaFromInt() throws Exception { .string(); XContentParser parser = createParser(JsonXContent.jsonXContent, content); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); parser.nextToken(); // skip object start ExtendedStatsBucketPipelineAggregationBuilder builder = (ExtendedStatsBucketPipelineAggregationBuilder) aggParsers diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/PercentilesBucketTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/PercentilesBucketTests.java index 26ee43e7a111f..3773f34456ce1 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/PercentilesBucketTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/PercentilesBucketTests.java @@ -52,7 +52,7 @@ public void testPercentsFromMixedArray() throws Exception { .string(); XContentParser parser = createParser(JsonXContent.jsonXContent, content); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); parser.nextToken(); // skip object start PercentilesBucketPipelineAggregationBuilder builder = (PercentilesBucketPipelineAggregationBuilder) aggParsers diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/moving/avg/MovAvgTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/moving/avg/MovAvgTests.java index 7b29ae213ffab..b9c5307c1d830 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/moving/avg/MovAvgTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/moving/avg/MovAvgTests.java @@ -107,7 +107,7 @@ public void testDefaultParsing() throws Exception { " }" + "}"; XContentParser parser = createParser(JsonXContent.jsonXContent, json); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); assertSame(XContentParser.Token.FIELD_NAME, parser.nextToken()); assertEquals(expected.getName(), parser.currentName()); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java index 20f38297d9ed2..e982bb7ccf989 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java @@ -32,7 +32,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude.OrdinalsFilter; @@ -43,9 +42,7 @@ import java.util.TreeSet; public class IncludeExcludeTests extends ESTestCase { - private final ParseFieldMatcher parseFieldMatcher = ParseFieldMatcher.STRICT; - private final IndicesQueriesRegistry queriesRegistry = new IndicesQueriesRegistry(); public void testEmptyTermsWithOrds() throws IOException { IncludeExclude inexcl = new IncludeExclude( @@ -237,7 +234,7 @@ private IncludeExclude serialize(IncludeExclude incExc, ParseField field) throws assertEquals(field.getPreferredName(), parser.currentName()); token = parser.nextToken(); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(parser, ParseFieldMatcher.STRICT); if (field.getPreferredName().equalsIgnoreCase("include")) { return IncludeExclude.parseInclude(parser, parseContext); } else if (field.getPreferredName().equalsIgnoreCase("exclude")) { @@ -277,7 +274,7 @@ private IncludeExclude serializeMixedRegex(IncludeExclude incExc) throws IOExcep builder.endObject(); XContentParser parser = createParser(builder); - QueryParseContext parseContext = new QueryParseContext(queriesRegistry, parser, parseFieldMatcher); + QueryParseContext parseContext = new QueryParseContext(parser, parseFieldMatcher); XContentParser.Token token = parser.nextToken(); assertEquals(token, XContentParser.Token.START_OBJECT); diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index 994c39d616599..d5c5e96a2242b 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -70,7 +70,7 @@ private void assertParseSearchSource(SearchSourceBuilder testBuilder, XContentPa private void assertParseSearchSource(SearchSourceBuilder testBuilder, XContentParser parser, ParseFieldMatcher pfm) throws IOException { - QueryParseContext parseContext = new QueryParseContext(searchRequestParsers.queryParsers, parser, pfm); + QueryParseContext parseContext = new QueryParseContext(parser, pfm); if (randomBoolean()) { parser.nextToken(); // sometimes we move it on the START_OBJECT to // test the embedded case @@ -83,7 +83,7 @@ private void assertParseSearchSource(SearchSourceBuilder testBuilder, XContentPa } private QueryParseContext createParseContext(XContentParser parser) { - return new QueryParseContext(searchRequestParsers.queryParsers, parser, ParseFieldMatcher.STRICT); + return new QueryParseContext(parser, ParseFieldMatcher.STRICT); } public void testSerialization() throws IOException { diff --git a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java index 7762ea4959f31..76a49bf56c9d6 100644 --- a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java @@ -47,7 +47,6 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.query.TermQueryBuilder; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Order; @@ -76,7 +75,6 @@ public class HighlightBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; - private static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; /** @@ -86,14 +84,12 @@ public class HighlightBuilderTests extends ESTestCase { public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; - indicesQueriesRegistry = null; xContentRegistry = null; } @@ -133,7 +129,7 @@ public void testFromXContent() throws IOException { XContentBuilder shuffled = shuffleXContent(builder); XContentParser parser = createParser(shuffled); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); parser.nextToken(); HighlightBuilder secondHighlightBuilder; try { @@ -174,7 +170,7 @@ public void testUnknownArrayNameExpection() throws IOException { private T expectParseThrows(Class exceptionClass, String highlightElement) throws IOException { XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); return expectThrows(exceptionClass, () -> HighlightBuilder.fromXContent(context)); } @@ -270,7 +266,7 @@ public void testBuildSearchContextHighlight() throws IOException { IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(index, indexSettings); // shard context will only need indicesQueriesRegistry for building Query objects nested in highlighter QueryShardContext mockShardContext = new QueryShardContext(0, idxSettings, null, null, null, null, null, xContentRegistry(), - indicesQueriesRegistry, null, null, System::currentTimeMillis) { + null, null, System::currentTimeMillis) { @Override public MappedFieldType fieldMapper(String name) { TextFieldMapper.Builder builder = new TextFieldMapper.Builder(name); @@ -384,7 +380,7 @@ public void testParsingTagsSchema() throws IOException { "}\n"; XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(context); assertArrayEquals("setting tags_schema 'styled' should alter pre_tags", HighlightBuilder.DEFAULT_STYLED_PRE_TAG, highlightBuilder.preTags()); @@ -396,7 +392,7 @@ public void testParsingTagsSchema() throws IOException { "}\n"; parser = createParser(JsonXContent.jsonXContent, highlightElement); - context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); highlightBuilder = HighlightBuilder.fromXContent(context); assertArrayEquals("setting tags_schema 'default' should alter pre_tags", HighlightBuilder.DEFAULT_PRE_TAGS, highlightBuilder.preTags()); @@ -417,21 +413,21 @@ public void testParsingEmptyStructure() throws IOException { String highlightElement = "{ }"; XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(context); assertEquals("expected plain HighlightBuilder", new HighlightBuilder(), highlightBuilder); highlightElement = "{ \"fields\" : { } }"; parser = createParser(JsonXContent.jsonXContent, highlightElement); - context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); highlightBuilder = HighlightBuilder.fromXContent(context); assertEquals("defining no field should return plain HighlightBuilder", new HighlightBuilder(), highlightBuilder); highlightElement = "{ \"fields\" : { \"foo\" : { } } }"; parser = createParser(JsonXContent.jsonXContent, highlightElement); - context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); highlightBuilder = HighlightBuilder.fromXContent(context); assertEquals("expected HighlightBuilder with field", new HighlightBuilder().field(new Field("foo")), highlightBuilder); } diff --git a/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java b/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java index 764744229612d..1ac267330d77f 100644 --- a/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java +++ b/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java @@ -164,7 +164,7 @@ private IndexMetaData add(IndexMetaData indexMetaData, String alias, @Nullable C public QueryBuilder aliasFilter(IndexMetaData indexMetaData, String... aliasNames) { ShardSearchRequest.FilterParser filterParser = bytes -> { try (XContentParser parser = XContentFactory.xContent(bytes).createParser(xContentRegistry(), bytes)) { - return new QueryParseContext(queriesRegistry, parser, new ParseFieldMatcher(Settings.EMPTY)).parseInnerQueryBuilder(); + return new QueryParseContext(parser, new ParseFieldMatcher(Settings.EMPTY)).parseInnerQueryBuilder(); } }; return ShardSearchRequest.parseAliasFilter(filterParser, indexMetaData, aliasNames); @@ -200,7 +200,7 @@ public void testSerialize50Request() throws IOException { IndexSettings indexSettings = new IndexSettings(indexMetadata.build(), Settings.EMPTY); final long nowInMillis = randomPositiveLong(); QueryShardContext context = new QueryShardContext( - 0, indexSettings, null, null, null, null, null, xContentRegistry(), queriesRegistry, null, null, () -> nowInMillis); + 0, indexSettings, null, null, null, null, null, xContentRegistry(), null, null, () -> nowInMillis); readRequest.rewrite(context); QueryBuilder queryBuilder = readRequest.filteringAliases(); assertEquals(queryBuilder, QueryBuilders.boolQuery() diff --git a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java b/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java index db6a25c65d81d..3e051c9828b32 100644 --- a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/rescore/QueryRescoreBuilderTests.java @@ -43,7 +43,6 @@ import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.rescore.QueryRescorer.QueryRescoreContext; import org.elasticsearch.test.ESTestCase; @@ -60,7 +59,6 @@ public class QueryRescoreBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; private static NamedWriteableRegistry namedWriteableRegistry; - private static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; /** @@ -70,14 +68,12 @@ public class QueryRescoreBuilderTests extends ESTestCase { public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); namedWriteableRegistry = new NamedWriteableRegistry(searchModule.getNamedWriteables()); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { namedWriteableRegistry = null; - indicesQueriesRegistry = null; xContentRegistry = null; } @@ -123,7 +119,7 @@ public void testFromXContent() throws IOException { XContentParser parser = createParser(shuffled); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); parser.nextToken(); RescoreBuilder secondRescoreBuilder = RescoreBuilder.parseFromXContent(context); assertNotSame(rescoreBuilder, secondRescoreBuilder); @@ -143,7 +139,7 @@ public void testBuildRescoreSearchContext() throws ElasticsearchParseException, IndexSettings idxSettings = IndexSettingsModule.newIndexSettings(randomAsciiOfLengthBetween(1, 10), indexSettings); // shard context will only need indicesQueriesRegistry for building Query objects nested in query rescorer QueryShardContext mockShardContext = new QueryShardContext(0, idxSettings, null, null, null, null, null, xContentRegistry(), - indicesQueriesRegistry, null, null, () -> nowInMillis) { + null, null, () -> nowInMillis) { @Override public MappedFieldType fieldMapper(String name) { TextFieldMapper.Builder builder = new TextFieldMapper.Builder(name); @@ -256,7 +252,7 @@ public void testUnknownFieldsExpection() throws IOException { */ private QueryParseContext createContext(String rescoreElement) throws IOException { XContentParser parser = createParser(JsonXContent.jsonXContent, rescoreElement); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); // move to first token, this is where the internal fromXContent assertTrue(parser.nextToken() == XContentParser.Token.START_OBJECT); return context; 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 beb69a0184b4f..93663d93683f8 100644 --- a/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/searchafter/SearchAfterBuilderTests.java @@ -28,14 +28,9 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.common.xcontent.json.JsonXContent; -import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.index.query.QueryParser; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.test.ESTestCase; import org.hamcrest.Matchers; -import org.junit.AfterClass; -import org.junit.BeforeClass; import java.io.IOException; import java.util.Collections; @@ -44,22 +39,6 @@ public class SearchAfterBuilderTests extends ESTestCase { private static final int NUMBER_OF_TESTBUILDERS = 20; - private static IndicesQueriesRegistry indicesQueriesRegistry; - - /** - * setup for the whole base test class - */ - @BeforeClass - public static void init() { - indicesQueriesRegistry = new IndicesQueriesRegistry(); - QueryParser parser = MatchAllQueryBuilder::fromXContent; - indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.NAME); - } - - @AfterClass - public static void afterClass() throws Exception { - indicesQueriesRegistry = null; - } private static SearchAfterBuilder randomSearchAfterBuilder() throws IOException { int numSearchFrom = randomIntBetween(1, 10); @@ -189,7 +168,7 @@ public void testFromXContent() throws Exception { searchAfterBuilder.innerToXContent(builder); builder.endObject(); XContentParser parser = createParser(shuffleXContent(builder)); - new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + new QueryParseContext(parser, ParseFieldMatcher.STRICT); parser.nextToken(); parser.nextToken(); parser.nextToken(); 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 52bc3bd46336e..a51fc8d412f26 100644 --- a/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java @@ -39,14 +39,9 @@ import org.elasticsearch.index.fielddata.IndexNumericFieldData; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.UidFieldMapper; -import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.index.query.QueryParser; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.test.ESTestCase; -import org.junit.AfterClass; -import org.junit.BeforeClass; import java.io.IOException; import java.util.ArrayList; @@ -66,22 +61,6 @@ public class SliceBuilderTests extends ESTestCase { private static final int MAX_SLICE = 20; - private static IndicesQueriesRegistry indicesQueriesRegistry; - - /** - * setup for the whole base test class - */ - @BeforeClass - public static void init() { - indicesQueriesRegistry = new IndicesQueriesRegistry(); - QueryParser parser = MatchAllQueryBuilder::fromXContent; - indicesQueriesRegistry.register(parser, MatchAllQueryBuilder.NAME); - } - - @AfterClass - public static void afterClass() throws Exception { - indicesQueriesRegistry = null; - } private static SliceBuilder randomSliceBuilder() throws IOException { int max = randomIntBetween(2, MAX_SLICE); @@ -125,8 +104,7 @@ public void testFromXContent() throws Exception { sliceBuilder.innerToXContent(builder); builder.endObject(); XContentParser parser = createParser(shuffleXContent(builder)); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, - ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); SliceBuilder secondSliceBuilder = SliceBuilder.fromXContent(context); assertNotSame(sliceBuilder, secondSliceBuilder); assertEquals(sliceBuilder, secondSliceBuilder); diff --git a/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java b/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java index 0c3072e6eecdf..683d5d78c9e0f 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java @@ -51,7 +51,6 @@ import org.elasticsearch.index.query.TermQueryBuilder; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.CompiledScript; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; @@ -82,7 +81,6 @@ public abstract class AbstractSortTestCase> extends EST protected static NamedWriteableRegistry namedWriteableRegistry; - static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; private static ScriptService scriptService; @@ -108,13 +106,11 @@ public CompiledScript compile(Script script, ScriptContext scriptContext, Map nowInMillis) { + xContentRegistry(), null, null, () -> nowInMillis) { @Override public MappedFieldType fieldMapper(String name) { return provideMappedFieldType(name); diff --git a/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java b/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java index 60b9f14c36833..bb9761c0f26cc 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java @@ -134,7 +134,7 @@ public void testReverseOptionFails() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); try { FieldSortBuilder.fromXContent(context, ""); diff --git a/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java b/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java index ec3d2a01754ca..69d95e328b7a5 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java @@ -37,7 +37,6 @@ import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.test.geo.RandomGeoGenerator; @@ -208,7 +207,7 @@ public void testReverseOptionFailsWhenNonStringField() throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); try { GeoDistanceSortBuilder.fromXContent(context, ""); @@ -229,7 +228,7 @@ public void testReverseOptionFailsWhenStringFieldButResetting() throws IOExcepti XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); try { GeoDistanceSortBuilder.fromXContent(context, ""); @@ -246,7 +245,7 @@ public void testReverseOptionFailsBuildWhenInvalidGeoHashString() throws IOExcep XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); try { GeoDistanceSortBuilder item = GeoDistanceSortBuilder.fromXContent(context, ""); @@ -273,7 +272,7 @@ public void testCoerceIsDeprecated() throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.EMPTY); GeoDistanceSortBuilder.fromXContent(context, ""); assertWarnings("Deprecated field [coerce] used, replaced by [validation_method]"); } @@ -292,7 +291,7 @@ public void testIgnoreMalformedIsDeprecated() throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.EMPTY); GeoDistanceSortBuilder.fromXContent(context, ""); assertWarnings("Deprecated field [ignore_malformed] used, replaced by [validation_method]"); } @@ -310,7 +309,7 @@ public void testSortModeSumIsRejectedInJSON() throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> GeoDistanceSortBuilder.fromXContent(context, "")); assertEquals("sort_mode [sum] isn't supported for sorting by geo distance", e.getMessage()); @@ -335,7 +334,7 @@ public void testGeoDistanceSortCanBeParsedFromGeoHash() throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, json); itemParser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); GeoDistanceSortBuilder result = GeoDistanceSortBuilder.fromXContent(context, json); assertEquals("[-19.700583312660456, -2.8225036337971687, " @@ -457,7 +456,7 @@ public void testGeoDistanceSortDeprecatedSortModeException() throws Exception { private GeoDistanceSortBuilder parse(XContentBuilder sortBuilder) throws Exception { XContentParser parser = createParser(sortBuilder); - QueryParseContext parseContext = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.STRICT); + QueryParseContext parseContext = new QueryParseContext(parser, ParseFieldMatcher.STRICT); parser.nextToken(); return GeoDistanceSortBuilder.fromXContent(parseContext, null); } diff --git a/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java b/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java index eff8685b9da94..82257de99d039 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java @@ -22,7 +22,6 @@ import org.apache.lucene.search.SortField; import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.query.QueryParseContext; @@ -69,7 +68,7 @@ public void testParseOrder() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ScoreSortBuilder scoreSort = ScoreSortBuilder.fromXContent(context, "_score"); assertEquals(order, scoreSort.order()); } @@ -82,7 +81,7 @@ public void testReverseOptionFails() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.EMPTY); try { ScoreSortBuilder.fromXContent(context, "_score"); diff --git a/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java b/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java index 68bc4cfa00a6c..43a2b9d9b76f2 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java @@ -172,7 +172,7 @@ public void testParseJson() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(context, null); assertEquals("doc['field_name'].value * factor", builder.script().getIdOrCode()); assertEquals(Script.DEFAULT_SCRIPT_LANG, builder.script().getLang()); @@ -198,7 +198,7 @@ public void testParseJson_simple() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(context, null); assertEquals("doc['field_name'].value", builder.script().getIdOrCode()); assertEquals(Script.DEFAULT_SCRIPT_LANG, builder.script().getLang()); @@ -218,7 +218,7 @@ public void testParseBadFieldNameExceptions() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null)); assertEquals("[_script] unknown field [bad_field], parser not found", e.getMessage()); } @@ -231,7 +231,7 @@ public void testParseBadFieldNameExceptionsOnStartObject() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null)); assertEquals("[_script] unknown field [bad_field], parser not found", e.getMessage()); } @@ -243,7 +243,7 @@ public void testParseUnexpectedToken() throws IOException { parser.nextToken(); parser.nextToken(); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null)); assertEquals("[_script] script doesn't support values of type: START_ARRAY", e.getMessage()); } diff --git a/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java b/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java index 79492cee12b37..b521060f27e42 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.junit.AfterClass; @@ -43,30 +42,21 @@ import static java.util.Collections.emptyList; public class SortBuilderTests extends ESTestCase { - private static final int NUMBER_OF_RUNS = 20; - static IndicesQueriesRegistry indicesQueriesRegistry; private static NamedXContentRegistry xContentRegistry; @BeforeClass public static void init() { SearchModule searchModule = new SearchModule(Settings.EMPTY, false, emptyList()); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); xContentRegistry = new NamedXContentRegistry(searchModule.getNamedXContents()); } @AfterClass public static void afterClass() throws Exception { - indicesQueriesRegistry = null; xContentRegistry = null; } - @Override - protected NamedXContentRegistry xContentRegistry() { - return xContentRegistry; - } - /** * test two syntax variations: * - "sort" : "fieldname" @@ -241,9 +231,14 @@ public void testMultiFieldSort() throws IOException { assertEquals(new ScoreSortBuilder(), result.get(5)); } + @Override + protected NamedXContentRegistry xContentRegistry() { + return xContentRegistry; + } + private List> parseSort(String jsonString) throws IOException { XContentParser itemParser = createParser(JsonXContent.jsonXContent, jsonString); - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, itemParser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(itemParser, ParseFieldMatcher.STRICT); assertEquals(XContentParser.Token.START_OBJECT, itemParser.nextToken()); assertEquals(XContentParser.Token.FIELD_NAME, itemParser.nextToken()); diff --git a/core/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java b/core/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java index 0f93e6a36e5b8..f75b73a5138a3 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/AbstractSuggestionBuilderTestCase.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.junit.AfterClass; @@ -44,7 +43,6 @@ public abstract class AbstractSuggestionBuilderTestCase exceptionClass, String exceptionMsg) throws IOException { XContentParser parser = createParser(JsonXContent.jsonXContent, directGenerator); - QueryParseContext context = new QueryParseContext(mockRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); Exception e = expectThrows(exceptionClass, () -> DirectCandidateGeneratorBuilder.fromXContent(context)); assertEquals(exceptionMsg, e.getMessage()); } diff --git a/core/src/test/java/org/elasticsearch/search/suggest/phrase/SmoothingModelTestCase.java b/core/src/test/java/org/elasticsearch/search/suggest/phrase/SmoothingModelTestCase.java index 044982540a3ce..b8289c700629a 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/phrase/SmoothingModelTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/phrase/SmoothingModelTestCase.java @@ -39,7 +39,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchModule; import org.elasticsearch.test.ESTestCase; import org.junit.AfterClass; @@ -99,7 +98,7 @@ public void testFromXContent() throws IOException { testModel.innerToXContent(contentBuilder, ToXContent.EMPTY_PARAMS); contentBuilder.endObject(); XContentParser parser = createParser(shuffleXContent(contentBuilder)); - QueryParseContext context = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(parser, ParseFieldMatcher.STRICT); parser.nextToken(); // go to start token, real parsing would do that in the outer element parser SmoothingModel parsedModel = fromXContent(context); assertNotSame(testModel, parsedModel); diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TransportSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TransportSearchTemplateAction.java index 0342747b6b923..2ad36f3d1dcab 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TransportSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TransportSearchTemplateAction.java @@ -88,7 +88,7 @@ protected void doExecute(SearchTemplateRequest request, ActionListener listener) { SearchRequest searchRequest; try { - searchRequest = createSearchRequest(request, docSource, searchRequestParsers.queryParsers, + searchRequest = createSearchRequest(request, docSource, searchRequestParsers.aggParsers, searchRequestParsers.searchExtParsers, xContentRegistry, parseFieldMatcher); } catch (IOException e) { listener.onFailure(e); @@ -131,7 +130,7 @@ public void onFailure(Exception e) { } public static SearchRequest createSearchRequest(PercolateRequest percolateRequest, BytesReference documentSource, - IndicesQueriesRegistry queryRegistry, AggregatorParsers aggParsers, + AggregatorParsers aggParsers, SearchExtRegistry searchExtRegistry, NamedXContentRegistry xContentRegistry, ParseFieldMatcher parseFieldMatcher) throws IOException { @@ -214,7 +213,7 @@ public static SearchRequest createSearchRequest(PercolateRequest percolateReques new PercolateQueryBuilder("query", percolateRequest.documentType(), documentSource); if (querySource != null) { try (XContentParser parser = XContentHelper.createParser(xContentRegistry, querySource)) { - QueryParseContext queryParseContext = new QueryParseContext(queryRegistry, parser, parseFieldMatcher); + QueryParseContext queryParseContext = new QueryParseContext(parser, parseFieldMatcher); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolQueryBuilder.must(queryParseContext.parseInnerQueryBuilder()); boolQueryBuilder.filter(percolateQueryBuilder); @@ -232,7 +231,7 @@ public static SearchRequest createSearchRequest(PercolateRequest percolateReques BytesReference source = searchSource.bytes(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); try (XContentParser parser = XContentFactory.xContent(XContentType.JSON).createParser(xContentRegistry, source)) { - QueryParseContext context = new QueryParseContext(queryRegistry, parser, parseFieldMatcher); + QueryParseContext context = new QueryParseContext(parser, parseFieldMatcher); searchSourceBuilder.parseXContent(context, aggParsers, null, searchExtRegistry); searchRequest.source(searchSourceBuilder); return searchRequest; diff --git a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/RestReindexAction.java b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/RestReindexAction.java index 9ae9e6ba876d6..f1c384e64ba30 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/RestReindexAction.java +++ b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/RestReindexAction.java @@ -233,7 +233,7 @@ static class ReindexParseContext implements ParseFieldMatcherSupplier { } QueryParseContext queryParseContext(XContentParser parser) { - return new QueryParseContext(searchRequestParsers.queryParsers, parser, parseFieldMatcher); + return new QueryParseContext(parser, parseFieldMatcher); } @Override diff --git a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/RestReindexActionTests.java b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/RestReindexActionTests.java index 237292bed3b85..783965535eaf1 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/RestReindexActionTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/RestReindexActionTests.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.reindex.RestReindexAction.ReindexParseContext; import org.elasticsearch.index.reindex.remote.RemoteInfo; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.RestController; import org.elasticsearch.search.SearchRequestParsers; import org.elasticsearch.test.ESTestCase; @@ -125,7 +124,7 @@ public void testReindexFromRemoteRequestParsing() throws IOException { } try (XContentParser p = createParser(JsonXContent.jsonXContent, request)) { ReindexRequest r = new ReindexRequest(new SearchRequest(), new IndexRequest()); - SearchRequestParsers searchParsers = new SearchRequestParsers(new IndicesQueriesRegistry(), null, null, null); + SearchRequestParsers searchParsers = new SearchRequestParsers(null, null, null); RestReindexAction.PARSER.parse(p, r, new ReindexParseContext(searchParsers, ParseFieldMatcher.STRICT)); assertEquals("localhost", r.getRemoteInfo().getHost()); assertArrayEquals(new String[] {"source"}, r.getSearchRequest().indices()); @@ -133,7 +132,7 @@ public void testReindexFromRemoteRequestParsing() throws IOException { } public void testPipelineQueryParameterIsError() throws IOException { - SearchRequestParsers parsers = new SearchRequestParsers(new IndicesQueriesRegistry(), null, null, null); + SearchRequestParsers parsers = new SearchRequestParsers(null, null, null); RestReindexAction action = new RestReindexAction(Settings.EMPTY, mock(RestController.class), parsers, null); FakeRestRequest.Builder request = new FakeRestRequest.Builder(xContentRegistry()); diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java index 2263825b6240c..243e328e5dffe 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java @@ -83,7 +83,6 @@ import org.elasticsearch.indices.breaker.NoneCircuitBreakerService; import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache; import org.elasticsearch.indices.mapper.MapperRegistry; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.node.internal.InternalSettingsPreparer; import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.plugins.Plugin; @@ -779,7 +778,7 @@ protected static QueryShardContext createShardContext() { * @return a new {@link QueryParseContext} based on the base test index and queryParserService */ protected static QueryParseContext createParseContext(XContentParser parser, ParseFieldMatcher matcher) { - return new QueryParseContext(serviceHolder.indicesQueriesRegistry, parser, matcher); + return new QueryParseContext(parser, matcher); } /** @@ -1013,8 +1012,6 @@ protected NamedXContentRegistry xContentRegistry() { } private static class ServiceHolder implements Closeable { - - private final IndicesQueriesRegistry indicesQueriesRegistry; private final IndexFieldDataService indexFieldDataService; private final SearchModule searchModule; private final NamedWriteableRegistry namedWriteableRegistry; @@ -1075,7 +1072,6 @@ public void onRemoval(ShardId shardId, Accountable accountable) { } }); - indicesQueriesRegistry = searchModule.getQueryParserRegistry(); for (String type : currentTypes) { mapperService.merge(type, new CompressedXContent(PutMappingRequest.buildFromSimplifiedDef(type, @@ -1106,7 +1102,7 @@ public void close() throws IOException { QueryShardContext createShardContext() { return new QueryShardContext(0, idxSettings, bitsetFilterCache, indexFieldDataService, mapperService, similarityService, - scriptService, xContentRegistry, indicesQueriesRegistry, this.client, null, () -> nowInMillis); + scriptService, xContentRegistry, this.client, null, () -> nowInMillis); } ScriptModule createScriptModule(List scriptPlugins) { diff --git a/test/framework/src/test/java/org/elasticsearch/search/MockSearchServiceTests.java b/test/framework/src/test/java/org/elasticsearch/search/MockSearchServiceTests.java index b000c42d41a8b..2542e1c374b5b 100644 --- a/test/framework/src/test/java/org/elasticsearch/search/MockSearchServiceTests.java +++ b/test/framework/src/test/java/org/elasticsearch/search/MockSearchServiceTests.java @@ -35,7 +35,7 @@ public class MockSearchServiceTests extends ESTestCase { public void testAssertNoInFlightContext() { final long nowInMillis = randomPositiveLong(); SearchContext s = new TestSearchContext(new QueryShardContext(0, new IndexSettings(IndexMetaData.PROTO, Settings.EMPTY), null, null, - null, null, null, xContentRegistry(), null, null, null, () -> nowInMillis)) { + null, null, null, xContentRegistry(), null, null, () -> nowInMillis)) { @Override public SearchShardTarget shardTarget() { return new SearchShardTarget("node", new Index("idx", "ignored"), 0); From fcb10931caba8df9934be775e3a70ad86e957e5c Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Tue, 20 Dec 2016 18:55:28 -0500 Subject: [PATCH 3/4] Remove leftover --- .../common/xcontent/NamedXContentRegistry.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java b/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java index 9df8855008e74..046908d654e01 100644 --- a/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java +++ b/core/src/main/java/org/elasticsearch/common/xcontent/NamedXContentRegistry.java @@ -97,16 +97,6 @@ public Entry(Class categoryClass, ParseField name, FromXContentWithContex } } - private static class Category { - final String name; - final Map entries; - - public Category(String name, Map entries) { - this.name = name; - this.entries = entries; - } - } - private final Map, Map> registry; public NamedXContentRegistry(List entries) { From c135f66789ddfef314d5d758027e0613f6c3d49f Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Wed, 21 Dec 2016 08:03:03 -0500 Subject: [PATCH 4/4] Remove nocommit --- .../src/main/java/org/elasticsearch/rest/action/RestActions.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java index bffa7ac871d88..4a96becbbbdce 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java +++ b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java @@ -195,7 +195,6 @@ public static QueryBuilder urlParamsToQueryBuilder(RestRequest request) { } public static QueryBuilder getQueryContent(XContentParser requestParser, ParseFieldMatcher parseFieldMatcher) { - // NOCOMMIT it is very close to time to remove this QueryParseContext context = new QueryParseContext(requestParser, parseFieldMatcher); return context.parseTopLevelQueryBuilder(); }