summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-10-16 10:10:12 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-10-16 10:10:12 +0200
commitdeffec3130034d9f216a096678724ab1de339569 (patch)
tree387d6fb7af27e4e892751947a182235c1ae6e12d /config-model-api
parentba9fe4df8dfd75ccaafab6888fb67bff9999ce92 (diff)
Don't validate when reading stored applications
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java13
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java19
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;