summaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-07-31 16:53:06 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2017-07-31 16:53:06 +0200
commit463a3493d68f4e55930a570617334a9541385ad5 (patch)
tree7abb5c3d0123d0a79a598c36875594a7b7f697d3 /config-application-package
parentb4fc7b0ea0f710b04ebe64c6c4a9f981b6b0c25d (diff)
Validate validation-overrides.xml files
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java34
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java1
2 files changed, 12 insertions, 23 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
index 3f4a944cb44..29002d8a685 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/ApplicationPackageXmlFilesValidator.java
@@ -22,7 +22,7 @@ public class ApplicationPackageXmlFilesValidator {
private final AppSubDirs appDirs;
- /** The Vespa version this package tshould be validated against */
+ /** The Vespa version this package should be validated against */
private final Version vespaVersion;
private static final FilenameFilter xmlFilter = (dir, name) -> name.endsWith(".xml");
@@ -43,9 +43,10 @@ public class ApplicationPackageXmlFilesValidator {
@SuppressWarnings("deprecation")
public void checkApplication() throws IOException {
- validateHostsFile(SchemaValidator.hostsXmlSchemaName);
- validateServicesFile(SchemaValidator.servicesXmlSchemaName);
- validateDeploymentFile(SchemaValidator.deploymentXmlSchemaName);
+ validate(SchemaValidator.servicesXmlSchemaName, servicesFileName());
+ validateOptional(SchemaValidator.hostsXmlSchemaName, FilesApplicationPackage.HOSTS);
+ validateOptional(SchemaValidator.deploymentXmlSchemaName, FilesApplicationPackage.DEPLOYMENT_FILE.getName());
+ validateOptional(SchemaValidator.validationOverridesXmlSchemaName, FilesApplicationPackage.VALIDATION_OVERRIDES.getName());
if (appDirs.searchdefinitions().exists()) {
if (FilesApplicationPackage.getSearchDefinitionFiles(appDirs.root()).isEmpty()) {
@@ -67,32 +68,19 @@ public class ApplicationPackageXmlFilesValidator {
}
}
- @SuppressWarnings("deprecation")
- private void validateHostsFile(String hostsXmlSchemaName) throws IOException {
- if (appDirs.file(FilesApplicationPackage.HOSTS).exists()) {
- validate(hostsXmlSchemaName, FilesApplicationPackage.HOSTS);
- }
- }
-
- private void validateServicesFile(String servicesXmlSchemaName) throws IOException {
- // vespa-services.xml or services.xml. Fallback to vespa-services.xml
- validate(servicesXmlSchemaName, servicesFileName());
- }
-
- private void validateDeploymentFile(String deploymentXmlSchemaName) throws IOException {
- if (appDirs.file(FilesApplicationPackage.DEPLOYMENT_FILE.getName()).exists()) {
- validate(deploymentXmlSchemaName, FilesApplicationPackage.DEPLOYMENT_FILE.getName());
- }
+ private void validateOptional(String schema, String file) throws IOException {
+ if ( ! appDirs.file(file).exists()) return;
+ validate(schema, file);
}
- private void validate(String schemaName, String xmlFileName) throws IOException {
- createSchemaValidator(schemaName, vespaVersion).validate(appDirs.file(xmlFileName));
+ private void validate(String schema, String file) throws IOException {
+ createSchemaValidator(schema, vespaVersion).validate(appDirs.file(file));
}
@SuppressWarnings("deprecation")
private String servicesFileName() {
String servicesFile = FilesApplicationPackage.SERVICES;
- if (!appDirs.file(servicesFile).exists()) {
+ if ( ! appDirs.file(servicesFile).exists()) {
throw new IllegalArgumentException("Application package in " + appDirs.root() +
" must contain " + FilesApplicationPackage.SERVICES);
}
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java
index f5c5206d75c..70da2f2e92e 100644
--- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java
+++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java
@@ -43,6 +43,7 @@ public class SchemaValidator {
static final String servicesXmlSchemaName = "services.rnc";
static final String hostsXmlSchemaName = "hosts.rnc";
static final String deploymentXmlSchemaName = "deployment.rnc";
+ static final String validationOverridesXmlSchemaName = "validation-overrides.rnc";
private final CustomErrorHandler errorHandler = new CustomErrorHandler();
private final ValidationDriver driver;
private DeployLogger deployLogger;