From a9859145dbf2f956b5e727f664ce255f107a59ff Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Thu, 5 Nov 2020 12:44:14 +0000 Subject: [PATCH 1/2] MetadataFieldMapper.Builder.build() doesn't need ContentPath --- .../index/mapper/size/SizeFieldMapper.java | 3 +- .../index/mapper/DocCountFieldMapper.java | 22 +------------ .../index/mapper/FieldNamesFieldMapper.java | 2 +- .../index/mapper/MetadataFieldMapper.java | 6 +++- .../index/mapper/RoutingFieldMapper.java | 2 +- .../index/mapper/SourceFieldMapper.java | 2 +- .../MetadataIndexTemplateServiceTests.java | 3 +- .../index/mapper/ExternalMetadataMapper.java | 32 ++----------------- .../mapper/MockMetadataMapperPlugin.java | 29 +---------------- .../DataStreamTimestampFieldMapper.java | 3 +- 10 files changed, 15 insertions(+), 89 deletions(-) diff --git a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java index f42d89ada7c72..bfa92565e8318 100644 --- a/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java +++ b/plugins/mapper-size/src/main/java/org/elasticsearch/index/mapper/size/SizeFieldMapper.java @@ -20,7 +20,6 @@ package org.elasticsearch.index.mapper.size; import org.elasticsearch.common.Explicit; -import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MetadataFieldMapper; @@ -53,7 +52,7 @@ protected List> getParameters() { } @Override - public SizeFieldMapper build(ContentPath contentPath) { + public SizeFieldMapper build() { return new SizeFieldMapper(enabled.getValue(), new NumberFieldType(NAME, NumberType.INTEGER)); } } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocCountFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/DocCountFieldMapper.java index 17d0f49b4edd5..4b8889d62d464 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocCountFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocCountFieldMapper.java @@ -30,7 +30,6 @@ import java.io.IOException; import java.util.Collections; -import java.util.List; /** Mapper for the doc_count field. */ public class DocCountFieldMapper extends MetadataFieldMapper { @@ -38,26 +37,7 @@ public class DocCountFieldMapper extends MetadataFieldMapper { public static final String NAME = "_doc_count"; public static final String CONTENT_TYPE = "_doc_count"; - public static final TypeParser PARSER = new ConfigurableTypeParser( - c -> new DocCountFieldMapper(), - c -> new DocCountFieldMapper.Builder()); - - static class Builder extends MetadataFieldMapper.Builder { - - Builder() { - super(NAME); - } - - @Override - protected List> getParameters() { - return Collections.emptyList(); - } - - @Override - public DocCountFieldMapper build(ContentPath contentPath) { - return new DocCountFieldMapper(); - } - } + public static final TypeParser PARSER = new FixedTypeParser(c -> new DocCountFieldMapper()); public static final class DocCountFieldType extends MappedFieldType { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java index eb75022c606e4..834976829a2e2 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldNamesFieldMapper.java @@ -93,7 +93,7 @@ protected List> getParameters() { } @Override - public FieldNamesFieldMapper build(ContentPath contentPath) { + public FieldNamesFieldMapper build() { if (enabled.getValue().explicit()) { if (indexVersionCreated.onOrAfter(Version.V_8_0_0)) { throw new MapperParsingException("The `enabled` setting for the `_field_names` field has been deprecated and " diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java index 0bc6f83034729..624bce9586c68 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MetadataFieldMapper.java @@ -129,7 +129,11 @@ boolean isConfigured() { } @Override - public abstract MetadataFieldMapper build(ContentPath contentPath); + public final MetadataFieldMapper build(ContentPath path) { + return build(); + } + + public abstract MetadataFieldMapper build(); } protected MetadataFieldMapper(MappedFieldType mappedFieldType) { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java index 110fb0d668020..94db5d6fe5080 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/RoutingFieldMapper.java @@ -71,7 +71,7 @@ protected List> getParameters() { } @Override - public RoutingFieldMapper build(ContentPath contentPath) { + public RoutingFieldMapper build() { return new RoutingFieldMapper(required.getValue()); } } diff --git a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java index 0689458b99d63..1095610bfb25b 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java @@ -91,7 +91,7 @@ protected List> getParameters() { } @Override - public SourceFieldMapper build(ContentPath contentPath) { + public SourceFieldMapper build() { return new SourceFieldMapper(enabled.getValue(), includes.getValue().toArray(String[]::new), excludes.getValue().toArray(String[]::new)); diff --git a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateServiceTests.java b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateServiceTests.java index 24511f4d2b4b3..090664d6b0320 100644 --- a/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateServiceTests.java +++ b/server/src/test/java/org/elasticsearch/cluster/metadata/MetadataIndexTemplateServiceTests.java @@ -41,7 +41,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.env.Environment; import org.elasticsearch.index.Index; -import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperParsingException; @@ -1575,7 +1574,7 @@ protected List> getParameters() { } @Override - public MetadataFieldMapper build(ContentPath contentPath) { + public MetadataFieldMapper build() { return new MetadataTimestampFieldMapper(enabled.getValue()); } } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java index 2d0fa0911fce5..e6a701ec8bcb4 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/ExternalMetadataMapper.java @@ -22,11 +22,6 @@ import org.apache.lucene.document.Field.Store; import org.apache.lucene.document.StringField; -import java.io.IOException; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; - public class ExternalMetadataMapper extends MetadataFieldMapper { static final String CONTENT_TYPE = "_external_root"; @@ -37,39 +32,16 @@ protected ExternalMetadataMapper() { super(new BooleanFieldMapper.BooleanFieldType(FIELD_NAME)); } - @Override - public Iterator iterator() { - return Collections.emptyIterator(); - } - @Override protected String contentType() { return CONTENT_TYPE; } @Override - public void postParse(ParseContext context) throws IOException { + public void postParse(ParseContext context) { context.doc().add(new StringField(FIELD_NAME, FIELD_VALUE, Store.YES)); } - public static class Builder extends MetadataFieldMapper.Builder { - - protected Builder() { - super(FIELD_NAME); - } - - @Override - protected List> getParameters() { - return Collections.emptyList(); - } - - @Override - public ExternalMetadataMapper build(ContentPath contentPath) { - return new ExternalMetadataMapper(); - } - - } - - public static final TypeParser PARSER = new ConfigurableTypeParser(c -> new ExternalMetadataMapper(), c -> new Builder()); + public static final TypeParser PARSER = new FixedTypeParser(c -> new ExternalMetadataMapper()); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/MockMetadataMapperPlugin.java b/server/src/test/java/org/elasticsearch/index/mapper/MockMetadataMapperPlugin.java index 56a88b0cb8b59..6ee97c0bebf82 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/MockMetadataMapperPlugin.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/MockMetadataMapperPlugin.java @@ -27,8 +27,6 @@ import java.io.IOException; import java.util.Collections; -import java.util.Iterator; -import java.util.List; import java.util.Map; /** @@ -58,37 +56,12 @@ protected void parseCreateField(ParseContext context) throws IOException { } } - @Override - public Iterator iterator() { - return Collections.emptyIterator(); - } - @Override protected String contentType() { return CONTENT_TYPE; } - public static class Builder extends MetadataFieldMapper.Builder { - - protected Builder() { - super(FIELD_NAME); - } - - @Override - protected List> getParameters() { - return Collections.emptyList(); - } - - @Override - public MockMetadataMapper build(ContentPath contentPath) { - return new MockMetadataMapper(); - } - } - - public static final TypeParser PARSER = new ConfigurableTypeParser( - c -> new MockMetadataMapper(), - c -> new MockMetadataMapper.Builder()) { - }; + public static final TypeParser PARSER = new FixedTypeParser(c -> new MockMetadataMapper()); } @Override diff --git a/x-pack/plugin/data-streams/src/main/java/org/elasticsearch/xpack/datastreams/mapper/DataStreamTimestampFieldMapper.java b/x-pack/plugin/data-streams/src/main/java/org/elasticsearch/xpack/datastreams/mapper/DataStreamTimestampFieldMapper.java index 400ffe4628b46..4c105ab8a2819 100644 --- a/x-pack/plugin/data-streams/src/main/java/org/elasticsearch/xpack/datastreams/mapper/DataStreamTimestampFieldMapper.java +++ b/x-pack/plugin/data-streams/src/main/java/org/elasticsearch/xpack/datastreams/mapper/DataStreamTimestampFieldMapper.java @@ -13,7 +13,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentType; -import org.elasticsearch.index.mapper.ContentPath; import org.elasticsearch.index.mapper.DateFieldMapper; import org.elasticsearch.index.mapper.FieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; @@ -88,7 +87,7 @@ protected List> getParameters() { } @Override - public MetadataFieldMapper build(ContentPath contentPath) { + public MetadataFieldMapper build() { return new DataStreamTimestampFieldMapper(new TimestampFieldType(), enabled.getValue()); } } From c46ce411b188f9655f2459521c48f30a161db31a Mon Sep 17 00:00:00 2001 From: Alan Woodward Date: Thu, 5 Nov 2020 13:23:58 +0000 Subject: [PATCH 2/2] test --- .../index/mapper/ExternalValuesMapperIntegrationIT.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java index 1d06fa4748da2..8b1a9fad46ac7 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/mapper/ExternalValuesMapperIntegrationIT.java @@ -91,8 +91,6 @@ public void testHighlightingOnCustomString() throws Exception { public void testExternalValues() throws Exception { prepareCreate("test-idx").setMapping( XContentFactory.jsonBuilder().startObject().startObject("_doc") - .startObject(ExternalMetadataMapper.CONTENT_TYPE) - .endObject() .startObject("properties") .startObject("field").field("type", ExternalMapperPlugin.EXTERNAL).endObject() .endObject()