Merge pull request #15480 from jpountz/fix/mapping_explicit_defaults

Make mapping serialization more robust.
This commit is contained in:
Adrien Grand 2015-12-17 11:23:27 +01:00
commit 6ccc759691
26 changed files with 28 additions and 28 deletions

View File

@ -64,10 +64,10 @@ public abstract class FieldMapper extends Mapper implements Cloneable {
protected final MultiFields.Builder multiFieldsBuilder;
protected CopyTo copyTo;
protected Builder(String name, MappedFieldType fieldType) {
protected Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) {
super(name);
this.fieldType = fieldType.clone();
this.defaultFieldType = fieldType.clone();
this.defaultFieldType = defaultFieldType.clone();
this.defaultOptions = fieldType.indexOptions(); // we have to store it the fieldType is mutable
multiFieldsBuilder = new MultiFields.Builder();
}

View File

@ -51,8 +51,8 @@ public abstract class MetadataFieldMapper extends FieldMapper {
}
public abstract static class Builder<T extends Builder, Y extends MetadataFieldMapper> extends FieldMapper.Builder<T, Y> {
public Builder(String name, MappedFieldType fieldType) {
super(name, fieldType);
public Builder(String name, MappedFieldType fieldType, MappedFieldType defaultFieldType) {
super(name, fieldType, defaultFieldType);
}
}

View File

@ -72,7 +72,7 @@ public class BinaryFieldMapper extends FieldMapper {
public static class Builder extends FieldMapper.Builder<Builder, BinaryFieldMapper> {
public Builder(String name) {
super(name, Defaults.FIELD_TYPE);
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
builder = this;
}

View File

@ -72,7 +72,7 @@ public class BooleanFieldMapper extends FieldMapper {
public static class Builder extends FieldMapper.Builder<Builder, BooleanFieldMapper> {
public Builder(String name) {
super(name, Defaults.FIELD_TYPE);
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
this.builder = this;
}

View File

@ -356,7 +356,7 @@ public class CompletionFieldMapper extends FieldMapper implements ArrayValueMapp
* @param name of the completion field to build
*/
public Builder(String name) {
super(name, new CompletionFieldType());
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
builder = this;
}

View File

@ -66,7 +66,7 @@ public abstract class NumberFieldMapper extends FieldMapper implements AllFieldM
private Boolean coerce;
public Builder(String name, MappedFieldType fieldType, int defaultPrecisionStep) {
super(name, fieldType);
super(name, fieldType, fieldType);
this.fieldType.setNumericPrecisionStep(defaultPrecisionStep);
}

View File

@ -98,7 +98,7 @@ public class StringFieldMapper extends FieldMapper implements AllFieldMapper.Inc
protected int ignoreAbove = Defaults.IGNORE_ABOVE;
public Builder(String name) {
super(name, Defaults.FIELD_TYPE);
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
builder = this;
}

View File

@ -94,7 +94,7 @@ public abstract class BaseGeoPointFieldMapper extends FieldMapper implements Arr
protected Boolean ignoreMalformed;
public Builder(String name, GeoPointFieldType fieldType) {
super(name, fieldType);
super(name, fieldType, fieldType);
}
@Override

View File

@ -120,7 +120,7 @@ public class GeoShapeFieldMapper extends FieldMapper {
private Boolean coerce;
public Builder(String name) {
super(name, Defaults.FIELD_TYPE);
super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
}
@Override

View File

@ -101,7 +101,7 @@ public class AllFieldMapper extends MetadataFieldMapper {
private EnabledAttributeMapper enabled = Defaults.ENABLED;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
builder = this;
indexName = Defaults.INDEX_NAME;
}

View File

@ -78,7 +78,7 @@ public class FieldNamesFieldMapper extends MetadataFieldMapper {
private boolean enabled = Defaults.ENABLED;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
indexName = Defaults.NAME;
}

View File

@ -89,7 +89,7 @@ public class IdFieldMapper extends MetadataFieldMapper {
private String path = Defaults.PATH;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
indexName = Defaults.NAME;
}

View File

@ -79,7 +79,7 @@ public class IndexFieldMapper extends MetadataFieldMapper {
private EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
indexName = Defaults.NAME;
}

View File

@ -97,7 +97,7 @@ public class ParentFieldMapper extends MetadataFieldMapper {
private final MappedFieldType childJoinFieldType = Defaults.JOIN_FIELD_TYPE.clone();
public Builder(String documentType) {
super(Defaults.NAME, Defaults.FIELD_TYPE);
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
this.indexName = name;
this.documentType = documentType;
builder = this;

View File

@ -77,7 +77,7 @@ public class RoutingFieldMapper extends MetadataFieldMapper {
private String path = Defaults.PATH;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
}
public Builder required(boolean required) {

View File

@ -88,7 +88,7 @@ public class SourceFieldMapper extends MetadataFieldMapper {
private String[] excludes = null;
public Builder() {
super(Defaults.NAME, Defaults.FIELD_TYPE);
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
}
public Builder enabled(boolean enabled) {

View File

@ -78,7 +78,7 @@ public class TTLFieldMapper extends MetadataFieldMapper {
private long defaultTTL = Defaults.DEFAULT;
public Builder() {
super(Defaults.NAME, Defaults.TTL_FIELD_TYPE);
super(Defaults.NAME, Defaults.TTL_FIELD_TYPE, Defaults.FIELD_TYPE);
}
public Builder enabled(EnabledAttributeMapper enabled) {

View File

@ -96,7 +96,7 @@ public class TimestampFieldMapper extends MetadataFieldMapper {
private Boolean ignoreMissing = null;
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
if (existing != null) {
// if there is an existing type, always use that store value (only matters for < 2.0)
explicitStore = true;

View File

@ -80,7 +80,7 @@ public class TypeFieldMapper extends MetadataFieldMapper {
public static class Builder extends MetadataFieldMapper.Builder<Builder, TypeFieldMapper> {
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
indexName = Defaults.NAME;
}

View File

@ -78,7 +78,7 @@ public class UidFieldMapper extends MetadataFieldMapper {
public static class Builder extends MetadataFieldMapper.Builder<Builder, UidFieldMapper> {
public Builder(MappedFieldType existing) {
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing);
super(Defaults.NAME, existing == null ? Defaults.FIELD_TYPE : existing, Defaults.FIELD_TYPE);
indexName = Defaults.NAME;
}

View File

@ -61,7 +61,7 @@ public class VersionFieldMapper extends MetadataFieldMapper {
public static class Builder extends MetadataFieldMapper.Builder<Builder, VersionFieldMapper> {
public Builder() {
super(Defaults.NAME, Defaults.FIELD_TYPE);
super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE);
}
@Override

View File

@ -81,7 +81,7 @@ public class ExternalMapper extends FieldMapper {
private String mapperName;
public Builder(String name, String generatedValue, String mapperName) {
super(name, new ExternalFieldType());
super(name, new ExternalFieldType(), new ExternalFieldType());
this.builder = this;
this.stringBuilder = stringField(name).store(false);
this.generatedValue = generatedValue;

View File

@ -98,7 +98,7 @@ public class ExternalMetadataMapper extends MetadataFieldMapper {
public static class Builder extends MetadataFieldMapper.Builder<Builder, ExternalMetadataMapper> {
protected Builder() {
super(CONTENT_TYPE, FIELD_TYPE);
super(CONTENT_TYPE, FIELD_TYPE, FIELD_TYPE);
}
@Override

View File

@ -204,7 +204,7 @@ public class FieldNamesFieldMapperTests extends ESSingleNodeTestCase {
@Override
public Builder<?, ?> parse(String name, Map<String, Object> node, ParserContext parserContext) throws MapperParsingException {
return new MetadataFieldMapper.Builder<Builder, DummyMetadataFieldMapper>("_dummy", FIELD_TYPE) {
return new MetadataFieldMapper.Builder<Builder, DummyMetadataFieldMapper>("_dummy", FIELD_TYPE, FIELD_TYPE) {
@Override
public DummyMetadataFieldMapper build(BuilderContext context) {
return new DummyMetadataFieldMapper(context.indexSettings());

View File

@ -131,7 +131,7 @@ public class AttachmentMapper extends FieldMapper {
private Mapper.Builder languageBuilder = stringField(FieldNames.LANGUAGE);
public Builder(String name) {
super(name, new AttachmentFieldType());
super(name, new AttachmentFieldType(), new AttachmentFieldType());
this.builder = this;
this.contentBuilder = stringField(FieldNames.CONTENT);
}

View File

@ -66,7 +66,7 @@ public class SizeFieldMapper extends MetadataFieldMapper {
protected EnabledAttributeMapper enabledState = EnabledAttributeMapper.UNSET_DISABLED;
public Builder(MappedFieldType existing) {
super(NAME, existing == null ? Defaults.SIZE_FIELD_TYPE : existing);
super(NAME, existing == null ? Defaults.SIZE_FIELD_TYPE : existing, Defaults.SIZE_FIELD_TYPE);
builder = this;
}