|
@@ -74,6 +74,7 @@ import org.junit.Before;
|
|
|
import java.io.IOException;
|
|
|
import java.lang.reflect.Proxy;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.function.Supplier;
|
|
|
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
|
|
@@ -84,7 +85,7 @@ import static org.hamcrest.Matchers.containsString;
|
|
|
public class TemplateQueryParserTests extends ESTestCase {
|
|
|
|
|
|
private Injector injector;
|
|
|
- private QueryShardContext context;
|
|
|
+ private Supplier<QueryShardContext> contextFactory;
|
|
|
|
|
|
@Before
|
|
|
public void setup() throws IOException {
|
|
@@ -134,7 +135,8 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
ScriptService scriptService = injector.getInstance(ScriptService.class);
|
|
|
SimilarityService similarityService = new SimilarityService(idxSettings, Collections.emptyMap());
|
|
|
MapperRegistry mapperRegistry = new IndicesModule().getMapperRegistry();
|
|
|
- MapperService mapperService = new MapperService(idxSettings, analysisService, similarityService, mapperRegistry, () -> context);
|
|
|
+ MapperService mapperService = new MapperService(idxSettings, analysisService, similarityService, mapperRegistry, () ->
|
|
|
+ contextFactory.get());
|
|
|
IndicesFieldDataCache cache = new IndicesFieldDataCache(settings, new IndexFieldDataCache.Listener() {});
|
|
|
IndexFieldDataService indexFieldDataService =new IndexFieldDataService(idxSettings, cache, injector.getInstance(CircuitBreakerService.class), mapperService);
|
|
|
BitsetFilterCache bitsetFilterCache = new BitsetFilterCache(idxSettings, new BitsetFilterCache.Listener() {
|
|
@@ -149,7 +151,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
}
|
|
|
});
|
|
|
IndicesQueriesRegistry indicesQueriesRegistry = injector.getInstance(IndicesQueriesRegistry.class);
|
|
|
- context = new QueryShardContext(idxSettings, bitsetFilterCache, indexFieldDataService, mapperService,
|
|
|
+ contextFactory = () -> new QueryShardContext(idxSettings, bitsetFilterCache, indexFieldDataService, mapperService,
|
|
|
similarityService, scriptService, indicesQueriesRegistry, proxy, null, null, null);
|
|
|
}
|
|
|
|
|
@@ -164,7 +166,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
String templateString = "{" + "\"query\":{\"match_{{template}}\": {}}," + "\"params\":{\"template\":\"all\"}" + "}";
|
|
|
|
|
|
XContentParser templateSourceParser = XContentFactory.xContent(templateString).createParser(templateString);
|
|
|
- context.reset();
|
|
|
+ QueryShardContext context = contextFactory.get();
|
|
|
templateSourceParser.nextToken();
|
|
|
|
|
|
Query query = QueryBuilder.rewriteQuery(TemplateQueryBuilder.fromXContent(context.newParseContext(templateSourceParser)),
|
|
@@ -176,7 +178,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
String templateString = "{" + " \"inline\" : \"{ \\\"match_{{#use_it}}{{template}}{{/use_it}}\\\":{} }\"," + " \"params\":{"
|
|
|
+ " \"template\":\"all\"," + " \"use_it\": true" + " }" + "}";
|
|
|
XContentParser templateSourceParser = XContentFactory.xContent(templateString).createParser(templateString);
|
|
|
- context.reset();
|
|
|
+ QueryShardContext context = contextFactory.get();
|
|
|
|
|
|
Query query = QueryBuilder.rewriteQuery(TemplateQueryBuilder.fromXContent(context.newParseContext(templateSourceParser)), context).toQuery(context);
|
|
|
assertTrue("Parsing template query failed.", query instanceof MatchAllDocsQuery);
|
|
@@ -192,7 +194,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
+ " \"params\":{" + " \"size\":2" + " }\n" + "}";
|
|
|
|
|
|
XContentParser templateSourceParser = XContentFactory.xContent(templateString).createParser(templateString);
|
|
|
- context.reset();
|
|
|
+ QueryShardContext context = contextFactory.get();
|
|
|
|
|
|
try {
|
|
|
TemplateQueryBuilder.fromXContent(context.newParseContext(templateSourceParser)).rewrite(context);
|
|
@@ -206,7 +208,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
String templateString = "{ \"file\": \"storedTemplate\" ,\"params\":{\"template\":\"all\" } } ";
|
|
|
|
|
|
XContentParser templateSourceParser = XContentFactory.xContent(templateString).createParser(templateString);
|
|
|
- context.reset();
|
|
|
+ QueryShardContext context = contextFactory.get();
|
|
|
templateSourceParser.nextToken();
|
|
|
|
|
|
|
|
@@ -219,7 +221,7 @@ public class TemplateQueryParserTests extends ESTestCase {
|
|
|
String templateString = "{ \"file\": \"storedTemplate\" ,\"params\":{\"template\":\"all\" } } ";
|
|
|
|
|
|
XContentParser templateSourceParser = XContentFactory.xContent(templateString).createParser(templateString);
|
|
|
- context.reset();
|
|
|
+ QueryShardContext context = contextFactory.get();
|
|
|
templateSourceParser.nextToken();
|
|
|
try {
|
|
|
TemplateQueryBuilder.fromXContent(context.newParseContext(templateSourceParser)).toQuery(context);
|