From f576c987ce2615f77a8de75741b0f5448229805f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20B=C3=BCscher?= Date: Mon, 3 Jul 2017 17:30:40 +0200 Subject: Remove QueryParseContext (#25486) QueryParseContext is currently only used as a wrapper for an XContentParser, so this change removes it entirely and changes the appropriate APIs that use it so far to only accept a parser instead. --- .../index/query/AbstractQueryBuilderTests.java | 93 +++++++++++++++++ .../index/query/QueryParseContextTests.java | 110 --------------------- .../index/query/RangeQueryBuilderTests.java | 18 ++-- .../elasticsearch/search/SearchModuleTests.java | 12 ++- .../elasticsearch/search/SearchServiceTests.java | 3 +- .../aggregations/AggregationCollectorTests.java | 4 +- .../aggregations/AggregatorFactoriesTests.java | 20 ++-- .../BasePipelineAggregationTestCase.java | 4 +- .../search/aggregations/InternalOrderTests.java | 4 +- .../SignificantTermsSignificanceScoreIT.java | 80 +++++++-------- .../bucket/geogrid/GeoHashGridParserTests.java | 20 ++-- .../significant/SignificanceHeuristicTests.java | 9 +- .../search/aggregations/metrics/FiltersTests.java | 10 +- .../search/aggregations/metrics/TopHitsTests.java | 5 +- .../aggregations/support/IncludeExcludeTests.java | 11 +-- .../search/builder/SearchSourceBuilderTests.java | 36 +++---- .../search/collapse/CollapseBuilderTests.java | 4 +- .../search/rescore/QueryRescoreBuilderTests.java | 37 ++++--- .../search/slice/SliceBuilderTests.java | 4 +- .../completion/CategoryContextMappingTests.java | 40 ++++---- .../completion/CategoryQueryContextTests.java | 6 +- .../suggest/completion/GeoContextMappingTests.java | 15 +-- .../suggest/completion/GeoQueryContextTests.java | 6 +- .../suggest/completion/QueryContextTestCase.java | 5 +- 24 files changed, 247 insertions(+), 309 deletions(-) create mode 100644 core/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java delete mode 100644 core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java (limited to 'core/src/test/java') diff --git a/core/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java new file mode 100644 index 0000000000..68f964e2c8 --- /dev/null +++ b/core/src/test/java/org/elasticsearch/index/query/AbstractQueryBuilderTests.java @@ -0,0 +1,93 @@ +/* + * 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.index.query; + +import org.elasticsearch.common.ParsingException; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.NamedXContentRegistry; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.json.JsonXContent; +import org.elasticsearch.search.SearchModule; +import org.elasticsearch.test.ESTestCase; +import org.junit.AfterClass; +import org.junit.BeforeClass; + +import java.io.IOException; + +import static java.util.Collections.emptyList; +import static org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder; + +public class AbstractQueryBuilderTests extends ESTestCase { + + private static NamedXContentRegistry xContentRegistry; + + @BeforeClass + public static void init() { + xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, false, emptyList()).getNamedXContents()); + } + + @AfterClass + public static void cleanup() { + xContentRegistry = null; + } + + public void testParseInnerQueryBuilder() throws IOException { + QueryBuilder query = new MatchQueryBuilder("foo", "bar"); + String source = query.toString(); + try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { + QueryBuilder actual = parseInnerQueryBuilder(parser); + assertEquals(query, actual); + } + } + + public void testParseInnerQueryBuilderExceptions() throws IOException { + String source = "{ \"foo\": \"bar\" }"; + try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { + parser.nextToken(); + parser.nextToken(); // don't start with START_OBJECT to provoke exception + ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); + assertEquals("[_na] query malformed, must start with start_object", exception.getMessage()); + } + + source = "{}"; + try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { + IllegalArgumentException exception = expectThrows(IllegalArgumentException.class, () -> parseInnerQueryBuilder(parser)); + assertEquals("query malformed, empty clause found at [1:2]", exception.getMessage()); + } + + source = "{ \"foo\" : \"bar\" }"; + try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { + ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); + assertEquals("[foo] query malformed, no start_object after query name", exception.getMessage()); + } + + source = "{ \"foo\" : {} }"; + try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { + ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); + 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/QueryParseContextTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java deleted file mode 100644 index 5bd6a8a582..0000000000 --- a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java +++ /dev/null @@ -1,110 +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.index.query; - -import org.elasticsearch.common.ParsingException; -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.search.SearchModule; -import org.elasticsearch.test.ESTestCase; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; - -import java.io.IOException; - -import static java.util.Collections.emptyList; -import static org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder; - -public class QueryParseContextTests extends ESTestCase { - private static NamedXContentRegistry xContentRegistry; - - @BeforeClass - public static void init() { - xContentRegistry = new NamedXContentRegistry(new SearchModule(Settings.EMPTY, false, emptyList()).getNamedXContents()); - } - - @AfterClass - public static void cleanup() { - xContentRegistry = null; - } - - private ThreadContext threadContext; - - @Before - public void beforeTest() throws IOException { - this.threadContext = new ThreadContext(Settings.EMPTY); - DeprecationLogger.setThreadContext(threadContext); - } - - @After - public void teardown() throws IOException { - DeprecationLogger.removeThreadContext(this.threadContext); - this.threadContext.close(); - } - - public void testParseInnerQueryBuilder() throws IOException { - QueryBuilder query = new MatchQueryBuilder("foo", "bar"); - String source = query.toString(); - try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - QueryBuilder actual = parseInnerQueryBuilder(parser); - assertEquals(query, actual); - } - } - - public void testParseInnerQueryBuilderExceptions() throws IOException { - String source = "{ \"foo\": \"bar\" }"; - try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - parser.nextToken(); - parser.nextToken(); // don't start with START_OBJECT to provoke exception - ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); - assertEquals("[_na] query malformed, must start with start_object", exception.getMessage()); - } - - source = "{}"; - try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - IllegalArgumentException exception = expectThrows(IllegalArgumentException.class, () -> parseInnerQueryBuilder(parser)); - 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(parser); - ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); - assertEquals("[foo] query malformed, no start_object after query name", exception.getMessage()); - } - - source = "{ \"foo\" : {} }"; - try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) { - ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser)); - 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/RangeQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/RangeQueryBuilderTests.java index 4902aa8fa6..2f898481ed 100644 --- a/core/src/test/java/org/elasticsearch/index/query/RangeQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/RangeQueryBuilderTests.java @@ -224,7 +224,7 @@ public class RangeQueryBuilderTests extends AbstractQueryTestCase query.toQuery(createShardContext())); @@ -234,7 +234,7 @@ public class RangeQueryBuilderTests extends AbstractQueryTestCase query.toQuery(createShardContext())); @@ -410,7 +410,7 @@ public class RangeQueryBuilderTests extends AbstractQueryTestCase new SearchModule(Settings.EMPTY, false, singletonList(registersDupeHighlighter))); SearchPlugin registersDupeSuggester = new SearchPlugin() { + @Override public List> getSuggesters() { return singletonList(new SuggesterSpec<>("term", TermSuggestionBuilder::new, TermSuggestionBuilder::fromXContent)); } @@ -136,6 +137,7 @@ public class SearchModuleTests extends ModuleTestCase { singletonList(registersDupeFetchSubPhase))); SearchPlugin registersDupeQuery = new SearchPlugin() { + @Override public List> getQueries() { return singletonList(new QuerySpec<>(TermQueryBuilder.NAME, TermQueryBuilder::new, TermQueryBuilder::fromXContent)); } @@ -144,6 +146,7 @@ public class SearchModuleTests extends ModuleTestCase { new SearchModule(Settings.EMPTY, false, singletonList(registersDupeQuery)).getNamedXContents())); SearchPlugin registersDupeAggregation = new SearchPlugin() { + @Override public List getAggregations() { return singletonList(new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, TermsAggregationBuilder::parse)); @@ -153,6 +156,7 @@ public class SearchModuleTests extends ModuleTestCase { singletonList(registersDupeAggregation)).getNamedXContents())); SearchPlugin registersDupePipelineAggregation = new SearchPlugin() { + @Override public List getPipelineAggregations() { return singletonList(new PipelineAggregationSpec( DerivativePipelineAggregationBuilder.NAME, @@ -229,6 +233,7 @@ public class SearchModuleTests extends ModuleTestCase { public void testRegisterAggregation() { SearchModule module = new SearchModule(Settings.EMPTY, false, singletonList(new SearchPlugin() { + @Override public List getAggregations() { return singletonList(new AggregationSpec("test", TestAggregationBuilder::new, TestAggregationBuilder::fromXContent)); } @@ -243,6 +248,7 @@ public class SearchModuleTests extends ModuleTestCase { public void testRegisterPipelineAggregation() { SearchModule module = new SearchModule(Settings.EMPTY, false, singletonList(new SearchPlugin() { + @Override public List getPipelineAggregations() { return singletonList(new PipelineAggregationSpec("test", TestPipelineAggregationBuilder::new, TestPipelineAggregator::new, TestPipelineAggregationBuilder::fromXContent)); @@ -344,7 +350,7 @@ public class SearchModuleTests extends ModuleTestCase { return false; } - private static TestAggregationBuilder fromXContent(String name, QueryParseContext c) { + private static TestAggregationBuilder fromXContent(String name, XContentParser p) { return null; } } @@ -389,7 +395,7 @@ public class SearchModuleTests extends ModuleTestCase { return false; } - private static TestPipelineAggregationBuilder fromXContent(String name, QueryParseContext c) { + private static TestPipelineAggregationBuilder fromXContent(String name, XContentParser p) { return null; } } diff --git a/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java b/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java index 31edc3ac80..864a1806b6 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchServiceTests.java @@ -19,6 +19,7 @@ package org.elasticsearch.search; import com.carrotsearch.hppc.IntArrayList; + import org.apache.lucene.search.Query; import org.apache.lucene.store.AlreadyClosedException; import org.elasticsearch.action.ActionListener; @@ -272,7 +273,7 @@ public class SearchServiceTests extends ESSingleNodeTestCase { } @Override - protected QueryBuilder doRewrite(QueryRewriteContext queryShardContext) throws IOException { + protected QueryBuilder doRewrite(QueryRewriteContext queryShardContext) { throw new IllegalStateException("Fail on rewrite phase"); } 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 4ddab52110..9b5d64b46b 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java @@ -22,7 +22,6 @@ package org.elasticsearch.search.aggregations; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.IndexService; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.ESSingleNodeTestCase; @@ -58,10 +57,9 @@ public class AggregationCollectorTests extends ESSingleNodeTestCase { private boolean needsScores(IndexService index, String agg) throws IOException { XContentParser aggParser = createParser(JsonXContent.jsonXContent, agg); - QueryParseContext parseContext = new QueryParseContext(aggParser); aggParser.nextToken(); SearchContext context = createSearchContext(index); - final AggregatorFactories factories = AggregatorFactories.parseAggregators(parseContext).build(context, null); + final AggregatorFactories factories = AggregatorFactories.parseAggregators(aggParser).build(context, null); final Aggregator[] aggregators = factories.createTopLevelAggregators(); assertEquals(1, aggregators.length); return aggregators[0].needsScores(); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java index a3ffd4108f..4d5af51ec1 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregatorFactoriesTests.java @@ -26,8 +26,6 @@ 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.index.query.QueryParseContext; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilders; import org.elasticsearch.test.AbstractQueryTestCase; @@ -96,9 +94,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Found two aggregation type definitions in [in_stock]: [filter] and [terms]")); } @@ -129,9 +126,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Found two sub aggregation definitions under [by_date]")); } @@ -164,9 +160,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Invalid aggregation name [" + name + "]")); } @@ -188,9 +183,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Two sibling aggregations cannot have the same name: [" + name + "]")); } @@ -213,9 +207,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Expected [START_OBJECT] under [field], but got a [VALUE_STRING] in [cardinality]")); } @@ -238,9 +231,8 @@ public class AggregatorFactoriesTests extends ESTestCase { .endObject() .endObject(); XContentParser parser = createParser(source); - QueryParseContext parseContext = new QueryParseContext(parser); assertSame(XContentParser.Token.START_OBJECT, parser.nextToken()); - Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(ParsingException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Expected [START_OBJECT] under [field], but got a [VALUE_STRING] in [tag_count]")); } 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 0a738ec022..828b419909 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/BasePipelineAggregationTestCase.java @@ -32,7 +32,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.env.Environment; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.IndicesModule; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.pipeline.AbstractPipelineAggregationBuilder; @@ -117,9 +116,8 @@ public abstract class BasePipelineAggregationTestCase protected BucketOrder doParseInstance(XContentParser parser) throws IOException { Token token = parser.nextToken(); if (token == Token.START_OBJECT) { - return InternalOrder.Parser.parseOrderParam(parser, null); + return InternalOrder.Parser.parseOrderParam(parser); } if (token == Token.START_ARRAY) { List orders = new ArrayList<>(); while (parser.nextToken() == Token.START_OBJECT) { - orders.add(InternalOrder.Parser.parseOrderParam(parser, null)); + orders.add(InternalOrder.Parser.parseOrderParam(parser)); } return BucketOrder.compound(orders); } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java index b72c3befa4..c31dca0de5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java @@ -27,9 +27,9 @@ import org.elasticsearch.common.settings.Settings; 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.common.xcontent.XContentType; import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.SearchPlugin; @@ -116,7 +116,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .significanceHeuristic(new SimpleHeuristic()) .minDocCount(1) ) - ); + ); }else { request = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -128,9 +128,9 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .significanceHeuristic(new SimpleHeuristic()) .minDocCount(1) ) - ); + ); } - + SearchResponse response = request.execute().actionGet(); assertSearchResponse(response); StringTerms classes = response.getAggregations().get("class"); @@ -177,7 +177,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { @Override public List> getSignificanceHeuristics() { return singletonList(new SearchExtensionSpec(SimpleHeuristic.NAME, - SimpleHeuristic::new, (context) -> SimpleHeuristic.parse(context))); + SimpleHeuristic::new, (parser) -> SimpleHeuristic.parse(parser))); } @Override @@ -257,9 +257,9 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { return subsetFreq / subsetSize > supersetFreq / supersetSize ? 2.0 : 1.0; } - public static SignificanceHeuristic parse(QueryParseContext context) + public static SignificanceHeuristic parse(XContentParser parser) throws IOException, QueryShardException { - context.parser().nextToken(); + parser.nextToken(); return new SimpleHeuristic(); } } @@ -268,23 +268,23 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { String type = randomBoolean() ? "text" : "long"; String settings = "{\"index.number_of_shards\": 1, \"index.number_of_replicas\": 0}"; SharedSignificantTermsTestMethods.index01Docs(type, settings, this); - + SearchRequestBuilder request; if ("text".equals(type) && randomBoolean() ) { // Use significant_text on text fields but occasionally run with alternative of // significant_terms on legacy fieldData=true too. request = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) .addAggregation(terms("class").field(CLASS_FIELD) - .subAggregation(significantText("sig_terms", TEXT_FIELD))); + .subAggregation(significantText("sig_terms", TEXT_FIELD))); } else { request = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) .addAggregation(terms("class").field(CLASS_FIELD) - .subAggregation(significantTerms("sig_terms").field(TEXT_FIELD))); + .subAggregation(significantTerms("sig_terms").field(TEXT_FIELD))); } - + SearchResponse response = request.execute().actionGet(); - - + + assertSearchResponse(response); StringTerms classes = response.getAggregations().get("class"); assertThat(classes.getBuckets().size(), equalTo(2)); @@ -368,8 +368,8 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { indexRequestBuilderList.add(client().prepareIndex(INDEX_NAME, DOC_TYPE, "1").setSource(TEXT_FIELD, text, CLASS_FIELD, "1")); } indexRandom(true, false, indexRequestBuilderList); - - + + SearchRequestBuilder request; if (randomBoolean() ) { request = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -379,7 +379,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .subAggregation( significantTerms("sig_terms") .field(TEXT_FIELD) - .minDocCount(1))); + .minDocCount(1))); }else { request = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -388,9 +388,9 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .field(CLASS_FIELD) .subAggregation( significantText("sig_terms", TEXT_FIELD) - .minDocCount(1))); + .minDocCount(1))); } - + request.execute().actionGet(); } @@ -409,7 +409,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { // 2. filter buckets and set the background to the other class and set is_background false // both should yield exact same result public void testBackgroundVsSeparateSet(SignificanceHeuristic significanceHeuristicExpectingSuperset, - SignificanceHeuristic significanceHeuristicExpectingSeparateSets, + SignificanceHeuristic significanceHeuristicExpectingSeparateSets, String type) throws Exception { final boolean useSigText = randomBoolean() && type.equals("text"); @@ -422,7 +422,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { significantText("sig_terms", TEXT_FIELD) .minDocCount(1) .significanceHeuristic( - significanceHeuristicExpectingSuperset))); + significanceHeuristicExpectingSuperset))); }else { request1 = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -433,12 +433,12 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .field(TEXT_FIELD) .minDocCount(1) .significanceHeuristic( - significanceHeuristicExpectingSuperset))); + significanceHeuristicExpectingSuperset))); } - + SearchResponse response1 = request1.execute().actionGet(); assertSearchResponse(response1); - + SearchRequestBuilder request2; if (useSigText) { request2 = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -451,7 +451,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .subAggregation(significantText("sig_terms", TEXT_FIELD) .minDocCount(1) .backgroundFilter(QueryBuilders.termQuery(CLASS_FIELD, "0")) - .significanceHeuristic(significanceHeuristicExpectingSeparateSets))); + .significanceHeuristic(significanceHeuristicExpectingSeparateSets))); }else { request2 = client().prepareSearch(INDEX_NAME).setTypes(DOC_TYPE) @@ -466,9 +466,9 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .field(TEXT_FIELD) .minDocCount(1) .backgroundFilter(QueryBuilders.termQuery(CLASS_FIELD, "0")) - .significanceHeuristic(significanceHeuristicExpectingSeparateSets))); + .significanceHeuristic(significanceHeuristicExpectingSeparateSets))); } - + SearchResponse response2 = request2.execute().actionGet(); StringTerms classes = response1.getAggregations().get("class"); @@ -513,17 +513,17 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .field("text") .executionHint(randomExecutionHint()) .significanceHeuristic(heuristic) - .minDocCount(1).shardSize(1000).size(1000))); + .minDocCount(1).shardSize(1000).size(1000))); }else { request = client().prepareSearch("test") .addAggregation(terms("class").field("class").subAggregation(significantText("mySignificantTerms", "text") .significanceHeuristic(heuristic) - .minDocCount(1).shardSize(1000).size(1000))); - } + .minDocCount(1).shardSize(1000).size(1000))); + } SearchResponse response = request.execute().actionGet(); - assertSearchResponse(response); - + assertSearchResponse(response); + assertSearchResponse(response); StringTerms classes = response.getAggregations().get("class"); assertThat(classes.getBuckets().size(), equalTo(2)); @@ -580,14 +580,14 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { String type = randomBoolean() ? "text" : "long"; indexRandomFrequencies01(type); ScriptHeuristic scriptHeuristic = getScriptSignificanceHeuristic(); - + SearchRequestBuilder request; if ("text".equals(type) && randomBoolean()) { request = client().prepareSearch(INDEX_NAME) .addAggregation(terms("class").field(CLASS_FIELD) .subAggregation(significantText("mySignificantTerms", TEXT_FIELD) .significanceHeuristic(scriptHeuristic) - .minDocCount(1).shardSize(2).size(2))); + .minDocCount(1).shardSize(2).size(2))); }else { request = client().prepareSearch(INDEX_NAME) @@ -596,10 +596,10 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { .field(TEXT_FIELD) .executionHint(randomExecutionHint()) .significanceHeuristic(scriptHeuristic) - .minDocCount(1).shardSize(2).size(2))); - } + .minDocCount(1).shardSize(2).size(2))); + } SearchResponse response = request.execute().actionGet(); - assertSearchResponse(response); + assertSearchResponse(response); for (Terms.Bucket classBucket : ((Terms) response.getAggregations().get("class")).getBuckets()) { SignificantTerms sigTerms = classBucket.getAggregations().get("mySignificantTerms"); for (SignificantTerms.Bucket bucket : sigTerms.getBuckets()) { @@ -666,8 +666,8 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { // Test that a request using a script does not get cached ScriptHeuristic scriptHeuristic = getScriptSignificanceHeuristic(); - boolean useSigText = randomBoolean(); - SearchResponse r; + boolean useSigText = randomBoolean(); + SearchResponse r; if (useSigText) { r = client().prepareSearch("cache_test_idx").setSize(0) .addAggregation(significantText("foo", "s").significanceHeuristic(scriptHeuristic)).get(); @@ -696,7 +696,7 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { assertThat(client().admin().indices().prepareStats("cache_test_idx").setRequestCache(true).get().getTotal().getRequestCache() .getMissCount(), equalTo(1L)); } - - + + } 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 873084b3a8..967913f286 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 @@ -21,7 +21,6 @@ package org.elasticsearch.search.aggregations.bucket.geogrid; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.test.ESTestCase; import static org.hamcrest.Matchers.instanceOf; @@ -29,33 +28,30 @@ import static org.hamcrest.Matchers.instanceOf; public class GeoHashGridParserTests extends ESTestCase { public void testParseValidFromInts() throws Exception { int precision = randomIntBetween(1, 12); - XContentParser stParser = createParser(JsonXContent.jsonXContent, + XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":" + precision + ", \"size\": 500, \"shard_size\": 550}"); - QueryParseContext parseContext = new QueryParseContext(stParser); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); // can create a factory - assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", parseContext)); + assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", stParser)); } public void testParseValidFromStrings() throws Exception { int precision = randomIntBetween(1, 12); - XContentParser stParser = createParser(JsonXContent.jsonXContent, + XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"" + precision + "\", \"size\": \"500\", \"shard_size\": \"550\"}"); - QueryParseContext parseContext = new QueryParseContext(stParser); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); // can create a factory - assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", parseContext)); + assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", stParser)); } public void testParseErrorOnNonIntPrecision() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"2.0\"}"); - QueryParseContext parseContext = new QueryParseContext(stParser); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { - GeoGridAggregationBuilder.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", stParser); fail(); } catch (ParsingException ex) { assertThat(ex.getCause(), instanceOf(NumberFormatException.class)); @@ -65,11 +61,10 @@ public class GeoHashGridParserTests extends ESTestCase { public void testParseErrorOnBooleanPrecision() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":false}"); - QueryParseContext parseContext = new QueryParseContext(stParser); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { - GeoGridAggregationBuilder.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", stParser); fail(); } catch (IllegalArgumentException ex) { assertEquals("[geohash_grid] precision doesn't support values of type: VALUE_BOOLEAN", ex.getMessage()); @@ -78,11 +73,10 @@ public class GeoHashGridParserTests extends ESTestCase { public void testParseErrorOnPrecisionOutOfRange() throws Exception { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"my_loc\", \"precision\":\"13\"}"); - QueryParseContext parseContext = new QueryParseContext(stParser); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); try { - GeoGridAggregationBuilder.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", stParser); fail(); } catch (ParsingException ex) { assertThat(ex.getCause(), instanceOf(IllegalArgumentException.class)); 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 9c6615f8ff..07c3ae2dd9 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 @@ -33,7 +33,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.Index; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.SearchShardTarget; @@ -267,9 +266,8 @@ public class SignificanceHeuristicTests extends ESTestCase { try { XContentParser stParser = createParser(JsonXContent.jsonXContent, "{\"field\":\"text\", " + faultyHeuristicDefinition + ",\"min_doc_count\":200}"); - QueryParseContext parseContext = new QueryParseContext(stParser); stParser.nextToken(); - SignificantTermsAggregationBuilder.getParser(significanceHeuristicParserRegistry).parse("testagg", parseContext); + SignificantTermsAggregationBuilder.getParser(significanceHeuristicParserRegistry).parse("testagg", stParser); fail(); } catch (ParsingException e) { assertThat(e.getCause().getMessage(), containsString(expectedError)); @@ -286,14 +284,13 @@ public class SignificanceHeuristicTests extends ESTestCase { return parseSignificanceHeuristic(significanceHeuristicParserRegistry, stParser); } - private SignificanceHeuristic parseSignificanceHeuristic( + private static SignificanceHeuristic parseSignificanceHeuristic( ParseFieldRegistry significanceHeuristicParserRegistry, XContentParser stParser) throws IOException { - QueryParseContext parseContext = new QueryParseContext(stParser); stParser.nextToken(); SignificantTermsAggregationBuilder aggregatorFactory = (SignificantTermsAggregationBuilder) SignificantTermsAggregationBuilder.getParser( - significanceHeuristicParserRegistry).parse("testagg", parseContext); + significanceHeuristicParserRegistry).parse("testagg", stParser); stParser.nextToken(); assertThat(aggregatorFactory.getBucketCountThresholds().getMinDocCount(), equalTo(200L)); assertThat(stParser.currentToken(), equalTo(null)); 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 f6691d5b27..cffda00ca7 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 @@ -26,7 +26,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.MatchNoneQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.BaseAggregationTestCase; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregator.KeyedFilter; @@ -87,8 +86,7 @@ public class FiltersTests extends BaseAggregationTestCase AggregatorFactories.parseAggregators(parseContext)); + Exception e = expectThrows(AggregationInitializationException.class, () -> AggregatorFactories.parseAggregators(parser)); assertThat(e.toString(), containsString("Aggregator [top_tags_hits] of type [top_hits] cannot accept sub-aggregations")); } 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 c211f754d1..abfb086048 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 @@ -30,7 +30,6 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.fielddata.AbstractSortedSetDocValues; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude.OrdinalsFilter; @@ -223,11 +222,10 @@ public class IncludeExcludeTests extends ESTestCase { assertEquals(field.getPreferredName(), parser.currentName()); token = parser.nextToken(); - QueryParseContext parseContext = new QueryParseContext(parser); if (field.getPreferredName().equalsIgnoreCase("include")) { - return IncludeExclude.parseInclude(parser, parseContext); + return IncludeExclude.parseInclude(parser); } else if (field.getPreferredName().equalsIgnoreCase("exclude")) { - return IncludeExclude.parseExclude(parser, parseContext); + return IncludeExclude.parseExclude(parser); } else { throw new IllegalArgumentException( "Unexpected field name serialized in test: " + field.getPreferredName()); @@ -263,7 +261,6 @@ public class IncludeExcludeTests extends ESTestCase { builder.endObject(); XContentParser parser = createParser(builder); - QueryParseContext parseContext = new QueryParseContext(parser); XContentParser.Token token = parser.nextToken(); assertEquals(token, XContentParser.Token.START_OBJECT); @@ -273,10 +270,10 @@ public class IncludeExcludeTests extends ESTestCase { assertEquals(XContentParser.Token.FIELD_NAME, token); if (IncludeExclude.INCLUDE_FIELD.match(parser.currentName())) { token = parser.nextToken(); - inc = IncludeExclude.parseInclude(parser, parseContext); + inc = IncludeExclude.parseInclude(parser); } else if (IncludeExclude.EXCLUDE_FIELD.match(parser.currentName())) { token = parser.nextToken(); - exc = IncludeExclude.parseExclude(parser, parseContext); + exc = IncludeExclude.parseExclude(parser); } else { throw new IllegalArgumentException("Unexpected field name serialized in test: " + parser.currentName()); } 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 f8bd7b80d0..d6091c3cdd 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -34,7 +34,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.query.QueryBuilders; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.RandomQueryBuilder; import org.elasticsearch.search.AbstractSearchTestCase; import org.elasticsearch.search.rescore.QueryRescorerBuilder; @@ -64,21 +63,16 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { } private static void assertParseSearchSource(SearchSourceBuilder testBuilder, XContentParser parser) throws IOException { - QueryParseContext parseContext = new QueryParseContext(parser); if (randomBoolean()) { parser.nextToken(); // sometimes we move it on the START_OBJECT to // test the embedded case } - SearchSourceBuilder newBuilder = SearchSourceBuilder.fromXContent(parseContext); + SearchSourceBuilder newBuilder = SearchSourceBuilder.fromXContent(parser); assertNull(parser.nextToken()); assertEquals(testBuilder, newBuilder); assertEquals(testBuilder.hashCode(), newBuilder.hashCode()); } - private QueryParseContext createParseContext(XContentParser parser) { - return new QueryParseContext(parser); - } - public void testSerialization() throws IOException { SearchSourceBuilder testBuilder = createSearchSourceBuilder(); try (BytesStreamOutput output = new BytesStreamOutput()) { @@ -106,7 +100,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { { String restContent = " { \"_source\": { \"includes\": \"include\", \"excludes\": \"*.field2\"}}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertArrayEquals(new String[]{"*.field2"}, searchSourceBuilder.fetchSource().excludes()); assertArrayEquals(new String[]{"include"}, searchSourceBuilder.fetchSource().includes()); } @@ -114,7 +108,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { { String restContent = " { \"_source\": false}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertArrayEquals(new String[]{}, searchSourceBuilder.fetchSource().excludes()); assertArrayEquals(new String[]{}, searchSourceBuilder.fetchSource().includes()); assertFalse(searchSourceBuilder.fetchSource().fetchSource()); @@ -136,7 +130,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " }\n" + " } }"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(createParseContext(parser))); + ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(parser)); assertEquals("[multi_match] malformed query, expected [END_OBJECT] but found [FIELD_NAME]", e.getMessage()); } } @@ -145,7 +139,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { { String restContent = " { \"sort\": \"foo\"}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(1, searchSourceBuilder.sorts().size()); assertEquals(new FieldSortBuilder("foo"), searchSourceBuilder.sorts().get(0)); } @@ -160,7 +154,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " \"_score\"\n" + " ]}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(5, searchSourceBuilder.sorts().size()); assertEquals(new FieldSortBuilder("post_date"), searchSourceBuilder.sorts().get(0)); assertEquals(new FieldSortBuilder("user"), searchSourceBuilder.sorts().get(1)); @@ -183,7 +177,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " }\n" + "}\n"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(1, searchSourceBuilder.aggregations().count()); } } @@ -198,7 +192,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " }\n" + "}\n"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(1, searchSourceBuilder.aggregations().count()); } } @@ -223,7 +217,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " }\n" + "}\n"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(1, searchSourceBuilder.rescores().size()); assertEquals(new QueryRescorerBuilder(QueryBuilders.matchQuery("content", "baz")).windowSize(50), searchSourceBuilder.rescores().get(0)); @@ -245,7 +239,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " } ]\n" + "}\n"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(1, searchSourceBuilder.rescores().size()); assertEquals(new QueryRescorerBuilder(QueryBuilders.matchQuery("content", "baz")).windowSize(50), searchSourceBuilder.rescores().get(0)); @@ -257,7 +251,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { final String timeout = randomTimeValue(); final String query = "{ \"query\": { \"match_all\": {}}, \"timeout\": \"" + timeout + "\"}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, query)) { - final SearchSourceBuilder builder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + final SearchSourceBuilder builder = SearchSourceBuilder.fromXContent(parser); assertThat(builder.timeout(), equalTo(TimeValue.parseTimeValue(timeout, null, "timeout"))); } } @@ -267,7 +261,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { final String query = "{ \"query\": { \"match_all\": {}}, \"timeout\": \"" + timeout + "\"}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, query)) { final ElasticsearchParseException e = expectThrows(ElasticsearchParseException.class, () -> SearchSourceBuilder.fromXContent( - createParseContext(parser))); + parser)); assertThat(e, hasToString(containsString("unit is missing or unrecognized"))); } } @@ -299,7 +293,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { { String restContent = " { \"indices_boost\": {\"foo\": 1.0, \"bar\": 2.0}}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(2, searchSourceBuilder.indexBoosts().size()); assertEquals(new SearchSourceBuilder.IndexBoost("foo", 1.0f), searchSourceBuilder.indexBoosts().get(0)); assertEquals(new SearchSourceBuilder.IndexBoost("bar", 2.0f), searchSourceBuilder.indexBoosts().get(1)); @@ -315,7 +309,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { " { \"baz\" : 3.0 }\n" + " ]}"; try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(createParseContext(parser)); + SearchSourceBuilder searchSourceBuilder = SearchSourceBuilder.fromXContent(parser); assertEquals(3, searchSourceBuilder.indexBoosts().size()); assertEquals(new SearchSourceBuilder.IndexBoost("foo", 1.0f), searchSourceBuilder.indexBoosts().get(0)); assertEquals(new SearchSourceBuilder.IndexBoost("bar", 2.0f), searchSourceBuilder.indexBoosts().get(1)); @@ -367,7 +361,7 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { private void assertIndicesBoostParseErrorMessage(String restContent, String expectedErrorMessage) throws IOException { try (XContentParser parser = createParser(JsonXContent.jsonXContent, restContent)) { - ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(createParseContext(parser))); + ParsingException e = expectThrows(ParsingException.class, () -> SearchSourceBuilder.fromXContent(parser)); assertEquals(expectedErrorMessage, e.getMessage()); } } diff --git a/core/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java b/core/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java index 07eef1a2f3..e4525ac3e9 100644 --- a/core/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/collapse/CollapseBuilderTests.java @@ -39,7 +39,6 @@ import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.NumberFieldMapper; import org.elasticsearch.index.query.InnerHitBuilder; import org.elasticsearch.index.query.InnerHitBuilderTests; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.SearchContextException; import org.elasticsearch.search.SearchModule; @@ -201,12 +200,13 @@ public class CollapseBuilderTests extends AbstractSerializingTestCase secondRescoreBuilder = RescoreBuilder.parseFromXContent(context); + RescoreBuilder secondRescoreBuilder = RescoreBuilder.parseFromXContent(parser); assertNotSame(rescoreBuilder, secondRescoreBuilder); assertEquals(rescoreBuilder, secondRescoreBuilder); assertEquals(rescoreBuilder.hashCode(), secondRescoreBuilder.hashCode()); @@ -174,9 +172,9 @@ public class QueryRescoreBuilderTests extends ESTestCase { " \"window_size\" : 20,\n" + " \"bad_rescorer_name\" : { }\n" + "}\n"; - QueryParseContext context = createContext(rescoreElement); + XContentParser parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (ParsingException e) { assertEquals("rescore doesn't support rescorer with name [bad_rescorer_name]", e.getMessage()); @@ -185,9 +183,9 @@ public class QueryRescoreBuilderTests extends ESTestCase { rescoreElement = "{\n" + " \"bad_fieldName\" : 20\n" + "}\n"; - context = createContext(rescoreElement); + parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (ParsingException e) { assertEquals("rescore doesn't support [bad_fieldName]", e.getMessage()); @@ -197,18 +195,18 @@ public class QueryRescoreBuilderTests extends ESTestCase { " \"window_size\" : 20,\n" + " \"query\" : [ ]\n" + "}\n"; - context = createContext(rescoreElement); + parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (ParsingException e) { assertEquals("unexpected token [START_ARRAY] after [query]", e.getMessage()); } rescoreElement = "{ }"; - context = createContext(rescoreElement); + parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (ParsingException e) { assertEquals("missing rescore type", e.getMessage()); @@ -218,9 +216,9 @@ public class QueryRescoreBuilderTests extends ESTestCase { " \"window_size\" : 20,\n" + " \"query\" : { \"bad_fieldname\" : 1.0 } \n" + "}\n"; - context = createContext(rescoreElement); + parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (IllegalArgumentException e) { assertEquals("[query] unknown field [bad_fieldname], parser not found", e.getMessage()); @@ -230,9 +228,9 @@ public class QueryRescoreBuilderTests extends ESTestCase { " \"window_size\" : 20,\n" + " \"query\" : { \"rescore_query\" : { \"unknown_queryname\" : { } } } \n" + "}\n"; - context = createContext(rescoreElement); + parser = createParser(rescoreElement); try { - RescoreBuilder.parseFromXContent(context); + RescoreBuilder.parseFromXContent(parser); fail("expected a parsing exception"); } catch (ParsingException e) { assertEquals("[query] failed to parse field [rescore_query]", e.getMessage()); @@ -242,19 +240,18 @@ public class QueryRescoreBuilderTests extends ESTestCase { " \"window_size\" : 20,\n" + " \"query\" : { \"rescore_query\" : { \"match_all\" : { } } } \n" + "}\n"; - context = createContext(rescoreElement); - RescoreBuilder.parseFromXContent(context); + parser = createParser(rescoreElement); + RescoreBuilder.parseFromXContent(parser); } /** * create a new parser from the rescorer string representation and reset context with it */ - private QueryParseContext createContext(String rescoreElement) throws IOException { + private XContentParser createParser(String rescoreElement) throws IOException { XContentParser parser = createParser(JsonXContent.jsonXContent, rescoreElement); - QueryParseContext context = new QueryParseContext(parser); // move to first token, this is where the internal fromXContent assertTrue(parser.nextToken() == XContentParser.Token.START_OBJECT); - return context; + return parser; } @Override 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 33c4f502b7..009b9ab5d6 100644 --- a/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/slice/SliceBuilderTests.java @@ -42,7 +42,6 @@ import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.fielddata.IndexNumericFieldData; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.UidFieldMapper; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.test.ESTestCase; @@ -107,8 +106,7 @@ public class SliceBuilderTests extends ESTestCase { sliceBuilder.innerToXContent(builder); builder.endObject(); XContentParser parser = createParser(shuffleXContent(builder)); - QueryParseContext context = new QueryParseContext(parser); - SliceBuilder secondSliceBuilder = SliceBuilder.fromXContent(context); + SliceBuilder secondSliceBuilder = SliceBuilder.fromXContent(parser); assertNotSame(sliceBuilder, secondSliceBuilder); assertEquals(sliceBuilder, secondSliceBuilder); assertEquals(sliceBuilder.hashCode(), secondSliceBuilder.hashCode()); diff --git a/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryContextMappingTests.java b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryContextMappingTests.java index b9b15341da..07513b7641 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryContextMappingTests.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryContextMappingTests.java @@ -37,7 +37,6 @@ import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.SourceToParse; -import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.suggest.completion.context.CategoryContextMapping; import org.elasticsearch.search.suggest.completion.context.ContextBuilder; import org.elasticsearch.search.suggest.completion.context.ContextMapping; @@ -361,7 +360,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentBuilder builder = jsonBuilder().value("context1"); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(1)); @@ -372,7 +371,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentBuilder builder = jsonBuilder().value(true); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("true")); assertThat(internalQueryContexts.get(0).boost, equalTo(1)); @@ -383,7 +382,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentBuilder builder = jsonBuilder().value(10); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("10")); assertThat(internalQueryContexts.get(0).boost, equalTo(1)); @@ -395,7 +394,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(createParseContext(parser))); + Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(parser)); assertEquals("category context must be an object, string, number or boolean", e.getMessage()); } @@ -406,7 +405,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(2)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(1)); @@ -425,7 +424,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(4)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(1)); @@ -452,7 +451,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(createParseContext(parser))); + Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(parser)); assertEquals("category context must be an object, string, number or boolean", e.getMessage()); } @@ -464,7 +463,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endObject(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(10)); @@ -479,7 +478,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endObject(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("false")); assertThat(internalQueryContexts.get(0).boost, equalTo(10)); @@ -494,7 +493,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endObject(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1)); assertThat(internalQueryContexts.get(0).context, equalTo("333")); assertThat(internalQueryContexts.get(0).boost, equalTo(10)); @@ -510,7 +509,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(createParseContext(parser))); + Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(parser)); assertEquals("category context must be a string, number or boolean", e.getMessage()); } @@ -529,7 +528,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(2)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(2)); @@ -564,7 +563,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(4)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(2)); @@ -611,13 +610,10 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(createParseContext(parser))); + Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(parser)); assertEquals("category context must be a string, number or boolean", e.getMessage()); } - private static QueryParseContext createParseContext(XContentParser parser) { - return new QueryParseContext(parser); - } public void testQueryContextParsingMixed() throws Exception { XContentBuilder builder = jsonBuilder().startArray() @@ -636,7 +632,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(4)); assertThat(internalQueryContexts.get(0).context, equalTo("context1")); assertThat(internalQueryContexts.get(0).boost, equalTo(2)); @@ -671,10 +667,10 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); CategoryContextMapping mapping = ContextBuilder.category("cat").build(); - Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(createParseContext(parser))); + Exception e = expectThrows(ElasticsearchParseException.class, () -> mapping.parseQueryContext(parser)); assertEquals("category context must be an object, string, number or boolean", e.getMessage()); } - + public void testUnknownQueryContextParsing() throws Exception { String mapping = jsonBuilder().startObject().startObject("type1") .startObject("properties").startObject("completion") @@ -695,7 +691,7 @@ public class CategoryContextMappingTests extends ESSingleNodeTestCase { DocumentMapper defaultMapper = createIndex("test").mapperService().documentMapperParser().parse("type1", new CompressedXContent(mapping)); FieldMapper fieldMapper = defaultMapper.mappers().getMapper("completion"); CompletionFieldType completionFieldType = (CompletionFieldType) fieldMapper.fieldType(); - + Exception e = expectThrows(IllegalArgumentException.class, () -> completionFieldType.getContextMappings().get("brand")); assertEquals("Unknown context name [brand], must be one of [ctx, type]", e.getMessage()); } diff --git a/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java index 658f145b1c..7b0b898e59 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/completion/CategoryQueryContextTests.java @@ -19,7 +19,7 @@ package org.elasticsearch.search.suggest.completion; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.suggest.completion.context.CategoryQueryContext; import java.io.IOException; @@ -40,8 +40,8 @@ public class CategoryQueryContextTests extends QueryContextTestCase internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1 + 8)); Collection locations = new ArrayList<>(); locations.add("ezs42e"); @@ -228,7 +227,7 @@ public class GeoContextMappingTests extends ESSingleNodeTestCase { .endObject(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); GeoContextMapping mapping = ContextBuilder.geo("geo").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1 + 8)); Collection locations = new ArrayList<>(); locations.add("wh0n94"); @@ -251,7 +250,7 @@ public class GeoContextMappingTests extends ESSingleNodeTestCase { .endObject(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); GeoContextMapping mapping = ContextBuilder.geo("geo").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1 + 1 + 8 + 1 + 8 + 1 + 8)); Collection locations = new ArrayList<>(); locations.add("wh0n94"); @@ -289,7 +288,7 @@ public class GeoContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); GeoContextMapping mapping = ContextBuilder.geo("geo").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1 + 1 + 8 + 1 + 8 + 1 + 8 + 1 + 1 + 8)); Collection firstLocations = new ArrayList<>(); firstLocations.add("wh0n94"); @@ -332,7 +331,7 @@ public class GeoContextMappingTests extends ESSingleNodeTestCase { .endArray(); XContentParser parser = createParser(JsonXContent.jsonXContent, builder.bytes()); GeoContextMapping mapping = ContextBuilder.geo("geo").build(); - List internalQueryContexts = mapping.parseQueryContext(createParseContext(parser)); + List internalQueryContexts = mapping.parseQueryContext(parser); assertThat(internalQueryContexts.size(), equalTo(1 + 1 + 8 + 1 + 8 + 1 + 8)); Collection firstLocations = new ArrayList<>(); firstLocations.add("wh0n94"); @@ -354,8 +353,4 @@ public class GeoContextMappingTests extends ESSingleNodeTestCase { assertThat(internalQueryContext.isPrefix, equalTo(internalQueryContext.context.length() < GeoContextMapping.DEFAULT_PRECISION)); } } - - private static QueryParseContext createParseContext(XContentParser parser) { - return new QueryParseContext(parser); - }; } diff --git a/core/src/test/java/org/elasticsearch/search/suggest/completion/GeoQueryContextTests.java b/core/src/test/java/org/elasticsearch/search/suggest/completion/GeoQueryContextTests.java index 3e22513ec1..1d058350a9 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/completion/GeoQueryContextTests.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/completion/GeoQueryContextTests.java @@ -20,7 +20,7 @@ package org.elasticsearch.search.suggest.completion; import org.elasticsearch.common.geo.GeoPoint; -import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.suggest.completion.context.GeoQueryContext; import java.io.IOException; @@ -51,8 +51,8 @@ public class GeoQueryContextTests extends QueryContextTestCase } @Override - protected GeoQueryContext fromXContent(QueryParseContext context) throws IOException { - return GeoQueryContext.fromXContent(context); + protected GeoQueryContext fromXContent(XContentParser parser) throws IOException { + return GeoQueryContext.fromXContent(parser); } public void testNullGeoPointIsIllegal() { diff --git a/core/src/test/java/org/elasticsearch/search/suggest/completion/QueryContextTestCase.java b/core/src/test/java/org/elasticsearch/search/suggest/completion/QueryContextTestCase.java index 192aa8ee1d..3f288e3e3e 100644 --- a/core/src/test/java/org/elasticsearch/search/suggest/completion/QueryContextTestCase.java +++ b/core/src/test/java/org/elasticsearch/search/suggest/completion/QueryContextTestCase.java @@ -23,7 +23,6 @@ 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.QueryParseContext; import org.elasticsearch.test.ESTestCase; import java.io.IOException; @@ -40,7 +39,7 @@ public abstract class QueryContextTestCase extends ESTest /** * read the context */ - protected abstract QC fromXContent(QueryParseContext context) throws IOException; + protected abstract QC fromXContent(XContentParser parser) throws IOException; public void testToXContext() throws IOException { for (int i = 0; i < NUMBER_OF_RUNS; i++) { @@ -49,7 +48,7 @@ public abstract class QueryContextTestCase extends ESTest toXContent.toXContent(builder, ToXContent.EMPTY_PARAMS); XContentParser parser = createParser(builder); parser.nextToken(); - QC fromXContext = fromXContent(new QueryParseContext(parser)); + QC fromXContext = fromXContent(parser); assertEquals(toXContent, fromXContext); assertEquals(toXContent.hashCode(), fromXContext.hashCode()); } -- cgit v1.2.3