summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/searchdefinition/parser
diff options
context:
space:
mode:
authorArne H Juul <arnej27959@users.noreply.github.com>2022-04-08 13:15:46 +0200
committerGitHub <noreply@github.com>2022-04-08 13:15:46 +0200
commit14dcd3abf7e08ed2fe41b4058739ab7a3fcfe878 (patch)
tree80f5f2de429f4466830b068cf73b06218cfb5e79 /config-model/src/main/java/com/yahoo/searchdefinition/parser
parent186dd791b7170f66759428b743cff2c8a0d5667f (diff)
parente2983bcf08f3fac86774e663a8a1f3c79060a40c (diff)
Merge pull request #22038 from vespa-engine/arnej/allow-struct-types-with-same-name
Arnej/allow struct types with same name
Diffstat (limited to 'config-model/src/main/java/com/yahoo/searchdefinition/parser')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java18
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java3
2 files changed, 6 insertions, 15 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java
index e4d03a3f471..9c2d29282ae 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedSchemas.java
@@ -108,25 +108,15 @@ public class ConvertParsedSchemas {
ConvertParsedFields fieldConverter)
{
SDDocumentType document = new SDDocumentType(parsed.name());
+ for (var struct : parsed.getStructs()) {
+ var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct);
+ document.addType(structProxy);
+ }
for (String inherit : parsed.getInherited()) {
var parent = convertedDocuments.get(inherit);
assert(parent != null);
document.inherit(parent);
}
- for (var struct : parsed.getStructs()) {
- var structProxy = fieldConverter.convertStructDeclaration(schema, document, struct);
- var old = document.getType(struct.name());
- if (old == null) {
- document.addType(structProxy);
- } else {
- var oldFields = old.fieldSet();
- var newFields = structProxy.fieldSet();
- if (! newFields.equals(oldFields)) {
- throw new IllegalArgumentException("Cannot modify already-existing struct: " + struct.name());
- }
- deployLogger.logApplicationPackage(Level.WARNING, "Duplicate struct declaration for: " + struct.name());
- }
- }
for (var annotation : parsed.getAnnotations()) {
fieldConverter.convertAnnotation(schema, document, annotation);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
index 3644cb9d924..7311c8a4216 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/parser/ConvertParsedTypes.java
@@ -297,12 +297,13 @@ public class ConvertParsedTypes {
throw new IllegalArgumentException("unknown type named '" + name + "' in context "+context);
}
+ @SuppressWarnings("deprecation")
private void registerDataTypes() {
for (DataType t : structsFromSchemas.values()) {
docMan.register(t);
}
for (DocumentType t : documentsFromSchemas.values()) {
- docMan.register(t);
+ docMan.registerDocumentType(t);
}
for (SDAnnotationType t : annotationsFromSchemas.values()) {
docMan.getAnnotationTypeRegistry().register(t);