diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-10-16 10:10:12 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-10-16 10:10:12 +0200 |
commit | deffec3130034d9f216a096678724ab1de339569 (patch) | |
tree | 387d6fb7af27e4e892751947a182235c1ae6e12d /config-model-api/src | |
parent | ba9fe4df8dfd75ccaafab6888fb67bff9999ce92 (diff) |
Don't validate when reading stored applications
Diffstat (limited to 'config-model-api/src')
2 files changed, 29 insertions, 3 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java index b86c0a5ca94..eda38f95054 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java @@ -187,9 +187,18 @@ public class DeploymentSpec { * @throws IllegalArgumentException if the XML is invalid */ public static DeploymentSpec fromXml(String xmlForm) { - return new DeploymentSpecXmlReader().read(xmlForm); + return fromXml(xmlForm, true); } - + + /** + * Creates a deployment spec from XML. + * + * @throws IllegalArgumentException if the XML is invalid + */ + public static DeploymentSpec fromXml(String xmlForm, boolean validate) { + return new DeploymentSpecXmlReader(validate).read(xmlForm); + } + public static String toMessageString(Throwable t) { StringBuilder b = new StringBuilder(); String lastMessage = null; 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; |