diff options
Diffstat (limited to 'config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java index 0b49325756d..35021d1b44a 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java @@ -33,6 +33,22 @@ public class DeploymentSpecXmlReader { private static final String blockChangeTag = "block-change"; private static final String prodTag = "prod"; + private final boolean validate; + + /** Creates a validating reader */ + public DeploymentSpecXmlReader() { + this(true); + } + + /** + * Creates a reader + * + * @param validate true to validate the input, false to accept any input which can be unabiguously parsed + */ + public DeploymentSpecXmlReader(boolean validate) { + this.validate = validate; + } + public DeploymentSpec read(Reader reader) { try { return read(IOUtils.readAll(reader)); @@ -47,7 +63,8 @@ public class DeploymentSpecXmlReader { List<Step> steps = new ArrayList<>(); Optional<String> globalServiceId = Optional.empty(); Element root = XML.getDocument(xmlForm).getDocumentElement(); - validateTagOrder(root); + if (validate) + validateTagOrder(root); for (Element environmentTag : XML.getChildren(root)) { if ( ! isEnvironmentName(environmentTag.getTagName())) continue; |