private DeploymentSpec.UpgradePolicy readUpgradePolicy(Element root) { Element upgradeElement = XML.getChild(root, "upgrade"); if (upgradeElement == null) return DeploymentSpec.UpgradePolicy.defaultPolicy; String policy = upgradeElement.getAttribute("policy"); switch (policy) { case "canary" : return DeploymentSpec.UpgradePolicy.canary; case "default" : return DeploymentSpec.UpgradePolicy.defaultPolicy; case "conservative" : return DeploymentSpec.UpgradePolicy.conservative; default : throw new IllegalArgumentException("Illegal upgrade policy '" + policy + "': " + "Must be one of " + Arrays.toString(DeploymentSpec.UpgradePolicy.values())); } }