summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-04-20 08:23:39 +0200
committerHarald Musum <musum@yahooinc.com>2022-04-20 08:23:39 +0200
commit3889010d96f7b844b182e7fccffdf7cbb07a85b2 (patch)
tree6049a31e5e4bdddb6bf2f7ecfb24c37a6478efe9 /config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
parent2dcb262db7e0087cb7f2ea455c732fd1ea84dd6b (diff)
Add error handler for XML parsing
Will output name of source if there is a warning or error
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java36
1 files changed, 17 insertions, 19 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
index 0e0f992952a..8985dac91aa 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java
@@ -4,27 +4,16 @@ package com.yahoo.config.model;
import com.yahoo.config.application.api.ApplicationFile;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.ConfigModelContext.ApplicationType;
-import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
import com.yahoo.config.model.builder.xml.XmlHelper;
+import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.graph.ModelGraphBuilder;
import com.yahoo.config.model.graph.ModelNode;
+import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.model.provision.HostsXmlProvisioner;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.TreeMap;
-import java.util.logging.Level;
import com.yahoo.path.Path;
import com.yahoo.text.XML;
-import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.builder.VespaModelBuilder;
import com.yahoo.vespa.model.clients.Clients;
@@ -32,13 +21,22 @@ import com.yahoo.vespa.model.content.Content;
import com.yahoo.vespa.model.routing.Routing;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
-import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+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;
/**
@@ -91,7 +89,7 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
builder.postProc(deployState.getDeployLogger(), root, this);
}
- private Element getServicesFromApp(ApplicationPackage applicationPackage) throws IOException, SAXException {
+ private Element getServicesFromApp(ApplicationPackage applicationPackage) throws IOException {
try (Reader servicesFile = applicationPackage.getServices()) {
return getServicesFromReader(servicesFile);
}
@@ -188,8 +186,8 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
return permanentServices;
}
- private Element getServicesFromReader(Reader reader) throws IOException, SAXException {
- Document doc = XmlHelper.getDocumentBuilder().parse(new InputSource(reader));
+ private Element getServicesFromReader(Reader reader) {
+ Document doc = XmlHelper.getDocument(reader);
return doc.getDocumentElement();
}
@@ -274,10 +272,10 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter
}
// TODO: Doctoring on the XML is the wrong level for this. We should be able to mark a model as default instead -Jon
- private static Element getImplicitAdmin(DeployState deployState) throws IOException, SAXException {
+ private static Element getImplicitAdmin(DeployState deployState) {
String defaultAdminElement = deployState.isHosted() ? getImplicitAdminV4() : getImplicitAdminV2();
log.log(Level.FINE, () -> "No <admin> defined, using " + defaultAdminElement);
- return XmlHelper.getDocumentBuilder().parse(new InputSource(new StringReader(defaultAdminElement))).getDocumentElement();
+ return XmlHelper.getDocument(new StringReader(defaultAdminElement)).getDocumentElement();
}
private static String getImplicitAdminV2() {