public static void checkServices(Reader reader, Version version) throws IOException { new SchemaValidators(version).servicesXmlValidator().validate(reader); } }
/** * 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) { File schemaDir = null; try { schemaDir = saveSchemasFromJar(new File(SchemaValidators.schemaDirBase), vespaVersion); servicesXmlValidator = createValidator(schemaDir, servicesXmlSchemaName); hostsXmlValidator = createValidator(schemaDir, hostsXmlSchemaName); deploymentXmlValidator = createValidator(schemaDir, deploymentXmlSchemaName); validationOverridesXmlValidator = createValidator(schemaDir, validationOverridesXmlSchemaName); containerIncludeXmlValidator = createValidator(schemaDir, containerIncludeXmlSchemaName); routingStandaloneXmlValidator = createValidator(schemaDir, routingStandaloneXmlSchemaName); } catch (IOException ioe) { throw new RuntimeException(ioe); } catch (Exception e) { throw e; } finally { if (schemaDir != null) IOUtils.recursiveDeleteDir(schemaDir); } }
private void validateRouting(Tuple2<File, String> directory) throws IOException { if ( ! directory.first.isDirectory()) return; validateRouting(validators.routingStandaloneXmlValidator(), directory); }
private void validate(ApplicationPackage appPkg) throws IOException { if (!validate) { return; } SchemaValidators schemaValidators = new SchemaValidators(new Version(VespaVersion.major)); if (appPkg.getHosts() != null) { schemaValidators.hostsXmlValidator().validate(appPkg.getHosts()); } schemaValidators.servicesXmlValidator().validate(appPkg.getServices()); } }
@SuppressWarnings("deprecation") public void checkApplication() throws IOException { validate(validators.servicesXmlValidator(), servicesFileName()); validateOptional(validators.hostsXmlValidator(), FilesApplicationPackage.HOSTS); validateOptional(validators.deploymentXmlValidator(), FilesApplicationPackage.DEPLOYMENT_FILE.getName()); validateOptional(validators.validationOverridesXmlValidator(), FilesApplicationPackage.VALIDATION_OVERRIDES.getName()); if (appDirs.searchdefinitions().exists()) { if (FilesApplicationPackage.getSearchDefinitionFiles(appDirs.root()).isEmpty()) { throw new IllegalArgumentException("Application package in " + appDirs.root() + " must contain at least one search definition (.sd) file when directory searchdefinitions/ exists."); } } validateRouting(appDirs.routingtables); }
private ApplicationPackageXmlFilesValidator(AppSubDirs appDirs, Version vespaVersion) { this.appDirs = appDirs; this.validators = new SchemaValidators(vespaVersion); }
JarEntry je = entries.nextElement(); if (je.getName().startsWith("schema/") && je.getName().endsWith(".rnc")) { writeContentsToFile(tmpDir, je.getName(), jarFile.getInputStream(je)); schemaPath = new File(pathPrefix); log.log(LogLevel.DEBUG, "Using schemas found in " + schemaPath); copySchemas(schemaPath, tmpDir); } else { log.log(LogLevel.DEBUG, String.format("Saving schemas for model bundle %s:%s", bundle.getSymbolicName(), bundle writeContentsToFile(tmpDir, url.getFile(), url.openStream()); copySchemas(schemaPath, tmpDir);
public void checkIncludedDirs(ApplicationPackage app) throws IOException { for (String includedDir : app.getUserIncludeDirs()) { List<NamedReader> includedFiles = app.getFiles(Path.fromString(includedDir), ".xml", true); for (NamedReader file : includedFiles) { validators.containerIncludeXmlValidator().validate(file); } } }