diff options
Diffstat (limited to 'config-model/src/main')
3 files changed, 28 insertions, 17 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java index 5940f908be8..6e17bd0f0bb 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java @@ -1,6 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.searchdefinition; +import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.searchdefinition.document.SDDocumentType; /** @@ -11,8 +13,8 @@ import com.yahoo.searchdefinition.document.SDDocumentType; */ public class DocumentOnlySearch extends Search { - public DocumentOnlySearch() { - // empty + public DocumentOnlySearch(ApplicationPackage applicationPackage, DeployLogger deployLogger) { + super(applicationPackage, deployLogger); } @Override diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java index a90cc7c9450..b07740620f8 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Search.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Search.java @@ -2,6 +2,8 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.ApplicationPackage; +import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.model.application.provider.BaseDeployLogger; import com.yahoo.document.Field; import com.yahoo.searchdefinition.derived.SummaryClass; import com.yahoo.searchdefinition.document.Attribute; @@ -28,6 +30,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.TreeMap; +import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Stream; @@ -43,7 +46,6 @@ import java.util.stream.Stream; // Ensure that after the processing step, all implicit instances of the above types are explicitly represented public class Search implements ImmutableSearch { - private static final Logger log = Logger.getLogger(Search.class.getName()); private static final String SD_DOC_FIELD_NAME = "sddocname"; private static final List<String> RESERVED_NAMES = Arrays.asList( "index", "index_url", "summary", "attribute", "select_input", "host", SummaryClass.DOCUMENT_ID_FIELD, @@ -60,7 +62,7 @@ public class Search implements ImmutableSearch { private String name; /** True if this doesn't define a search, just a document type */ - private boolean documentsOnly = false; + private final boolean documentsOnly; private boolean rawAsBase64 = false; @@ -92,26 +94,33 @@ public class Search implements ImmutableSearch { private Optional<ImportedFields> importedFields = Optional.empty(); private final ApplicationPackage applicationPackage; + private final DeployLogger deployLogger; - /** - * Creates a search definition which just holds a set of documents which should not (here, directly) be searchable - */ - protected Search() { - applicationPackage = null; - documentsOnly = true; + /** Testin only */ + public Search(String name) { + this(name, null, new BaseDeployLogger()); } - /** * Creates a proper search definition * * @param name of the the searchdefinition * @param applicationPackage the application containing this */ - public Search(String name, ApplicationPackage applicationPackage) { - this.applicationPackage = applicationPackage; + public Search(String name, ApplicationPackage applicationPackage, DeployLogger deployLogger) { + this(applicationPackage, deployLogger, false); this.name = name; } + protected Search(ApplicationPackage applicationPackage, DeployLogger deployLogger) { + this(applicationPackage, deployLogger, true); + } + + private Search(ApplicationPackage applicationPackage, DeployLogger deployLogger, boolean documentsOnly) { + this.applicationPackage = applicationPackage; + this.deployLogger = deployLogger; + this.documentsOnly = documentsOnly; + } + protected void setName(String name) { this.name = name; } @@ -323,7 +332,7 @@ public class Search implements ImmutableSearch { */ public void addExtraField(SDField field) { if (fields.containsKey(field.getName())) { - log.warning("Duplicate field " + field.getName() + " in search definition " + getName()); + deployLogger.logApplicationPackage(Level.WARNING, "Duplicate field " + field.getName() + " in search definition " + getName()); } else { field.setIsExtraField(true); fields.put(field.getName(), field); @@ -435,7 +444,7 @@ public class Search implements ImmutableSearch { if (current.getRankType() != null && !consolidated.getRankType().equals(current.getRankType())) { - log.warning("Conflicting rank type settings for " + + deployLogger.logApplicationPackage(Level.WARNING, "Conflicting rank type settings for " + first.getName() + " in " + this + ", using " + consolidated.getRankType()); } diff --git a/config-model/src/main/javacc/SDParser.jj b/config-model/src/main/javacc/SDParser.jj index 4823a6400f8..0cc1db5a2d7 100644 --- a/config-model/src/main/javacc/SDParser.jj +++ b/config-model/src/main/javacc/SDParser.jj @@ -425,7 +425,7 @@ Search rootSchema(String dir) : Search search; } { - ( ( <SCHEMA> | <SEARCH> ) name = identifier() { search = new Search(name, app); + ( ( <SCHEMA> | <SEARCH> ) name = identifier() { search = new Search(name, app, deployLogger); rankProfileRegistry.add(new DefaultRankProfile(search, rankProfileRegistry)); rankProfileRegistry.add(new UnrankedRankProfile(search, rankProfileRegistry));} lbrace() (rootSchemaItem(search) (<NL>)*)* <RBRACE> (<NL>)* <EOF>) @@ -466,7 +466,7 @@ Object rootSchemaItem(Search search) : { } */ Search rootDocument(String dir) : { - Search search = new DocumentOnlySearch(); + Search search = new DocumentOnlySearch(app, deployLogger); } { ( (rootDocumentItem(search) (<NL>)*)*<EOF> ) |