Skip to content

Commit 4378c55

Browse files
authored
Remove DynamicRuntimeFieldsBuilder (#69350)
The extension point that used to allow to plug in the dynamic:runtime behaviour has been removed. The corresponding abstraction (interface + x-pack impl) can now be removed.
1 parent 195760d commit 4378c55

File tree

13 files changed

+24
-136
lines changed

13 files changed

+24
-136
lines changed

modules/percolator/src/test/java/org/elasticsearch/percolator/CandidateQueryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1109,7 +1109,7 @@ private void duelRun(PercolateQuery.QueryStore queryStore, MemoryIndex memoryInd
11091109

11101110
private void addQuery(Query query, List<ParseContext.Document> docs) {
11111111
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(
1112-
documentMapper.mappers(), null, null, null, null);
1112+
documentMapper.mappers(), null, null, null);
11131113
fieldMapper.processQuery(query, parseContext);
11141114
ParseContext.Document queryDocument = parseContext.doc();
11151115
// Add to string representation of the query to make debugging easier:

modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@
5959
import org.elasticsearch.index.query.DisMaxQueryBuilder;
6060
import org.elasticsearch.index.query.MatchAllQueryBuilder;
6161
import org.elasticsearch.index.query.QueryBuilder;
62-
import org.elasticsearch.index.query.SearchExecutionContext;
6362
import org.elasticsearch.index.query.QueryShardException;
6463
import org.elasticsearch.index.query.RangeQueryBuilder;
6564
import org.elasticsearch.index.query.Rewriteable;
6665
import org.elasticsearch.index.query.ScriptQueryBuilder;
66+
import org.elasticsearch.index.query.SearchExecutionContext;
6767
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
6868
import org.elasticsearch.index.query.functionscore.RandomScoreFunctionBuilder;
6969
import org.elasticsearch.index.query.functionscore.ScriptScoreFunctionBuilder;
@@ -170,8 +170,7 @@ public void testExtractTerms() throws Exception {
170170

171171
DocumentMapper documentMapper = mapperService.documentMapper("doc");
172172
PercolatorFieldMapper fieldMapper = (PercolatorFieldMapper) documentMapper.mappers().getMapper(fieldName);
173-
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(),
174-
null, null, null, null);
173+
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
175174
fieldMapper.processQuery(bq.build(), parseContext);
176175
ParseContext.Document document = parseContext.doc();
177176

@@ -192,7 +191,7 @@ public void testExtractTerms() throws Exception {
192191
bq.add(termQuery1, Occur.MUST);
193192
bq.add(termQuery2, Occur.MUST);
194193

195-
parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null, null);
194+
parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
196195
fieldMapper.processQuery(bq.build(), parseContext);
197196
document = parseContext.doc();
198197

@@ -221,8 +220,7 @@ public void testExtractRanges() throws Exception {
221220

222221
DocumentMapper documentMapper = mapperService.documentMapper("doc");
223222
PercolatorFieldMapper fieldMapper = (PercolatorFieldMapper) documentMapper.mappers().getMapper(fieldName);
224-
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(
225-
documentMapper.mappers(), null, null, null, null);
223+
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
226224
fieldMapper.processQuery(bq.build(), parseContext);
227225
ParseContext.Document document = parseContext.doc();
228226

@@ -247,7 +245,7 @@ public void testExtractRanges() throws Exception {
247245
.rangeQuery(15, 20, true, true, null, null, null, context);
248246
bq.add(rangeQuery2, Occur.MUST);
249247

250-
parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null, null);
248+
parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
251249
fieldMapper.processQuery(bq.build(), parseContext);
252250
document = parseContext.doc();
253251

@@ -270,8 +268,7 @@ public void testExtractTermsAndRanges_failed() throws Exception {
270268
TermRangeQuery query = new TermRangeQuery("field1", new BytesRef("a"), new BytesRef("z"), true, true);
271269
DocumentMapper documentMapper = mapperService.documentMapper("doc");
272270
PercolatorFieldMapper fieldMapper = (PercolatorFieldMapper) documentMapper.mappers().getMapper(fieldName);
273-
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(),
274-
null, null, null, null);
271+
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
275272
fieldMapper.processQuery(query, parseContext);
276273
ParseContext.Document document = parseContext.doc();
277274

@@ -285,8 +282,7 @@ public void testExtractTermsAndRanges_partial() throws Exception {
285282
PhraseQuery phraseQuery = new PhraseQuery("field", "term");
286283
DocumentMapper documentMapper = mapperService.documentMapper("doc");
287284
PercolatorFieldMapper fieldMapper = (PercolatorFieldMapper) documentMapper.mappers().getMapper(fieldName);
288-
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(),
289-
null, null, null, null);
285+
ParseContext.InternalParseContext parseContext = new ParseContext.InternalParseContext(documentMapper.mappers(), null, null, null);
290286
fieldMapper.processQuery(phraseQuery, parseContext);
291287
ParseContext.Document document = parseContext.doc();
292288

server/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,11 @@ final class DocumentParser {
3636

3737
private final NamedXContentRegistry xContentRegistry;
3838
private final Function<DateFormatter, Mapper.TypeParser.ParserContext> dateParserContext;
39-
private final DynamicRuntimeFieldsBuilder dynamicRuntimeFieldsBuilder;
4039

4140
DocumentParser(NamedXContentRegistry xContentRegistry,
4241
Function<DateFormatter, Mapper.TypeParser.ParserContext> dateParserContext) {
4342
this.xContentRegistry = xContentRegistry;
4443
this.dateParserContext = dateParserContext;
45-
this.dynamicRuntimeFieldsBuilder = org.elasticsearch.runtimefields.mapper.DynamicRuntimeFieldsBuilder.INSTANCE;
4644
}
4745

4846
ParsedDocument parseDocument(SourceToParse source,
@@ -61,7 +59,6 @@ ParsedDocument parseDocument(SourceToParse source,
6159
context = new ParseContext.InternalParseContext(
6260
mappingLookup,
6361
dateParserContext,
64-
dynamicRuntimeFieldsBuilder,
6562
source,
6663
parser);
6764
validateStart(parser);

server/src/main/java/org/elasticsearch/index/mapper/DynamicFieldsBuilder.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import org.elasticsearch.common.time.DateFormatter;
1616
import org.elasticsearch.common.xcontent.XContentParser;
1717
import org.elasticsearch.index.mapper.ObjectMapper.Dynamic;
18+
import org.elasticsearch.runtimefields.mapper.BooleanScriptFieldType;
19+
import org.elasticsearch.runtimefields.mapper.DateScriptFieldType;
20+
import org.elasticsearch.runtimefields.mapper.DoubleScriptFieldType;
21+
import org.elasticsearch.runtimefields.mapper.KeywordScriptFieldType;
22+
import org.elasticsearch.runtimefields.mapper.LongScriptFieldType;
1823

1924
import java.io.IOException;
2025
import java.time.format.DateTimeParseException;
@@ -314,36 +319,31 @@ static void createDynamicField(RuntimeFieldType runtimeFieldType, ParseContext c
314319
@Override
315320
public void newDynamicStringField(ParseContext context, String name) {
316321
String fullName = context.path().pathAsText(name);
317-
RuntimeFieldType runtimeFieldType = context.getDynamicRuntimeFieldsBuilder().newDynamicStringField(fullName);
318-
createDynamicField(runtimeFieldType, context);
322+
createDynamicField(new KeywordScriptFieldType(fullName), context);
319323
}
320324

321325
@Override
322326
public void newDynamicLongField(ParseContext context, String name) {
323327
String fullName = context.path().pathAsText(name);
324-
RuntimeFieldType runtimeFieldType = context.getDynamicRuntimeFieldsBuilder().newDynamicLongField(fullName);
325-
createDynamicField(runtimeFieldType, context);
328+
createDynamicField(new LongScriptFieldType(fullName), context);
326329
}
327330

328331
@Override
329332
public void newDynamicDoubleField(ParseContext context, String name) {
330333
String fullName = context.path().pathAsText(name);
331-
RuntimeFieldType runtimeFieldType = context.getDynamicRuntimeFieldsBuilder().newDynamicDoubleField(fullName);
332-
createDynamicField(runtimeFieldType, context);
334+
createDynamicField(new DoubleScriptFieldType(fullName), context);
333335
}
334336

335337
@Override
336338
public void newDynamicBooleanField(ParseContext context, String name) {
337339
String fullName = context.path().pathAsText(name);
338-
RuntimeFieldType runtimeFieldType = context.getDynamicRuntimeFieldsBuilder().newDynamicBooleanField(fullName);
339-
createDynamicField(runtimeFieldType, context);
340+
createDynamicField(new BooleanScriptFieldType(fullName), context);
340341
}
341342

342343
@Override
343344
public void newDynamicDateField(ParseContext context, String name, DateFormatter dateFormatter) {
344345
String fullName = context.path().pathAsText(name);
345-
RuntimeFieldType runtimeFieldType = context.getDynamicRuntimeFieldsBuilder().newDynamicDateField(fullName, dateFormatter);
346-
createDynamicField(runtimeFieldType, context);
346+
createDynamicField(new DateScriptFieldType(fullName, dateFormatter), context);
347347
}
348348
}
349349
}

server/src/main/java/org/elasticsearch/index/mapper/DynamicRuntimeFieldsBuilder.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

server/src/main/java/org/elasticsearch/index/mapper/ParseContext.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,6 @@ public List<RuntimeFieldType> getDynamicRuntimeFields() {
289289
return in.getDynamicRuntimeFields();
290290
}
291291

292-
@Override
293-
public DynamicRuntimeFieldsBuilder getDynamicRuntimeFieldsBuilder() {
294-
return in.getDynamicRuntimeFieldsBuilder();
295-
}
296-
297292
@Override
298293
public void addIgnoredField(String field) {
299294
in.addIgnoredField(field);
@@ -317,7 +312,6 @@ public static class InternalParseContext extends ParseContext {
317312
private final List<Mapper> dynamicMappers = new ArrayList<>();
318313
private final Map<String, ObjectMapper> dynamicObjectMappers = new HashMap<>();
319314
private final List<RuntimeFieldType> dynamicRuntimeFields = new ArrayList<>();
320-
private final DynamicRuntimeFieldsBuilder dynamicRuntimeFieldsBuilder;
321315
private final Set<String> ignoredFields = new HashSet<>();
322316
private Field version;
323317
private SeqNoFieldMapper.SequenceIDFields seqID;
@@ -326,12 +320,10 @@ public static class InternalParseContext extends ParseContext {
326320

327321
public InternalParseContext(MappingLookup mappingLookup,
328322
Function<DateFormatter, Mapper.TypeParser.ParserContext> parserContextFunction,
329-
DynamicRuntimeFieldsBuilder dynamicRuntimeFieldsBuilder,
330323
SourceToParse source,
331324
XContentParser parser) {
332325
this.mappingLookup = mappingLookup;
333326
this.parserContextFunction = parserContextFunction;
334-
this.dynamicRuntimeFieldsBuilder = dynamicRuntimeFieldsBuilder;
335327
this.parser = parser;
336328
this.document = new Document();
337329
this.documents.add(document);
@@ -461,11 +453,6 @@ public List<RuntimeFieldType> getDynamicRuntimeFields() {
461453
return Collections.unmodifiableList(dynamicRuntimeFields);
462454
}
463455

464-
@Override
465-
public DynamicRuntimeFieldsBuilder getDynamicRuntimeFieldsBuilder() {
466-
return dynamicRuntimeFieldsBuilder;
467-
}
468-
469456
@Override
470457
public Iterable<Document> nonRootDocuments() {
471458
if (docsReversed) {
@@ -698,9 +685,4 @@ public final <T> T parseExternalValue(Class<T> clazz) {
698685
* Get dynamic runtime fields created while parsing.
699686
*/
700687
public abstract List<RuntimeFieldType> getDynamicRuntimeFields();
701-
702-
/**
703-
* Retrieve the builder for dynamically created runtime fields
704-
*/
705-
public abstract DynamicRuntimeFieldsBuilder getDynamicRuntimeFieldsBuilder();
706688
}

server/src/main/java/org/elasticsearch/runtimefields/mapper/BooleanScriptFieldType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private BooleanScriptFieldType(String name, BooleanFieldScript.Factory scriptFac
5151
super(name, scriptFactory::newFactory, builder);
5252
}
5353

54-
BooleanScriptFieldType(String name) {
54+
public BooleanScriptFieldType(String name) {
5555
this(name, BooleanFieldScript.PARSE_FROM_SOURCE, null, Collections.emptyMap(), (builder, includeDefaults) -> {});
5656
}
5757

server/src/main/java/org/elasticsearch/runtimefields/mapper/DateScriptFieldType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private DateScriptFieldType(String name, DateFieldScript.Factory scriptFactory,
100100
this.dateTimeFormatter = dateTimeFormatter;
101101
}
102102

103-
DateScriptFieldType(String name, DateFormatter dateTimeFormatter) {
103+
public DateScriptFieldType(String name, DateFormatter dateTimeFormatter) {
104104
this(name, DateFieldScript.PARSE_FROM_SOURCE, dateTimeFormatter, null, Collections.emptyMap(), (builder, includeDefaults) -> {
105105
if (DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.pattern().equals(dateTimeFormatter.pattern()) == false) {
106106
builder.field("format", dateTimeFormatter.pattern());

server/src/main/java/org/elasticsearch/runtimefields/mapper/DoubleScriptFieldType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private DoubleScriptFieldType(String name, DoubleFieldScript.Factory scriptFacto
5151
super(name, scriptFactory::newFactory, builder);
5252
}
5353

54-
DoubleScriptFieldType(String name) {
54+
public DoubleScriptFieldType(String name) {
5555
this(name, DoubleFieldScript.PARSE_FROM_SOURCE, null, Collections.emptyMap(), (builder, includeDefaults) -> {});
5656
}
5757

server/src/main/java/org/elasticsearch/runtimefields/mapper/DynamicRuntimeFieldsBuilder.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

server/src/main/java/org/elasticsearch/runtimefields/mapper/KeywordScriptFieldType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ protected AbstractScriptFieldType<?> buildFieldType() {
5555
}
5656
});
5757

58-
KeywordScriptFieldType(String name) {
58+
public KeywordScriptFieldType(String name) {
5959
this(name, StringFieldScript.PARSE_FROM_SOURCE, null, Collections.emptyMap(), (builder, includeDefaults) -> {});
6060
}
6161

server/src/main/java/org/elasticsearch/runtimefields/mapper/LongScriptFieldType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ protected AbstractScriptFieldType<?> buildFieldType() {
4747
}
4848
});
4949

50-
LongScriptFieldType(String name) {
50+
public LongScriptFieldType(String name) {
5151
this(name, LongFieldScript.PARSE_FROM_SOURCE, null, Collections.emptyMap(), (builder, includeDefaults) -> {});
5252
}
5353

server/src/test/java/org/elasticsearch/index/mapper/DocumentParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ MapperService createMapperService() throws Exception {
607607
// creates an object mapper, which is about 100x harder than it should be....
608608
ObjectMapper createObjectMapper(MapperService mapperService, String name) {
609609
DocumentMapper docMapper = mapperService.documentMapper();
610-
ParseContext context = new ParseContext.InternalParseContext(docMapper.mappers(), null, null, null, null);
610+
ParseContext context = new ParseContext.InternalParseContext(docMapper.mappers(), null, null, null);
611611
String[] nameParts = name.split("\\.");
612612
for (int i = 0; i < nameParts.length - 1; ++i) {
613613
context.path().add(nameParts[i]);

0 commit comments

Comments
 (0)