use of org.leadpony.justify.api.JsonSchema in project che-server by eclipse-che.
the class DevfileSchemaValidator method validate.
public void validate(JsonNode contentNode) throws DevfileFormatException {
try {
List<Problem> validationErrors = new ArrayList<>();
ProblemHandler handler = ProblemHandler.collectingTo(validationErrors);
String devfileVersion = devfileVersionDetector.devfileVersion(contentNode);
if (!schemasByVersion.containsKey(devfileVersion)) {
throw new DevfileFormatException(String.format("Version '%s' of the devfile is not supported. Supported versions are '%s'.", devfileVersion, SUPPORTED_VERSIONS));
}
JsonSchema schema = schemasByVersion.get(devfileVersion);
try (JsonReader reader = service.createReader(new StringReader(jsonMapper.writeValueAsString(contentNode)), schema, handler)) {
reader.read();
}
if (!validationErrors.isEmpty()) {
String error = errorMessageComposer.extractMessages(validationErrors, new StringBuilder());
throw new DevfileFormatException(error);
}
} catch (DevfileException dfe) {
throw new DevfileFormatException(format("Devfile schema validation failed. Error: %s", dfe.getMessage()));
} catch (IOException e) {
throw new DevfileFormatException("Unable to validate Devfile. Error: " + e.getMessage());
}
}
use of org.leadpony.justify.api.JsonSchema in project devspaces-images by redhat-developer.
the class DevfileSchemaValidator method validate.
public void validate(JsonNode contentNode) throws DevfileFormatException {
try {
List<Problem> validationErrors = new ArrayList<>();
ProblemHandler handler = ProblemHandler.collectingTo(validationErrors);
String devfileVersion = devfileVersionDetector.devfileVersion(contentNode);
if (!schemasByVersion.containsKey(devfileVersion)) {
throw new DevfileFormatException(String.format("Version '%s' of the devfile is not supported. Supported versions are '%s'.", devfileVersion, SUPPORTED_VERSIONS));
}
JsonSchema schema = schemasByVersion.get(devfileVersion);
try (JsonReader reader = service.createReader(new StringReader(jsonMapper.writeValueAsString(contentNode)), schema, handler)) {
reader.read();
}
if (!validationErrors.isEmpty()) {
String error = errorMessageComposer.extractMessages(validationErrors, new StringBuilder());
throw new DevfileFormatException(error);
}
} catch (DevfileException dfe) {
throw new DevfileFormatException(format("Devfile schema validation failed. Error: %s", dfe.getMessage()));
} catch (IOException e) {
throw new DevfileFormatException("Unable to validate Devfile. Error: " + e.getMessage());
}
}
use of org.leadpony.justify.api.JsonSchema in project selenium_java by sergueik.
the class SchemaCatalog method findRootSchema.
private JsonSchema findRootSchema(URI id) {
JsonSchema schema = cache.get(id);
if (schema != null) {
return schema;
}
Location resource = get(id);
if (resource == null) {
return null;
}
schema = readReferencedSchema(resource);
if (schema != null) {
cache.put(id, schema);
return schema;
} else {
return null;
}
}
use of org.leadpony.justify.api.JsonSchema in project selenium_java by sergueik.
the class Validate method readSchemaCatalogAt.
private void readSchemaCatalogAt(Location location) {
console.print(READ_CATALOG, location);
JsonSchema schema = readSchemaFromResource("catalog.schema.json");
List<Problem> problems = new ArrayList<>();
ProblemHandler handler = createProblemHandler(problems);
try (JsonParser parser = service.createParser(openCatalog(location), schema, handler)) {
parseCatalog(parser, location);
if (!problems.isEmpty()) {
console.withColor(Color.DANGER).print(CATALOG_INVALID, location, Problems.countLeast(problems));
throw new CommandException(CATALOG_FAILED);
}
} catch (JsonParsingException e) {
console.withColor(Color.DANGER).print(CATALOG_MALFORMED, e);
throw new CommandException(CATALOG_FAILED);
} catch (JsonException e) {
throw new CommandException(e);
}
}
use of org.leadpony.justify.api.JsonSchema in project mosaic by eclipse.
the class ObjectInstantiation method validateFile.
private void validateFile(InputStream input, InputStream schemaInput) throws InstantiationException {
final JsonValidationService service = JsonValidationService.newInstance();
final JsonSchema schema = service.readSchema(schemaInput);
final List<String> problems = new ArrayList<>();
final ProblemHandler handler = service.createProblemPrinter(problems::add);
try (JsonParser parser = service.createParser(input, schema, handler)) {
while (parser.hasNext()) {
parser.next();
// ignore, we let GSON do the parsing later.
}
}
if (!problems.isEmpty()) {
StringBuilder errorMessage = new StringBuilder();
problems.forEach((p) -> {
errorMessage.append(p);
errorMessage.append(NEWLINE);
});
throw new InstantiationException("The " + clazz.getSimpleName() + " config is not valid: " + errorMessage);
}
}
Aggregations