diff options
4 files changed, 20 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/UserConfigBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/UserConfigBuilder.java index e5cbb169b0c..2b8000f3e1a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/UserConfigBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/UserConfigBuilder.java @@ -43,7 +43,7 @@ public class UserConfigBuilder { logger.logApplicationPackage(Level.WARNING, "Unable to find config definition '" + key.asFileName() + "'. Please ensure that the name is spelled correctly, and that the def file is included in a bundle."); } - ConfigPayloadBuilder payloadBuilder = new DomConfigPayloadBuilder(def.orElse(null)).build(element); + ConfigPayloadBuilder payloadBuilder = new DomConfigPayloadBuilder(def.orElse(null), logger).build(element); ConfigPayloadBuilder old = builderMap.get(key); if (old != null) { logger.logApplicationPackage(Level.WARNING, "Multiple overrides for " + key + " found. Applying in the order they are discovered"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java index 0c746ff4a75..09af365c389 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilder.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.model.builder.xml.dom; import com.yahoo.collections.Tuple2; import com.yahoo.config.ConfigurationRuntimeException; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionKey; import com.yahoo.vespa.config.ConfigPayloadBuilder; @@ -13,6 +14,8 @@ import com.yahoo.vespa.config.util.ConfigUtils; import org.w3c.dom.Element; import java.util.List; +import java.util.Optional; +import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -31,9 +34,11 @@ public class DomConfigPayloadBuilder { /** The config definition, not null if not found */ private final ConfigDefinition configDefinition; + private final Optional<DeployLogger> logger; - public DomConfigPayloadBuilder(ConfigDefinition configDefinition) { + public DomConfigPayloadBuilder(ConfigDefinition configDefinition, DeployLogger logger) { this.configDefinition = configDefinition; + this.logger = Optional.ofNullable(logger); } /** diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilderTest.java index 62decde78be..264d102161a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomConfigPayloadBuilderTest.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.model.builder.xml.dom; import com.yahoo.config.ConfigurationRuntimeException; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.codegen.DefParser; import com.yahoo.config.model.builder.xml.XmlHelper; import com.yahoo.slime.JsonFormat; @@ -17,11 +18,11 @@ import org.w3c.dom.Element; import org.xml.sax.InputSource; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.Reader; import java.io.StringReader; +import java.util.logging.Level; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -34,6 +35,10 @@ import static org.junit.Assert.fail; */ public class DomConfigPayloadBuilderTest { + private static final DeployLogger logger = (level, message) -> { + if (level.intValue() > Level.INFO.intValue()) System.err.println(message); + }; + @Test public void testFunctionTest_DefaultValues() throws FileNotFoundException { Element configRoot = getDocument(new FileReader("src/test/cfg/admin/userconfigs/functiontest-defaultvalues.xml")); @@ -143,7 +148,7 @@ public class DomConfigPayloadBuilderTest { public void testFailWrongTagName() { Element configRoot = getDocument(new StringReader("<configs name=\"foo\"/>")); try { - new DomConfigPayloadBuilder(null).build(configRoot); + new DomConfigPayloadBuilder(null, logger).build(configRoot); fail("Expected exception for wrong tag name."); } catch (ConfigurationRuntimeException e) { assertEquals("The root element must be 'config', but was 'configs'.", e.getMessage()); @@ -155,7 +160,7 @@ public class DomConfigPayloadBuilderTest { public void testFailNoNameAttribute() { Element configRoot = getDocument(new StringReader("<config/>")); try { - new DomConfigPayloadBuilder(null).build(configRoot); + new DomConfigPayloadBuilder(null, logger).build(configRoot); fail("Expected exception for mismatch between def-name and xml name attribute."); } catch (ConfigurationRuntimeException e) { assertEquals("The 'config' element must have a 'name' attribute that matches the name of the config definition.", e.getMessage()); @@ -237,7 +242,7 @@ public class DomConfigPayloadBuilderTest { "<config name=\"test.arraytypes\" version=\"1\">" + " <item>13</item>" + "</config>"); - new DomConfigPayloadBuilder(null).build(configRoot); + new DomConfigPayloadBuilder(null, logger).build(configRoot); } @Test(expected=ConfigurationRuntimeException.class) @@ -249,12 +254,13 @@ public class DomConfigPayloadBuilderTest { DefParser defParser = new DefParser("simpletypes", new FileReader("src/test/resources/configdefinitions/test.simpletypes.def")); ConfigDefinition def = ConfigDefinitionBuilder.createConfigDefinition(defParser.getTree()); - ConfigPayloadBuilder unused = new DomConfigPayloadBuilder(def).build(configRoot); + ConfigPayloadBuilder unused = new DomConfigPayloadBuilder(def, logger).build(configRoot); } private void assertPayload(String expected, Element configRoot) { - ConfigPayload payload = ConfigPayload.fromBuilder(new DomConfigPayloadBuilder(null).build(configRoot)); + ConfigPayload payload = ConfigPayload.fromBuilder( + new DomConfigPayloadBuilder(null, logger).build(configRoot)); try { ByteArrayOutputStream a = new ByteArrayOutputStream(); new JsonFormat(true).encode(a, payload.getSlime()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/RealDataScenarioTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/RealDataScenarioTest.java index 3dd76c76cac..0e732984227 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/RealDataScenarioTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/RealDataScenarioTest.java @@ -129,7 +129,7 @@ public class RealDataScenarioTest { private static FlavorsConfig parseFlavors(Path path) { try { var element = XmlHelper.getDocumentBuilder().parse(path.toFile()).getDocumentElement(); - return ConfigPayload.fromBuilder(new DomConfigPayloadBuilder(null).build(element)).toInstance(FlavorsConfig.class, ""); + return ConfigPayload.fromBuilder(new DomConfigPayloadBuilder(null, null).build(element)).toInstance(FlavorsConfig.class, ""); } catch (Exception e) { throw new RuntimeException(e); } |