diff options
author | Harald Musum <musum@oath.com> | 2018-09-20 12:36:51 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-09-20 12:36:51 +0200 |
commit | d3ce5363de4109870d6993b21e307d6999d01ba1 (patch) | |
tree | 7bb90bc5b3b18861002103f9264931cdb3199b44 /config-application-package | |
parent | d06c943b265e1e635f6b2a61358778db29f787c3 (diff) |
Minor schema validator cleanup
Diffstat (limited to 'config-application-package')
4 files changed, 12 insertions, 28 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 8e9c5c0b509..74ade9d8e14 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 @@ -26,9 +26,9 @@ public class ApplicationPackageXmlFilesValidator { private static final FilenameFilter xmlFilter = (dir, name) -> name.endsWith(".xml"); - public ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, Version vespaVersion) { + private ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, Version vespaVersion) { this.appDirs = appDirs; - this.validators = new SchemaValidators(vespaVersion, new BaseDeployLogger()); + this.validators = new SchemaValidators(vespaVersion); } public static ApplicationPackageXmlFilesValidator create(File appDir, Version vespaVersion) { 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 50268fc1e08..16469bb13ae 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 @@ -82,15 +82,15 @@ public class SchemaValidator { private class CustomErrorHandler implements ErrorHandler { volatile String fileName; - public void warning(SAXParseException e) throws SAXException { + public void warning(SAXParseException e) { deployLogger.log(Level.WARNING, message(e)); } - public void error(SAXParseException e) throws SAXException { + public void error(SAXParseException e) { throw new IllegalArgumentException(message(e)); } - public void fatalError(SAXParseException e) throws SAXException { + public void fatalError(SAXParseException e) { throw new IllegalArgumentException(message(e)); } diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java index 783f7361ad5..a28f771c37b 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidators.java @@ -2,7 +2,6 @@ package com.yahoo.config.model.application.provider; import com.yahoo.component.Version; -import com.yahoo.config.application.api.DeployLogger; import com.yahoo.io.IOUtils; import com.yahoo.log.LogLevel; import org.osgi.framework.Bundle; @@ -40,8 +39,6 @@ public class SchemaValidators { private static final String routingStandaloneXmlSchemaName = "routing-standalone.rnc"; - private final DeployLogger deployLogger; - private final SchemaValidator servicesXmlValidator; private final SchemaValidator hostsXmlValidator; private final SchemaValidator deploymentXmlValidator; @@ -54,8 +51,7 @@ public class SchemaValidators { * * @param vespaVersion the version of Vespa we should validate against */ - public SchemaValidators(Version vespaVersion, DeployLogger logger) { - this.deployLogger = logger; + public SchemaValidators(Version vespaVersion) { File schemaDir = null; try { schemaDir = saveSchemasFromJar(new File(SchemaValidators.schemaDirBase), vespaVersion); @@ -75,15 +71,6 @@ public class SchemaValidators { } } - /** - * Initializes the validator by using the given file as schema file - * - * @param vespaVersion the version of Vespa we should validate against - */ - public SchemaValidators(Version vespaVersion) { - this(vespaVersion, new BaseDeployLogger()); - } - public SchemaValidator servicesXmlValidator() { return servicesXmlValidator; } @@ -104,7 +91,7 @@ public class SchemaValidators { return containerIncludeXmlValidator; } - public SchemaValidator routingStandaloneXmlValidator() { + SchemaValidator routingStandaloneXmlValidator() { return routingStandaloneXmlValidator; } @@ -114,22 +101,20 @@ public class SchemaValidators { * @return the directory the schema files are stored in * @throws IOException if it is not possible to read schema files */ - File saveSchemasFromJar(File tmpBase, Version vespaVersion) throws IOException { + private File saveSchemasFromJar(File tmpBase, Version vespaVersion) throws IOException { final Class<? extends SchemaValidators> schemaValidatorClass = this.getClass(); final ClassLoader classLoader = schemaValidatorClass.getClassLoader(); Enumeration<URL> uris = classLoader.getResources("schema"); if (uris == null) return null; File tmpDir = java.nio.file.Files.createTempDirectory(tmpBase.toPath(), "vespa").toFile(); - log.log(LogLevel.DEBUG, "Will save all XML schemas to " + tmpDir); + log.log(LogLevel.DEBUG, "Will save all XML schemas found in jar to " + tmpDir); while (uris.hasMoreElements()) { URL u = uris.nextElement(); log.log(LogLevel.DEBUG, "uri for resource 'schema'=" + u.toString()); if ("jar".equals(u.getProtocol())) { JarURLConnection jarConnection = (JarURLConnection) u.openConnection(); JarFile jarFile = jarConnection.getJarFile(); - for (Enumeration<JarEntry> entries = jarFile.entries(); - entries.hasMoreElements(); ) { - + for (Enumeration<JarEntry> entries = jarFile.entries(); entries.hasMoreElements(); ) { JarEntry je = entries.nextElement(); if (je.getName().startsWith("schema/") && je.getName().endsWith(".rnc")) { writeContentsToFile(tmpDir, je.getName(), jarFile.getInputStream(je)); @@ -168,7 +153,6 @@ public class SchemaValidators { return tmpDir; } - // TODO: This only copies schema for services.xml. Why? private static void copySchemas(File from, File to) throws IOException { // TODO: only copy .rnc files. if (! from.exists()) throw new IOException("Could not find schema source directory '" + from + "'"); @@ -187,7 +171,7 @@ public class SchemaValidators { private SchemaValidator createValidator(File schemaDir, String schemaFile) { try { File file = new File(schemaDir + File.separator + "schema" + File.separator + schemaFile); - return new SchemaValidator(file, deployLogger); + return new SchemaValidator(file, new BaseDeployLogger()); } catch (SAXException e) { throw new RuntimeException("Invalid schema '" + schemaFile + "'", e); } catch (IOException e) { diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SimpleApplicationValidator.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SimpleApplicationValidator.java index 9db254bc742..1284d315058 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SimpleApplicationValidator.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SimpleApplicationValidator.java @@ -14,6 +14,6 @@ import java.io.Reader; public class SimpleApplicationValidator { public static void checkServices(Reader reader, Version version) throws IOException { - new SchemaValidators(version, new BaseDeployLogger()).servicesXmlValidator().validate(reader); + new SchemaValidators(version).servicesXmlValidator().validate(reader); } } |