summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch
diff options
context:
space:
mode:
authorChristoph Büscher <christoph@elastic.co>2017-06-29 17:10:20 +0200
committerGitHub <noreply@github.com>2017-06-29 17:10:20 +0200
commit927111c91dac5e3cef868eead3cfe8fd4075bee5 (patch)
treed1879782d7d0c5a44323e211d44e5f5bbfc87913 /core/src/test/java/org/elasticsearch
parent22ff76da0c7eaaadfb4f5127770bdeba9eb0e6ac (diff)
Remove QueryParseContext from parsing QueryBuilders (#25448)
Currently QueryParseContext is only a thin wrapper around an XContentParser that adds little functionality of its own. I provides helpers for long deprecated field names which can be removed and two helper methods that can be made static and moved to other classes. This is a first step in helping to remove QueryParseContext entirely.
Diffstat (limited to 'core/src/test/java/org/elasticsearch')
-rw-r--r--core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java3
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java3
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java43
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java6
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilderTests.java6
-rw-r--r--core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java5
-rw-r--r--core/src/test/java/org/elasticsearch/rest/action/RestActionsTests.java82
-rw-r--r--core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightBuilderTests.java22
-rw-r--r--core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java4
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java10
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java9
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java17
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java12
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java20
-rw-r--r--core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java4
15 files changed, 131 insertions, 115 deletions
diff --git a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java
index 35210ec70e..b2903e24de 100644
--- a/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java
+++ b/core/src/test/java/org/elasticsearch/action/search/MultiSearchRequestTests.java
@@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.rest.RestRequest;
import org.elasticsearch.rest.action.search.RestMultiSearchAction;
import org.elasticsearch.test.ESTestCase;
@@ -182,6 +181,6 @@ public class MultiSearchRequestTests extends ESTestCase {
@Override
protected NamedXContentRegistry xContentRegistry() {
return new NamedXContentRegistry(singletonList(new NamedXContentRegistry.Entry(QueryBuilder.class,
- new ParseField(MatchAllQueryBuilder.NAME), (p, c) -> MatchAllQueryBuilder.fromXContent((QueryParseContext) c))));
+ new ParseField(MatchAllQueryBuilder.NAME), (p, c) -> MatchAllQueryBuilder.fromXContent(p))));
}
}
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 20b0fc1e16..78975bf7b1 100644
--- a/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/index/query/InnerHitBuilderTests.java
@@ -123,8 +123,7 @@ public class InnerHitBuilderTests extends ESTestCase {
//fields is printed out as an object but parsed into a List where order matters, we disable shuffling
XContentBuilder shuffled = shuffleXContent(builder, "fields");
XContentParser parser = createParser(shuffled);
- QueryParseContext context = new QueryParseContext(parser);
- InnerHitBuilder secondInnerHits = InnerHitBuilder.fromXContent(context);
+ InnerHitBuilder secondInnerHits = InnerHitBuilder.fromXContent(parser);
assertThat(innerHit, not(sameInstance(secondInnerHits)));
assertThat(innerHit, equalTo(secondInnerHits));
assertThat(innerHit.hashCode(), equalTo(secondInnerHits.hashCode()));
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 3f8837fe74..5bd6a8a582 100644
--- a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java
+++ b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java
@@ -36,6 +36,7 @@ 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;
@@ -64,40 +65,11 @@ public class QueryParseContextTests extends ESTestCase {
this.threadContext.close();
}
- 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(parser);
- QueryBuilder actual = context.parseTopLevelQueryBuilder();
- assertEquals(query, actual);
- }
- }
-
- public void testParseTopLevelBuilderEmptyObject() throws IOException {
- String requestBody = "{}";
- try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
- QueryParseContext context = new QueryParseContext(parser);
- QueryBuilder query = context.parseTopLevelQueryBuilder();
- assertNull(query);
- }
- }
-
- public void testParseTopLevelBuilderUnknownParameter() throws IOException {
- String requestBody = "{ \"foo\" : \"bar\"}";
- try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
- QueryParseContext context = new QueryParseContext(parser);
- ParsingException exception = expectThrows(ParsingException.class, () -> context.parseTopLevelQueryBuilder());
- assertEquals("request does not support [foo]", exception.getMessage());
- }
- }
-
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(parser);
- QueryBuilder actual = context.parseInnerQueryBuilder();
+ QueryBuilder actual = parseInnerQueryBuilder(parser);
assertEquals(query, actual);
}
}
@@ -107,29 +79,26 @@ public class QueryParseContextTests extends ESTestCase {
try (XContentParser parser = createParser(JsonXContent.jsonXContent, source)) {
parser.nextToken();
parser.nextToken(); // don't start with START_OBJECT to provoke exception
- QueryParseContext context = new QueryParseContext(parser);
- ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder());
+ 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)) {
- QueryParseContext context = new QueryParseContext(parser);
- IllegalArgumentException exception = expectThrows(IllegalArgumentException.class, () -> context.parseInnerQueryBuilder());
+ 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, () -> context.parseInnerQueryBuilder());
+ 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)) {
- QueryParseContext context = new QueryParseContext(parser);
- ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder());
+ ParsingException exception = expectThrows(ParsingException.class, () -> parseInnerQueryBuilder(parser));
assertEquals("no [query] registered for [foo]", exception.getMessage());
}
}
diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java
index 038eadeff7..c32eb42573 100644
--- a/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java
@@ -65,6 +65,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import static org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder;
import static org.elasticsearch.index.query.QueryBuilders.queryStringQuery;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertBooleanSubQuery;
import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertDisjunctionSubQuery;
@@ -521,7 +522,7 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase<QueryStr
}
builder.endObject();
- QueryBuilder queryBuilder = new QueryParseContext(createParser(builder)).parseInnerQueryBuilder();
+ QueryBuilder queryBuilder = parseInnerQueryBuilder(createParser(builder));
TooComplexToDeterminizeException e = expectThrows(TooComplexToDeterminizeException.class,
() -> queryBuilder.toQuery(createShardContext()));
assertThat(e.getMessage(), containsString("Determinizing [ac]*"));
@@ -545,8 +546,7 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase<QueryStr
}
builder.endObject();
- QueryStringQueryBuilder queryBuilder = (QueryStringQueryBuilder) new QueryParseContext(createParser(builder))
- .parseInnerQueryBuilder();
+ QueryStringQueryBuilder queryBuilder = (QueryStringQueryBuilder) parseInnerQueryBuilder(createParser(builder));
assertFalse(queryBuilder.enablePositionIncrements());
}
diff --git a/core/src/test/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilderTests.java
index 90d11efb11..bfc8e2dc8d 100644
--- a/core/src/test/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilderTests.java
@@ -20,6 +20,7 @@
package org.elasticsearch.index.query.functionscore;
import com.fasterxml.jackson.core.JsonParseException;
+
import org.apache.lucene.index.Term;
import org.apache.lucene.search.MatchAllDocsQuery;
import org.apache.lucene.search.Query;
@@ -40,7 +41,6 @@ import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.AbstractQueryBuilder;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.RandomQueryBuilder;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.query.WrapperQueryBuilder;
@@ -796,9 +796,9 @@ public class FunctionScoreQueryBuilderTests extends AbstractQueryTestCase<Functi
return NAME;
}
- public static RandomScoreFunctionBuilder fromXContent(QueryParseContext parseContext)
+ public static RandomScoreFunctionBuilder fromXContent(XContentParser parser)
throws IOException, ParsingException {
- RandomScoreFunctionBuilder builder = RandomScoreFunctionBuilder.fromXContent(parseContext);
+ RandomScoreFunctionBuilder builder = RandomScoreFunctionBuilder.fromXContent(parser);
RandomScoreFunctionBuilderWithFixedSeed replacement = new RandomScoreFunctionBuilderWithFixedSeed();
if (builder.getSeed() != null) {
replacement.seed(builder.getSeed());
diff --git a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java
index 5b6ea96dc3..cbd76877ce 100644
--- a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java
+++ b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java
@@ -25,7 +25,6 @@ import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.query.AbstractQueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.plugin.DummyQueryParserPlugin.DummyQuery;
@@ -51,8 +50,8 @@ public class DummyQueryBuilder extends AbstractQueryBuilder<DummyQueryBuilder> {
builder.startObject(NAME).endObject();
}
- public static DummyQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException {
- XContentParser.Token token = parseContext.parser().nextToken();
+ public static DummyQueryBuilder fromXContent(XContentParser parser) throws IOException {
+ XContentParser.Token token = parser.nextToken();
assert token == XContentParser.Token.END_OBJECT;
return new DummyQueryBuilder();
}
diff --git a/core/src/test/java/org/elasticsearch/rest/action/RestActionsTests.java b/core/src/test/java/org/elasticsearch/rest/action/RestActionsTests.java
new file mode 100644
index 0000000000..7272243e3c
--- /dev/null
+++ b/core/src/test/java/org/elasticsearch/rest/action/RestActionsTests.java
@@ -0,0 +1,82 @@
+/*
+ * 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.rest.action;
+
+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.index.query.MatchQueryBuilder;
+import org.elasticsearch.index.query.QueryBuilder;
+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;
+
+public class RestActionsTests 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 testParseTopLevelBuilder() throws IOException {
+ QueryBuilder query = new MatchQueryBuilder("foo", "bar");
+ String requestBody = "{ \"query\" : " + query.toString() + "}";
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
+ QueryBuilder actual = RestActions.getQueryContent(parser);
+ assertEquals(query, actual);
+ }
+ }
+
+ public void testParseTopLevelBuilderEmptyObject() throws IOException {
+ String requestBody = "{}";
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
+ QueryBuilder query = RestActions.getQueryContent(parser);
+ assertNull(query);
+ }
+ }
+
+ public void testParseTopLevelBuilderUnknownParameter() throws IOException {
+ String requestBody = "{ \"foo\" : \"bar\"}";
+ try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
+ ParsingException exception = expectThrows(ParsingException.class, () -> RestActions.getQueryContent(parser));
+ assertEquals("request does not support [foo]", exception.getMessage());
+ }
+ }
+
+ @Override
+ protected NamedXContentRegistry xContentRegistry() {
+ return xContentRegistry;
+ }
+
+}
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 2d1fb3d986..b49a211a1c 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
@@ -43,7 +43,6 @@ import org.elasticsearch.index.mapper.TextFieldMapper;
import org.elasticsearch.index.query.IdsQueryBuilder;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.search.SearchModule;
@@ -138,11 +137,10 @@ public class HighlightBuilderTests extends ESTestCase {
}
XContentParser parser = createParser(shuffled);
- QueryParseContext context = new QueryParseContext(parser);
parser.nextToken();
HighlightBuilder secondHighlightBuilder;
try {
- secondHighlightBuilder = HighlightBuilder.fromXContent(context);
+ secondHighlightBuilder = HighlightBuilder.fromXContent(parser);
} catch (RuntimeException e) {
throw new RuntimeException("Error parsing " + highlightBuilder, e);
}
@@ -179,8 +177,7 @@ public class HighlightBuilderTests extends ESTestCase {
private <T extends Throwable> T expectParseThrows(Class<T> exceptionClass, String highlightElement) throws IOException {
XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement);
- QueryParseContext context = new QueryParseContext(parser);
- return expectThrows(exceptionClass, () -> HighlightBuilder.fromXContent(context));
+ return expectThrows(exceptionClass, () -> HighlightBuilder.fromXContent(parser));
}
/**
@@ -390,8 +387,7 @@ public class HighlightBuilderTests extends ESTestCase {
"}\n";
XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement);
- QueryParseContext context = new QueryParseContext(parser);
- HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(context);
+ HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(parser);
assertArrayEquals("setting tags_schema 'styled' should alter pre_tags", HighlightBuilder.DEFAULT_STYLED_PRE_TAG,
highlightBuilder.preTags());
assertArrayEquals("setting tags_schema 'styled' should alter post_tags", HighlightBuilder.DEFAULT_STYLED_POST_TAGS,
@@ -402,8 +398,7 @@ public class HighlightBuilderTests extends ESTestCase {
"}\n";
parser = createParser(JsonXContent.jsonXContent, highlightElement);
- context = new QueryParseContext(parser);
- highlightBuilder = HighlightBuilder.fromXContent(context);
+ highlightBuilder = HighlightBuilder.fromXContent(parser);
assertArrayEquals("setting tags_schema 'default' should alter pre_tags", HighlightBuilder.DEFAULT_PRE_TAGS,
highlightBuilder.preTags());
assertArrayEquals("setting tags_schema 'default' should alter post_tags", HighlightBuilder.DEFAULT_POST_TAGS,
@@ -423,22 +418,19 @@ public class HighlightBuilderTests extends ESTestCase {
String highlightElement = "{ }";
XContentParser parser = createParser(JsonXContent.jsonXContent, highlightElement);
- QueryParseContext context = new QueryParseContext(parser);
- HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(context);
+ HighlightBuilder highlightBuilder = HighlightBuilder.fromXContent(parser);
assertEquals("expected plain HighlightBuilder", new HighlightBuilder(), highlightBuilder);
highlightElement = "{ \"fields\" : { } }";
parser = createParser(JsonXContent.jsonXContent, highlightElement);
- context = new QueryParseContext(parser);
- highlightBuilder = HighlightBuilder.fromXContent(context);
+ highlightBuilder = HighlightBuilder.fromXContent(parser);
assertEquals("defining no field should return plain HighlightBuilder", new HighlightBuilder(), highlightBuilder);
highlightElement = "{ \"fields\" : { \"foo\" : { } } }";
parser = createParser(JsonXContent.jsonXContent, highlightElement);
- context = new QueryParseContext(parser);
- highlightBuilder = HighlightBuilder.fromXContent(context);
+ highlightBuilder = HighlightBuilder.fromXContent(parser);
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 7a0e10af99..f1a890f786 100644
--- a/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java
+++ b/core/src/test/java/org/elasticsearch/search/internal/ShardSearchTransportRequestTests.java
@@ -40,7 +40,6 @@ import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.index.IndexSettings;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.RandomQueryBuilder;
import org.elasticsearch.index.shard.ShardId;
@@ -50,6 +49,7 @@ import org.elasticsearch.search.AbstractSearchTestCase;
import java.io.IOException;
import java.util.Base64;
+import static org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder;
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.equalTo;
@@ -165,7 +165,7 @@ public class ShardSearchTransportRequestTests extends AbstractSearchTestCase {
public QueryBuilder aliasFilter(IndexMetaData indexMetaData, String... aliasNames) {
CheckedFunction<byte[], QueryBuilder, IOException> filterParser = bytes -> {
try (XContentParser parser = XContentFactory.xContent(bytes).createParser(xContentRegistry(), bytes)) {
- return new QueryParseContext(parser).parseInnerQueryBuilder();
+ return parseInnerQueryBuilder(parser);
}
};
return ShardSearchRequest.parseAliasFilter(filterParser, indexMetaData, aliasNames);
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 8e6b9f45cc..106c3eb05a 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/AbstractSortTestCase.java
@@ -45,13 +45,11 @@ import org.elasticsearch.index.mapper.ObjectMapper.Nested;
import org.elasticsearch.index.query.IdsQueryBuilder;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.shard.ShardId;
import org.elasticsearch.indices.fielddata.cache.IndicesFieldDataCache;
import org.elasticsearch.script.MockScriptEngine;
-import org.elasticsearch.script.ScriptContext;
import org.elasticsearch.script.ScriptEngine;
import org.elasticsearch.script.ScriptModule;
import org.elasticsearch.script.ScriptService;
@@ -63,7 +61,6 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import java.io.IOException;
-import java.nio.file.Path;
import java.util.Collections;
import java.util.Map;
import java.util.function.Function;
@@ -106,7 +103,7 @@ public abstract class AbstractSortTestCase<T extends SortBuilder<T>> extends EST
protected abstract T mutate(T original) throws IOException;
/** Parse the sort from xContent. Just delegate to the SortBuilder's static fromXContent method. */
- protected abstract T fromXContent(QueryParseContext context, String fieldName) throws IOException;
+ protected abstract T fromXContent(XContentParser parser, String fieldName) throws IOException;
/**
* Test that creates new sort from a random test sort and checks both for equality
@@ -131,8 +128,7 @@ public abstract class AbstractSortTestCase<T extends SortBuilder<T>> extends EST
String elementName = itemParser.currentName();
itemParser.nextToken();
- QueryParseContext context = new QueryParseContext(itemParser);
- T parsedItem = fromXContent(context, elementName);
+ T parsedItem = fromXContent(itemParser, elementName);
assertNotSame(testItem, parsedItem);
assertEquals(testItem, parsedItem);
assertEquals(testItem.hashCode(), parsedItem.hashCode());
@@ -241,7 +237,7 @@ public abstract class AbstractSortTestCase<T extends SortBuilder<T>> extends EST
private T copy(T original) throws IOException {
/* The cast below is required to make Java 9 happy. Java 8 infers the T in copyWriterable to be the same as AbstractSortTestCase's
* T but Java 9 infers it to be SortBuilder. */
- return (T) copyWriteable(original, namedWriteableRegistry,
+ return copyWriteable(original, namedWriteableRegistry,
namedWriteableRegistry.getReader(SortBuilder.class, original.getWriteableName()));
}
}
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 57e79ce98c..eda187d916 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/FieldSortBuilderTests.java
@@ -22,7 +22,6 @@ package org.elasticsearch.search.sort;
import org.apache.lucene.search.SortField;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.json.JsonXContent;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.search.DocValueFormat;
import java.io.IOException;
@@ -133,10 +132,8 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
-
try {
- FieldSortBuilder.fromXContent(context, "");
+ FieldSortBuilder.fromXContent(parser, "");
fail("adding reverse sorting option should fail with an exception");
} catch (IllegalArgumentException e) {
// all good
@@ -145,7 +142,7 @@ public class FieldSortBuilderTests extends AbstractSortTestCase<FieldSortBuilder
@Override
- protected FieldSortBuilder fromXContent(QueryParseContext context, String fieldName) throws IOException {
- return FieldSortBuilder.fromXContent(context, fieldName);
+ protected FieldSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException {
+ return FieldSortBuilder.fromXContent(parser, fieldName);
}
}
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 99ab42c6e4..007695886c 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java
@@ -32,7 +32,6 @@ import org.elasticsearch.index.mapper.GeoPointFieldMapper;
import org.elasticsearch.index.mapper.MappedFieldType;
import org.elasticsearch.index.query.GeoValidationMethod;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.index.query.QueryShardContext;
import org.elasticsearch.search.DocValueFormat;
import org.elasticsearch.test.geo.RandomGeoGenerator;
@@ -206,9 +205,8 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase<GeoDistanc
XContentParser itemParser = createParser(JsonXContent.jsonXContent, json);
itemParser.nextToken();
- QueryParseContext context = new QueryParseContext(itemParser);
-
- IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> GeoDistanceSortBuilder.fromXContent(context, ""));
+ IllegalArgumentException e = expectThrows(IllegalArgumentException.class,
+ () -> GeoDistanceSortBuilder.fromXContent(itemParser, ""));
assertEquals("sort_mode [sum] isn't supported for sorting by geo distance", e.getMessage());
}
@@ -231,9 +229,7 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase<GeoDistanc
XContentParser itemParser = createParser(JsonXContent.jsonXContent, json);
itemParser.nextToken();
- QueryParseContext context = new QueryParseContext(itemParser);
-
- GeoDistanceSortBuilder result = GeoDistanceSortBuilder.fromXContent(context, json);
+ GeoDistanceSortBuilder result = GeoDistanceSortBuilder.fromXContent(itemParser, json);
assertEquals("[-19.700583312660456, -2.8225036337971687, "
+ "31.537466906011105, -74.63590376079082, "
+ "43.71844606474042, -5.548660643398762, "
@@ -353,14 +349,13 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase<GeoDistanc
private GeoDistanceSortBuilder parse(XContentBuilder sortBuilder) throws Exception {
XContentParser parser = createParser(sortBuilder);
- QueryParseContext parseContext = new QueryParseContext(parser);
parser.nextToken();
- return GeoDistanceSortBuilder.fromXContent(parseContext, null);
+ return GeoDistanceSortBuilder.fromXContent(parser, null);
}
@Override
- protected GeoDistanceSortBuilder fromXContent(QueryParseContext context, String fieldName) throws IOException {
- return GeoDistanceSortBuilder.fromXContent(context, fieldName);
+ protected GeoDistanceSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException {
+ return GeoDistanceSortBuilder.fromXContent(parser, fieldName);
}
public void testCommonCaseIsOptimized() throws IOException {
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 1d4389c4e3..5e6d49f5e1 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/ScoreSortBuilderTests.java
@@ -23,7 +23,6 @@ package org.elasticsearch.search.sort;
import org.apache.lucene.search.SortField;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.json.JsonXContent;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.search.DocValueFormat;
import java.io.IOException;
@@ -67,8 +66,7 @@ public class ScoreSortBuilderTests extends AbstractSortTestCase<ScoreSortBuilder
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- ScoreSortBuilder scoreSort = ScoreSortBuilder.fromXContent(context, "_score");
+ ScoreSortBuilder scoreSort = ScoreSortBuilder.fromXContent(parser, "_score");
assertEquals(order, scoreSort.order());
}
@@ -80,10 +78,8 @@ public class ScoreSortBuilderTests extends AbstractSortTestCase<ScoreSortBuilder
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
-
try {
- ScoreSortBuilder.fromXContent(context, "_score");
+ ScoreSortBuilder.fromXContent(parser, "_score");
fail("adding reverse sorting option should fail with an exception");
} catch (IllegalArgumentException e) {
// all good
@@ -97,7 +93,7 @@ public class ScoreSortBuilderTests extends AbstractSortTestCase<ScoreSortBuilder
}
@Override
- protected ScoreSortBuilder fromXContent(QueryParseContext context, String fieldName) throws IOException {
- return ScoreSortBuilder.fromXContent(context, fieldName);
+ protected ScoreSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException {
+ return ScoreSortBuilder.fromXContent(parser, fieldName);
}
}
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 121085f34d..345991c265 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/ScriptSortBuilderTests.java
@@ -23,7 +23,6 @@ package org.elasticsearch.search.sort;
import org.apache.lucene.search.SortField;
import org.elasticsearch.common.xcontent.XContentParser;
import org.elasticsearch.common.xcontent.json.JsonXContent;
-import org.elasticsearch.index.query.QueryParseContext;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.DocValueFormat;
@@ -171,8 +170,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(context, null);
+ ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(parser, null);
assertEquals("doc['field_name'].value * factor", builder.script().getIdOrCode());
assertEquals(Script.DEFAULT_SCRIPT_LANG, builder.script().getLang());
assertEquals(1.1, builder.script().getParams().get("factor"));
@@ -197,8 +195,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(context, null);
+ ScriptSortBuilder builder = ScriptSortBuilder.fromXContent(parser, null);
assertEquals("doc['field_name'].value", builder.script().getIdOrCode());
assertEquals(Script.DEFAULT_SCRIPT_LANG, builder.script().getLang());
assertEquals(builder.script().getParams(), Collections.emptyMap());
@@ -217,8 +214,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null));
+ Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(parser, null));
assertEquals("[_script] unknown field [bad_field], parser not found", e.getMessage());
}
@@ -230,8 +226,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null));
+ Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(parser, null));
assertEquals("[_script] unknown field [bad_field], parser not found", e.getMessage());
}
@@ -242,8 +237,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
parser.nextToken();
parser.nextToken();
- QueryParseContext context = new QueryParseContext(parser);
- Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(context, null));
+ Exception e = expectThrows(IllegalArgumentException.class, () -> ScriptSortBuilder.fromXContent(parser, null));
assertEquals("[_script] script doesn't support values of type: START_ARRAY", e.getMessage());
}
@@ -258,7 +252,7 @@ public class ScriptSortBuilderTests extends AbstractSortTestCase<ScriptSortBuild
}
@Override
- protected ScriptSortBuilder fromXContent(QueryParseContext context, String fieldName) throws IOException {
- return ScriptSortBuilder.fromXContent(context, fieldName);
+ protected ScriptSortBuilder fromXContent(XContentParser parser, String fieldName) throws IOException {
+ return ScriptSortBuilder.fromXContent(parser, fieldName);
}
}
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 b1a6af88de..252c55d841 100644
--- a/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java
+++ b/core/src/test/java/org/elasticsearch/search/sort/SortBuilderTests.java
@@ -27,7 +27,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
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;
import org.elasticsearch.search.SearchModule;
import org.elasticsearch.test.ESTestCase;
import org.junit.AfterClass;
@@ -237,12 +236,11 @@ public class SortBuilderTests extends ESTestCase {
private List<SortBuilder<?>> parseSort(String jsonString) throws IOException {
XContentParser itemParser = createParser(JsonXContent.jsonXContent, jsonString);
- QueryParseContext context = new QueryParseContext(itemParser);
assertEquals(XContentParser.Token.START_OBJECT, itemParser.nextToken());
assertEquals(XContentParser.Token.FIELD_NAME, itemParser.nextToken());
assertEquals("sort", itemParser.currentName());
itemParser.nextToken();
- return SortBuilder.fromXContent(context);
+ return SortBuilder.fromXContent(itemParser);
}
}