From 6450f3fbf69d22b123a3ff26702364c8046f7240 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Mon, 28 Aug 2017 15:27:01 +0200 Subject: Refactor schema validation setup * Try to avoid hardcoding and having to specify version several times * Make sure to only copy schema files once --- .../src/main/java/com/yahoo/config/model/test/TestDriver.java | 10 +++++----- .../src/main/java/com/yahoo/vespa/model/VespaModelFactory.java | 3 +-- .../java/com/yahoo/config/model/ApplicationDeployTest.java | 5 +++-- .../config/model/application/provider/SchemaValidatorTest.java | 2 +- .../vespa/model/test/utils/VespaModelCreatorWithFilePkg.java | 6 ++++-- .../vespa/model/test/utils/VespaModelCreatorWithMockPkg.java | 9 +++++---- 6 files changed, 19 insertions(+), 16 deletions(-) (limited to 'config-model/src') diff --git a/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java b/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java index 55c522025fb..b538468d0bc 100644 --- a/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java +++ b/config-model/src/main/java/com/yahoo/config/model/test/TestDriver.java @@ -5,7 +5,8 @@ import com.google.common.annotations.Beta; import com.yahoo.component.Version; import com.yahoo.config.model.MapConfigModelRegistry; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.model.application.provider.SchemaValidator; +import com.yahoo.config.model.application.provider.BaseDeployLogger; +import com.yahoo.config.model.application.provider.SchemaValidators; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.builder.xml.ConfigModelBuilder; import com.yahoo.vespa.model.VespaModel; @@ -102,11 +103,10 @@ public class TestDriver { if (!validate) { return; } - SchemaValidator validator = SchemaValidator.createTestValidatorHosts(new Version(6)); + SchemaValidators schemaValidators = new SchemaValidators(new Version(6), new BaseDeployLogger()); if (appPkg.getHosts() != null) { - validator.validate(appPkg.getHosts()); + schemaValidators.hostsXmlValidator().validate(appPkg.getHosts()); } - validator = SchemaValidator.createTestValidatorServices(new Version(6)); - validator.validate(appPkg.getServices()); + schemaValidators.servicesXmlValidator().validate(appPkg.getServices()); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java index 215aa6c2f7f..c3014b077c0 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java @@ -98,8 +98,7 @@ public class VespaModelFactory implements ModelFactory { modelContext.modelVespaVersion()); try { validator.checkApplication(); - ApplicationPackageXmlFilesValidator.checkIncludedDirs(modelContext.applicationPackage(), - modelContext.modelVespaVersion()); + validator.checkIncludedDirs(modelContext.applicationPackage()); } catch (IllegalArgumentException e) { rethrowUnlessIgnoreErrors(e, ignoreValidationErrors); } catch (Exception e) { diff --git a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java index ee2e6ffcc74..92083545027 100644 --- a/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/ApplicationDeployTest.java @@ -242,9 +242,10 @@ public class ApplicationDeployTest { public FilesApplicationPackage createAppPkg(String appPkg, boolean validateXml) throws IOException { final FilesApplicationPackage filesApplicationPackage = FilesApplicationPackage.fromFile(new File(appPkg)); if (validateXml) { - ApplicationPackageXmlFilesValidator validator = ApplicationPackageXmlFilesValidator.createTestXmlValidator(new File(appPkg), new Version(6)); + ApplicationPackageXmlFilesValidator validator = + ApplicationPackageXmlFilesValidator.createTestXmlValidator(new File(appPkg), new Version(6)); validator.checkApplication(); - ApplicationPackageXmlFilesValidator.checkIncludedDirs(filesApplicationPackage, new Version(6)); + validator.checkIncludedDirs(filesApplicationPackage); } return filesApplicationPackage; } diff --git a/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java b/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java index 42659755186..fda230e22ab 100644 --- a/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/config/model/application/provider/SchemaValidatorTest.java @@ -65,6 +65,6 @@ public class SchemaValidatorTest { } private SchemaValidator createValidator() throws IOException { - return SchemaValidator.createTestValidatorServices(new Version(6)); + return new SchemaValidators(new Version(6)).servicesXmlValidator(); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java index 7802b6f51cd..cb95d3e5424 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithFilePkg.java @@ -45,8 +45,10 @@ public class VespaModelCreatorWithFilePkg { } public void validate() throws IOException { - ApplicationPackageXmlFilesValidator.createTestXmlValidator(applicationPkg.getAppDir(), new Version(6)).checkApplication(); - ApplicationPackageXmlFilesValidator.checkIncludedDirs(applicationPkg, new Version(6)); + ApplicationPackageXmlFilesValidator validator = + ApplicationPackageXmlFilesValidator.createTestXmlValidator(applicationPkg.getAppDir(), new Version(6)); + validator.checkApplication(); + validator.checkIncludedDirs(applicationPkg); } public VespaModel create(boolean validateApplicationWithSchema) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java index 98e9fd7b166..8bb500906f3 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/utils/VespaModelCreatorWithMockPkg.java @@ -6,8 +6,8 @@ import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.ConfigModelRegistry; import com.yahoo.config.model.NullConfigModelRegistry; import com.yahoo.config.model.api.ConfigChangeAction; +import com.yahoo.config.model.application.provider.SchemaValidators; import com.yahoo.config.model.deploy.DeployState; -import com.yahoo.config.model.application.provider.SchemaValidator; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.Validation; @@ -56,14 +56,15 @@ public class VespaModelCreatorWithMockPkg { VespaModel model = new VespaModel(configModelRegistry, deployState); Version vespaVersion = new Version(6); if (validate) { + SchemaValidators validators = new SchemaValidators(vespaVersion); try { if (appPkg.getHosts() != null) { - SchemaValidator.createTestValidatorHosts(vespaVersion).validate(appPkg.getHosts()); + validators.hostsXmlValidator().validate(appPkg.getHosts()); } if (appPkg.getDeployment().isPresent()) { - SchemaValidator.createTestValidatorDeployment(vespaVersion).validate(appPkg.getDeployment().get()); + validators.deploymentXmlValidator().validate(appPkg.getDeployment().get()); } - SchemaValidator.createTestValidatorServices(vespaVersion).validate(appPkg.getServices()); + validators.servicesXmlValidator().validate(appPkg.getServices()); } catch (Exception e) { System.err.println(e.getClass()); throw e instanceof RuntimeException ? (RuntimeException) e : new RuntimeException(e); -- cgit v1.2.3