diff options
author | Arne H Juul <arnej@yahooinc.com> | 2022-04-01 11:51:29 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2022-04-01 11:51:29 +0000 |
commit | 430155207f7de4ee54456901803ce8ab1e65209c (patch) | |
tree | 2aa2a614ae9527b782f348d310d23518e3814e92 /config-model | |
parent | 1bb3dd192f4bcb91e710fe19ca54b2b8935ffb83 (diff) |
remove old document manager config production
Diffstat (limited to 'config-model')
8 files changed, 327 insertions, 568 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java index 704921a3bb7..f013b480ca6 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java +++ b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java @@ -162,7 +162,6 @@ public class ApplicationConfigProducerRoot extends AbstractConfigProducer<Abstra public void getConfig(DocumentmanagerConfig.Builder builder) { new DocumentManager() .useV8GeoPositions(this.useV8GeoPositions) - .useV8DocManagerCfg(this.useV8DocManagerCfg) .produce(documentModel, builder); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java index bcdc9e656e1..cb6f01d2406 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java @@ -39,7 +39,6 @@ public class Deriver { public static DocumentmanagerConfig.Builder getDocumentManagerConfig(List<String> schemas, boolean useV8DocManagerCfg) { return new DocumentManager() - .useV8DocManagerCfg(useV8DocManagerCfg) .produce(getSchemaBuilder(schemas).getModel(), new DocumentmanagerConfig.Builder()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java index 8867ab63e2b..941116bfe21 100644 --- a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java +++ b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java @@ -33,182 +33,18 @@ import java.util.Set; public class DocumentManager { private boolean useV8GeoPositions = false; - private boolean useV8DocManagerCfg = true; public DocumentManager useV8GeoPositions(boolean value) { this.useV8GeoPositions = value; return this; } - public DocumentManager useV8DocManagerCfg(boolean value) { - this.useV8DocManagerCfg = value; - return this; - } public DocumentmanagerConfig.Builder produce(DocumentModel model, DocumentmanagerConfig.Builder documentConfigBuilder) { - if (useV8DocManagerCfg) { - return produceDocTypes(model, documentConfigBuilder); - } else { - return produceDataTypes(model, documentConfigBuilder); - } + return produceDocTypes(model, documentConfigBuilder); } - public DocumentmanagerConfig.Builder produceDataTypes(DocumentModel model, - DocumentmanagerConfig.Builder documentConfigBuilder) - { - documentConfigBuilder.enablecompression(false); - documentConfigBuilder.usev8geopositions(this.useV8GeoPositions); - Set<DataType> handled = new HashSet<>(); - for(NewDocumentType documentType : model.getDocumentManager().getTypes()) { - buildConfig(documentType, documentConfigBuilder, handled); - buildConfig(documentType.getAnnotations(), documentConfigBuilder); - if (documentType != VespaDocumentType.INSTANCE && ! handled.contains(documentType)) { - handled.add(documentType); - DocumentmanagerConfig.Datatype.Builder dataTypeBuilder = new DocumentmanagerConfig.Datatype.Builder(); - documentConfigBuilder.datatype(dataTypeBuilder); - buildConfig(documentType, dataTypeBuilder); - } - } - return documentConfigBuilder; - } - - @SuppressWarnings("deprecation") - private void buildConfig(DataTypeCollection type, DocumentmanagerConfig.Builder documentConfigBuilder, Set<DataType> built) { - List<DataType> todo = new ArrayList<>(type.getTypes()); - Collections.sort(todo, (a, b) -> (a.getName().equals(b.getName()) - ? a.getId() - b.getId() - : a.getName().compareTo(b.getName()))); - for (DataType dataType : todo) { - if (built.contains(dataType)) continue; - built.add(dataType); - if (dataType instanceof TemporaryStructuredDataType) { - throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName()); - } - if (dataType instanceof TemporaryUnknownType) { - throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName()); - } - if (dataType instanceof OwnedTemporaryType) { - throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName()); - } - if ((dataType.getId() < 0) || (dataType.getId()> DataType.lastPredefinedDataTypeId())) { - Datatype.Builder dataTypeBuilder = new Datatype.Builder(); - documentConfigBuilder.datatype(dataTypeBuilder); - buildConfig(dataType, dataTypeBuilder); - } - } - } - - private void buildConfig(AnnotationType type, DocumentmanagerConfig.Annotationtype.Builder atb) { - atb. - id(type.getId()). - name(type.getName()); - if (type.getDataType() != null) { - atb.datatype(type.getDataType().getId()); - } - if ( ! type.getInheritedTypes().isEmpty()) { - for (AnnotationType inherited : type.getInheritedTypes()) { - atb.inherits(new DocumentmanagerConfig.Annotationtype.Inherits.Builder().id(inherited.getId())); - } - } - } - - private void buildConfig(Collection<AnnotationType> types, DocumentmanagerConfig.Builder builder) { - for (AnnotationType type : types) { - DocumentmanagerConfig.Annotationtype.Builder atb = new DocumentmanagerConfig.Annotationtype.Builder(); - buildConfig(type, atb); - builder.annotationtype(atb); - } - } - - @SuppressWarnings("deprecation") - private void buildConfig(DataType type, Datatype.Builder builder) { - builder.id(type.getId()); - if (type instanceof ArrayDataType) { - CollectionDataType dt = (CollectionDataType) type; - builder.arraytype(new Datatype.Arraytype.Builder().datatype(dt.getNestedType().getId())); - } else if (type instanceof WeightedSetDataType) { - WeightedSetDataType dt = (WeightedSetDataType) type; - builder.weightedsettype(new Datatype.Weightedsettype.Builder(). - datatype(dt.getNestedType().getId()). - createifnonexistant(dt.createIfNonExistent()). - removeifzero(dt.removeIfZero())); - } else if (type instanceof MapDataType) { - MapDataType mtype = (MapDataType) type; - builder.maptype(new Datatype.Maptype.Builder(). - keytype(mtype.getKeyType().getId()). - valtype(mtype.getValueType().getId())); - } else if (type instanceof DocumentType) { - throw new IllegalArgumentException("Can not create config for unadorned document type: " + type.getName()); - } else if (type instanceof NewDocumentType) { - NewDocumentType dt = (NewDocumentType) type; - Datatype.Documenttype.Builder doc = new Datatype.Documenttype.Builder(); - builder.documenttype(doc); - doc. - name(dt.getName()). - headerstruct(dt.getContentStruct().getId()); - for (NewDocumentType inherited : dt.getInherited()) { - doc.inherits(new Datatype.Documenttype.Inherits.Builder().name(inherited.getName())); - } - buildConfig(dt.getFieldSets(), doc); - buildImportedFieldsConfig(dt.getImportedFieldNames(), doc); - } else if (type instanceof StructDataType) { - StructDataType structType = (StructDataType) type; - Datatype.Structtype.Builder structBuilder = new Datatype.Structtype.Builder(); - builder.structtype(structBuilder); - structBuilder.name(structType.getName()); - for (com.yahoo.document.Field field : structType.getFieldsThisTypeOnly()) { - Datatype.Structtype.Field.Builder fieldBuilder = new Datatype.Structtype.Field.Builder(); - structBuilder.field(fieldBuilder); - fieldBuilder.name(field.getName()); - if (field.hasForcedId()) { - fieldBuilder.id(new Datatype.Structtype.Field.Id.Builder().id(field.getId())); - } - fieldBuilder.datatype(field.getDataType().getId()); - - if (field.getDataType() instanceof TensorDataType) - fieldBuilder.detailedtype(((TensorDataType)field.getDataType()).getTensorType().toString()); - } - for (StructDataType inherited : structType.getInheritedTypes()) { - structBuilder.inherits(new Datatype.Structtype.Inherits.Builder().name(inherited.getName())); - } - } else if (type instanceof AnnotationReferenceDataType) { - AnnotationReferenceDataType annotationRef = (AnnotationReferenceDataType) type; - builder.annotationreftype(new Datatype.Annotationreftype.Builder().annotation(annotationRef.getAnnotationType().getName())); - } else if (type instanceof TensorDataType) { - // Nothing to do; the type of the tensor is instead stored in each field as detailed type information - // to provide better compatibility. A tensor field can have its tensorType changed (in compatible ways) - // without changing the field type and thus requiring data refeed - } else if (type instanceof NewDocumentReferenceDataType) { - NewDocumentReferenceDataType refType = (NewDocumentReferenceDataType) type; - if (refType.isTemporary()) { - throw new IllegalArgumentException("Still temporary: " + refType); - } - builder.referencetype(new Datatype.Referencetype.Builder().target_type_id(refType.getTargetTypeId())); - } else { - throw new IllegalArgumentException("Can not create config for data type " + type + " of class " + type.getClass()); - } - } - - private void buildConfig(Set<FieldSet> fieldSets, Datatype.Documenttype.Builder doc) { - for (FieldSet builtinFs : fieldSets) { - buildConfig(builtinFs, doc); - } - } - - private void buildConfig(FieldSet fs, Datatype.Documenttype.Builder doc) { - doc.fieldsets(fs.getName(), new Datatype.Documenttype.Fieldsets.Builder().fields(fs.getFieldNames())); - } - - private void buildImportedFieldsConfig(Collection<String> fieldNames, Datatype.Documenttype.Builder builder) { - for (String fieldName : fieldNames) { - var ib = new DocumentmanagerConfig.Datatype.Documenttype.Importedfield.Builder(); - ib.name(fieldName); - builder.importedfield(ib); - } - } - - // Alternate (new) way to build config: public DocumentmanagerConfig.Builder produceDocTypes(DocumentModel model, DocumentmanagerConfig.Builder builder) { diff --git a/config-model/src/test/derived/inheritdiamond/documentmanager.cfg b/config-model/src/test/derived/inheritdiamond/documentmanager.cfg index 06169c09969..10fdcf50026 100644 --- a/config-model/src/test/derived/inheritdiamond/documentmanager.cfg +++ b/config-model/src/test/derived/inheritdiamond/documentmanager.cfg @@ -1,198 +1,105 @@ enablecompression false usev8geopositions false -datatype[].id 336538650 -datatype[].structtype[].name "child_struct" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "child_field" -datatype[].structtype[].field[].datatype 2 -datatype[].id 81425825 -datatype[].structtype[].name "child.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "foo" -datatype[].structtype[].field[].datatype 1246084544 -datatype[].structtype[].field[].name "bar" -datatype[].structtype[].field[].datatype 1561776723 -datatype[].structtype[].field[].name "baz" -datatype[].structtype[].field[].datatype -1913265190 -datatype[].structtype[].field[].name "cox" -datatype[].structtype[].field[].datatype 336538650 -datatype[].id 746267614 -datatype[].documenttype[].name "child" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "mother" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].inherits[].name "father" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 81425825 -datatype[].documenttype[].bodystruct 0 -datatype[].id -1913265190 -datatype[].structtype[].name "father_struct" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "father_field" -datatype[].structtype[].field[].datatype 2 -datatype[].id 1246084544 -datatype[].structtype[].name "grandparent_struct" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "grandparent_field" -datatype[].structtype[].field[].datatype 2 -datatype[].id -1962244686 -datatype[].structtype[].name "father_search.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id 1464571117 -datatype[].documenttype[].name "father_search" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -1962244686 -datatype[].documenttype[].bodystruct 0 -datatype[].id -384824039 -datatype[].structtype[].name "mother_search.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id 1561776723 -datatype[].structtype[].name "mother_struct" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "mother_field" -datatype[].structtype[].field[].datatype 2 -datatype[].id 644645734 -datatype[].documenttype[].name "mother_search" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -384824039 -datatype[].documenttype[].bodystruct 0 -datatype[].id 1306663898 -datatype[].structtype[].name "mother.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id -158393403 -datatype[].documenttype[].name "mother" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "grandparent" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 1306663898 -datatype[].documenttype[].bodystruct 0 -datatype[].id -205818510 -datatype[].structtype[].name "child_search.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id -580592339 -datatype[].documenttype[].name "child_search" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -205818510 -datatype[].documenttype[].bodystruct 0 -datatype[].id 111553393 -datatype[].structtype[].name "url" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "all" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "scheme" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "host" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "port" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "path" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "query" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].name "fragment" -datatype[].structtype[].field[].datatype 2 -datatype[].id 1381038251 -datatype[].structtype[].name "position" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "x" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].name "y" -datatype[].structtype[].field[].datatype 0 -datatype[].id 1530060044 -datatype[].structtype[].name "grandparent_search.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id 328953555 -datatype[].documenttype[].name "grandparent_search" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 1530060044 -datatype[].documenttype[].bodystruct 0 -datatype[].id 990971719 -datatype[].structtype[].name "grandparent.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id -154107656 -datatype[].documenttype[].name "grandparent" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 990971719 -datatype[].documenttype[].bodystruct 0 -datatype[].id 2126589281 -datatype[].structtype[].name "father.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].id 986686494 -datatype[].documenttype[].name "father" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "grandparent" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 2126589281 -datatype[].documenttype[].bodystruct 0 +doctype[].name "document" +doctype[].idx 10000 +doctype[].contentstruct 10001 +doctype[].primitivetype[].idx 10002 +doctype[].primitivetype[].name "bool" +doctype[].primitivetype[].idx 10003 +doctype[].primitivetype[].name "byte" +doctype[].primitivetype[].idx 10004 +doctype[].primitivetype[].name "double" +doctype[].primitivetype[].idx 10005 +doctype[].primitivetype[].name "float" +doctype[].primitivetype[].idx 10006 +doctype[].primitivetype[].name "float16" +doctype[].primitivetype[].idx 10007 +doctype[].primitivetype[].name "int" +doctype[].primitivetype[].idx 10008 +doctype[].primitivetype[].name "long" +doctype[].primitivetype[].idx 10010 +doctype[].primitivetype[].name "predicate" +doctype[].primitivetype[].idx 10011 +doctype[].primitivetype[].name "raw" +doctype[].primitivetype[].idx 10012 +doctype[].primitivetype[].name "string" +doctype[].primitivetype[].idx 10014 +doctype[].primitivetype[].name "uri" +doctype[].wsettype[].idx 10013 +doctype[].wsettype[].elementtype 10012 +doctype[].wsettype[].createifnonexistent true +doctype[].wsettype[].removeifzero true +doctype[].structtype[].idx 10001 +doctype[].structtype[].name "document.header" +doctype[].structtype[].idx 10009 +doctype[].structtype[].name "position" +doctype[].structtype[].field[].name "x" +doctype[].structtype[].field[].internalid 914677694 +doctype[].structtype[].field[].type 10007 +doctype[].structtype[].field[].name "y" +doctype[].structtype[].field[].internalid 900009410 +doctype[].structtype[].field[].type 10007 +doctype[].name "grandparent" +doctype[].idx 10015 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10016 +doctype[].structtype[].idx 10016 +doctype[].structtype[].name "grandparent.header" +doctype[].structtype[].idx 10017 +doctype[].structtype[].name "grandparent_struct" +doctype[].structtype[].field[].name "grandparent_field" +doctype[].structtype[].field[].internalid 18801796 +doctype[].structtype[].field[].type 10012 +doctype[].name "mother" +doctype[].idx 10018 +doctype[].inherits[].idx 10000 +doctype[].inherits[].idx 10015 +doctype[].contentstruct 10019 +doctype[].structtype[].idx 10019 +doctype[].structtype[].name "mother.header" +doctype[].structtype[].idx 10020 +doctype[].structtype[].name "mother_struct" +doctype[].structtype[].field[].name "mother_field" +doctype[].structtype[].field[].internalid 1801531770 +doctype[].structtype[].field[].type 10012 +doctype[].name "father" +doctype[].idx 10021 +doctype[].inherits[].idx 10000 +doctype[].inherits[].idx 10015 +doctype[].contentstruct 10022 +doctype[].structtype[].idx 10022 +doctype[].structtype[].name "father.header" +doctype[].structtype[].idx 10023 +doctype[].structtype[].name "father_struct" +doctype[].structtype[].field[].name "father_field" +doctype[].structtype[].field[].internalid 465213152 +doctype[].structtype[].field[].type 10012 +doctype[].name "child" +doctype[].idx 10024 +doctype[].inherits[].idx 10000 +doctype[].inherits[].idx 10018 +doctype[].inherits[].idx 10021 +doctype[].contentstruct 10025 +doctype[].fieldsets{[document]}.fields[] "bar" +doctype[].fieldsets{[document]}.fields[] "baz" +doctype[].fieldsets{[document]}.fields[] "cox" +doctype[].fieldsets{[document]}.fields[] "foo" +doctype[].structtype[].idx 10026 +doctype[].structtype[].name "child_struct" +doctype[].structtype[].field[].name "child_field" +doctype[].structtype[].field[].internalid 1373649209 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].idx 10025 +doctype[].structtype[].name "child.header" +doctype[].structtype[].field[].name "foo" +doctype[].structtype[].field[].internalid 1009524757 +doctype[].structtype[].field[].type 10017 +doctype[].structtype[].field[].name "bar" +doctype[].structtype[].field[].internalid 441572371 +doctype[].structtype[].field[].type 10020 +doctype[].structtype[].field[].name "baz" +doctype[].structtype[].field[].internalid 971444170 +doctype[].structtype[].field[].type 10023 +doctype[].structtype[].field[].name "cox" +doctype[].structtype[].field[].internalid 592669560 +doctype[].structtype[].field[].type 10026 diff --git a/config-model/src/test/derived/multi_struct/documentmanager.cfg b/config-model/src/test/derived/multi_struct/documentmanager.cfg index 58775331d58..dbf753c6bc3 100644 --- a/config-model/src/test/derived/multi_struct/documentmanager.cfg +++ b/config-model/src/test/derived/multi_struct/documentmanager.cfg @@ -1,109 +1,112 @@ enablecompression false usev8geopositions false -datatype[].id 1381038251 -datatype[].structtype[].name "position" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "x" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "y" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 959075962 -datatype[].structtype[].name "ad.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "e" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 2987301 -datatype[].documenttype[].name "ad" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 959075962 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "e" -datatype[].id -420192670 -datatype[].maptype[].keytype 2 -datatype[].maptype[].valtype -2092985853 -datatype[].id -2092985853 -datatype[].structtype[].name "mystruct" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "zero" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "one" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "two" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "three" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].id -107300050 -datatype[].structtype[].name "product.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "more_stuff" -datatype[].structtype[].field[].datatype -420192670 -datatype[].structtype[].field[].detailedtype "" -datatype[].id -1051831567 -datatype[].documenttype[].name "product" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -107300050 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "more_stuff" -datatype[].id 371492103 -datatype[].structtype[].name "shop.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "some_stuff" -datatype[].structtype[].field[].datatype -420192670 -datatype[].structtype[].field[].detailedtype "" -datatype[].id -903152840 -datatype[].documenttype[].name "shop" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 371492103 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "some_stuff" -datatype[].id 1601213394 -datatype[].structtype[].name "user.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "a" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].id -836031795 -datatype[].documenttype[].name "user" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 1601213394 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "a" +doctype[].name "document" +doctype[].idx 10000 +doctype[].contentstruct 10001 +doctype[].primitivetype[].idx 10002 +doctype[].primitivetype[].name "bool" +doctype[].primitivetype[].idx 10003 +doctype[].primitivetype[].name "byte" +doctype[].primitivetype[].idx 10004 +doctype[].primitivetype[].name "double" +doctype[].primitivetype[].idx 10005 +doctype[].primitivetype[].name "float" +doctype[].primitivetype[].idx 10006 +doctype[].primitivetype[].name "float16" +doctype[].primitivetype[].idx 10007 +doctype[].primitivetype[].name "int" +doctype[].primitivetype[].idx 10008 +doctype[].primitivetype[].name "long" +doctype[].primitivetype[].idx 10010 +doctype[].primitivetype[].name "predicate" +doctype[].primitivetype[].idx 10011 +doctype[].primitivetype[].name "raw" +doctype[].primitivetype[].idx 10012 +doctype[].primitivetype[].name "string" +doctype[].primitivetype[].idx 10014 +doctype[].primitivetype[].name "uri" +doctype[].wsettype[].idx 10013 +doctype[].wsettype[].elementtype 10012 +doctype[].wsettype[].createifnonexistent true +doctype[].wsettype[].removeifzero true +doctype[].structtype[].idx 10001 +doctype[].structtype[].name "document.header" +doctype[].structtype[].idx 10009 +doctype[].structtype[].name "position" +doctype[].structtype[].field[].name "x" +doctype[].structtype[].field[].internalid 914677694 +doctype[].structtype[].field[].type 10007 +doctype[].structtype[].field[].name "y" +doctype[].structtype[].field[].internalid 900009410 +doctype[].structtype[].field[].type 10007 +doctype[].name "ad" +doctype[].idx 10015 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10016 +doctype[].fieldsets{[document]}.fields[] "e" +doctype[].structtype[].idx 10016 +doctype[].structtype[].name "ad.header" +doctype[].structtype[].field[].name "e" +doctype[].structtype[].field[].internalid 970377814 +doctype[].structtype[].field[].type 10012 +doctype[].name "product" +doctype[].idx 10017 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10018 +doctype[].fieldsets{[document]}.fields[] "more_stuff" +doctype[].maptype[].idx 10019 +doctype[].maptype[].keytype 10012 +doctype[].maptype[].valuetype 10020 +doctype[].structtype[].idx 10020 +doctype[].structtype[].name "mystruct" +doctype[].structtype[].field[].name "zero" +doctype[].structtype[].field[].internalid 2128579715 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "one" +doctype[].structtype[].field[].internalid 997119011 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "two" +doctype[].structtype[].field[].internalid 2054688289 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "three" +doctype[].structtype[].field[].internalid 814368361 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].idx 10018 +doctype[].structtype[].name "product.header" +doctype[].structtype[].field[].name "more_stuff" +doctype[].structtype[].field[].internalid 278342855 +doctype[].structtype[].field[].type 10019 +doctype[].name "shop" +doctype[].idx 10021 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10022 +doctype[].fieldsets{[document]}.fields[] "some_stuff" +doctype[].maptype[].idx 10023 +doctype[].maptype[].keytype 10012 +doctype[].maptype[].valuetype 10024 +doctype[].structtype[].idx 10024 +doctype[].structtype[].name "mystruct" +doctype[].structtype[].field[].name "one" +doctype[].structtype[].field[].internalid 997119011 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "two" +doctype[].structtype[].field[].internalid 2054688289 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].field[].name "three" +doctype[].structtype[].field[].internalid 814368361 +doctype[].structtype[].field[].type 10012 +doctype[].structtype[].idx 10022 +doctype[].structtype[].name "shop.header" +doctype[].structtype[].field[].name "some_stuff" +doctype[].structtype[].field[].internalid 1543312381 +doctype[].structtype[].field[].type 10023 +doctype[].name "user" +doctype[].idx 10025 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10026 +doctype[].fieldsets{[document]}.fields[] "a" +doctype[].structtype[].idx 10026 +doctype[].structtype[].name "user.header" +doctype[].structtype[].field[].name "a" +doctype[].structtype[].field[].internalid 493339625 +doctype[].structtype[].field[].type 10012 diff --git a/config-model/src/test/derived/reference_from_several/documentmanager.cfg b/config-model/src/test/derived/reference_from_several/documentmanager.cfg index 88dee077539..0418b05d9d6 100644 --- a/config-model/src/test/derived/reference_from_several/documentmanager.cfg +++ b/config-model/src/test/derived/reference_from_several/documentmanager.cfg @@ -1,81 +1,83 @@ enablecompression false usev8geopositions false -datatype[].id 1381038251 -datatype[].structtype[].name "position" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "x" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "y" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 427398467 -datatype[].referencetype[].target_type_id 1175161836 -datatype[].id -2026908534 -datatype[].structtype[].name "bar.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "bpref" -datatype[].structtype[].field[].datatype 427398467 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "bartitle" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 93505813 -datatype[].documenttype[].name "bar" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -2026908534 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "bartitle" -datatype[].documenttype[].fieldsets{[document]}.fields[] "bpref" -datatype[].documenttype[].importedfield[].name "barsximp" -datatype[].id -308552393 -datatype[].structtype[].name "foo.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "myref" -datatype[].structtype[].field[].datatype 427398467 -datatype[].structtype[].field[].detailedtype "" -datatype[].structtype[].field[].name "foo" -datatype[].structtype[].field[].datatype 2 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 97614088 -datatype[].documenttype[].name "foo" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct -308552393 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "foo" -datatype[].documenttype[].fieldsets{[document]}.fields[] "myref" -datatype[].documenttype[].importedfield[].name "myx" -datatype[].id 836075987 -datatype[].structtype[].name "parent.header" -datatype[].structtype[].version 0 -datatype[].structtype[].compresstype NONE -datatype[].structtype[].compresslevel 0 -datatype[].structtype[].compressthreshold 95 -datatype[].structtype[].compressminsize 800 -datatype[].structtype[].field[].name "x" -datatype[].structtype[].field[].datatype 0 -datatype[].structtype[].field[].detailedtype "" -datatype[].id 1175161836 -datatype[].documenttype[].name "parent" -datatype[].documenttype[].version 0 -datatype[].documenttype[].inherits[].name "document" -datatype[].documenttype[].inherits[].version 0 -datatype[].documenttype[].headerstruct 836075987 -datatype[].documenttype[].bodystruct 0 -datatype[].documenttype[].fieldsets{[document]}.fields[] "x" +doctype[].name "document" +doctype[].idx 10000 +doctype[].contentstruct 10001 +doctype[].primitivetype[].idx 10002 +doctype[].primitivetype[].name "bool" +doctype[].primitivetype[].idx 10003 +doctype[].primitivetype[].name "byte" +doctype[].primitivetype[].idx 10004 +doctype[].primitivetype[].name "double" +doctype[].primitivetype[].idx 10005 +doctype[].primitivetype[].name "float" +doctype[].primitivetype[].idx 10006 +doctype[].primitivetype[].name "float16" +doctype[].primitivetype[].idx 10007 +doctype[].primitivetype[].name "int" +doctype[].primitivetype[].idx 10008 +doctype[].primitivetype[].name "long" +doctype[].primitivetype[].idx 10010 +doctype[].primitivetype[].name "predicate" +doctype[].primitivetype[].idx 10011 +doctype[].primitivetype[].name "raw" +doctype[].primitivetype[].idx 10012 +doctype[].primitivetype[].name "string" +doctype[].primitivetype[].idx 10014 +doctype[].primitivetype[].name "uri" +doctype[].wsettype[].idx 10013 +doctype[].wsettype[].elementtype 10012 +doctype[].wsettype[].createifnonexistent true +doctype[].wsettype[].removeifzero true +doctype[].structtype[].idx 10001 +doctype[].structtype[].name "document.header" +doctype[].structtype[].idx 10009 +doctype[].structtype[].name "position" +doctype[].structtype[].field[].name "x" +doctype[].structtype[].field[].internalid 914677694 +doctype[].structtype[].field[].type 10007 +doctype[].structtype[].field[].name "y" +doctype[].structtype[].field[].internalid 900009410 +doctype[].structtype[].field[].type 10007 +doctype[].name "bar" +doctype[].idx 10015 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10016 +doctype[].fieldsets{[document]}.fields[] "bartitle" +doctype[].fieldsets{[document]}.fields[] "bpref" +doctype[].importedfield[].name "barsximp" +doctype[].documentref[].idx 10017 +doctype[].documentref[].targettype 10018 +doctype[].structtype[].idx 10016 +doctype[].structtype[].name "bar.header" +doctype[].structtype[].field[].name "bpref" +doctype[].structtype[].field[].internalid 1709838545 +doctype[].structtype[].field[].type 10017 +doctype[].structtype[].field[].name "bartitle" +doctype[].structtype[].field[].internalid 1554393914 +doctype[].structtype[].field[].type 10012 +doctype[].name "foo" +doctype[].idx 10019 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10020 +doctype[].fieldsets{[document]}.fields[] "foo" +doctype[].fieldsets{[document]}.fields[] "myref" +doctype[].importedfield[].name "myx" +doctype[].structtype[].idx 10020 +doctype[].structtype[].name "foo.header" +doctype[].structtype[].field[].name "myref" +doctype[].structtype[].field[].internalid 598565475 +doctype[].structtype[].field[].type 10017 +doctype[].structtype[].field[].name "foo" +doctype[].structtype[].field[].internalid 846279091 +doctype[].structtype[].field[].type 10012 +doctype[].name "parent" +doctype[].idx 10018 +doctype[].inherits[].idx 10000 +doctype[].contentstruct 10021 +doctype[].fieldsets{[document]}.fields[] "x" +doctype[].structtype[].idx 10021 +doctype[].structtype[].name "parent.header" +doctype[].structtype[].field[].name "x" +doctype[].structtype[].field[].internalid 914677694 +doctype[].structtype[].field[].type 10007 diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java index e1cc42ba9c5..b8ad3c24ed7 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java @@ -66,7 +66,7 @@ public abstract class AbstractExportingTestCase extends AbstractSchemaTestCase { private DerivedConfiguration export(String name, ApplicationBuilder builder, DerivedConfiguration config) throws IOException { String path = exportConfig(name, config); - DerivedConfiguration.exportDocuments(new DocumentManager().useV8DocManagerCfg(useV8DocManagerCfg()) + DerivedConfiguration.exportDocuments(new DocumentManager() .produce(builder.getModel(), new DocumentmanagerConfig.Builder()), path); DerivedConfiguration.exportDocuments(new DocumentTypes().produce(builder.getModel(), new DocumenttypesConfig.Builder()), path); DerivedConfiguration.exportQueryProfiles(builder.getQueryProfileRegistry(), path); diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java index 10616731499..d27c081ce30 100644 --- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java +++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java @@ -62,6 +62,16 @@ public class InheritanceTestCase extends AbstractExportingTestCase { @Test public void requireThatStructTypesAreInheritedThroughDiamond() throws IOException, ParseException { String dir = "src/test/derived/inheritdiamond/"; + { + ApplicationBuilder builder = new ApplicationBuilder(); + builder.addSchemaFile(dir + "grandparent.sd"); + builder.addSchemaFile(dir + "mother.sd"); + builder.addSchemaFile(dir + "father.sd"); + builder.addSchemaFile(dir + "child.sd"); + builder.build(true); + derive("inheritdiamond", builder, builder.getSchema("child")); + assertCorrectConfigFiles("inheritdiamond"); + } List<String> files = Arrays.asList("grandparent.sd", "mother.sd", "father.sd", "child.sd"); File outDir = tmpDir.newFolder("out"); for (int startIdx = 0; startIdx < files.size(); ++startIdx) { @@ -74,40 +84,43 @@ public class InheritanceTestCase extends AbstractExportingTestCase { builder.build(true); DocumentmanagerConfig.Builder b = new DocumentmanagerConfig.Builder(); DerivedConfiguration.exportDocuments(new DocumentManager(). - useV8DocManagerCfg(false). produce(builder.getModel(), b), outDir.getPath()); DocumentmanagerConfig dc = b.build(); - assertEquals(13, dc.datatype().size()); + assertEquals(5, dc.doctype().size()); + assertNull(structType("child.body", dc)); - DocumentmanagerConfig.Datatype.Structtype childHeader = structType("child.header", dc); + var childHeader = structType("child.header", dc); assertEquals(childHeader.field(0).name(), "foo"); assertEquals(childHeader.field(1).name(), "bar"); assertEquals(childHeader.field(2).name(), "baz"); assertEquals(childHeader.field(3).name(), "cox"); - DocumentmanagerConfig.Datatype.Documenttype child = documentType("child", dc); - assertEquals(child.inherits(0).name(), "document"); - assertEquals(child.inherits(1).name(), "mother"); - assertEquals(child.inherits(2).name(), "father"); - DocumentmanagerConfig.Datatype.Documenttype mother = documentType("mother", dc); - assertEquals(mother.inherits(0).name(), "document"); - assertEquals(mother.inherits(1).name(), "grandparent"); + + var root = documentType("document", dc); + var child = documentType("child", dc); + var mother = documentType("mother", dc); + var father = documentType("father", dc); + var grandparent = documentType("grandparent", dc); + + assertEquals(child.inherits(0).idx(), root.idx()); + assertEquals(child.inherits(1).idx(), mother.idx()); + assertEquals(child.inherits(2).idx(), father.idx()); + assertEquals(mother.inherits(0).idx(), root.idx()); + assertEquals(mother.inherits(1).idx(), grandparent.idx()); } } - private DocumentmanagerConfig.Datatype.Structtype structType(String name, DocumentmanagerConfig dc) { - for (DocumentmanagerConfig.Datatype dt : dc.datatype()) { - for (DocumentmanagerConfig.Datatype.Structtype st : dt.structtype()) { + private DocumentmanagerConfig.Doctype.Structtype structType(String name, DocumentmanagerConfig dc) { + for (var dt : dc.doctype()) { + for (var st : dt.structtype()) { if (name.equals(st.name())) return st; } } return null; } - private DocumentmanagerConfig.Datatype.Documenttype documentType(String name, DocumentmanagerConfig dc) { - for (DocumentmanagerConfig.Datatype dt : dc.datatype()) { - for (DocumentmanagerConfig.Datatype.Documenttype dot : dt.documenttype()) { - if (name.equals(dot.name())) return dot; - } + private DocumentmanagerConfig.Doctype documentType(String name, DocumentmanagerConfig dc) { + for (var dot : dc.doctype()) { + if (name.equals(dot.name())) return dot; } return null; } |