summaryrefslogtreecommitdiffstats
path: root/config-model/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/DocumentOnlySearch.java6
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/Search.java35
-rw-r--r--config-model/src/main/javacc/SDParser.jj4
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> )