Releases: leadpony/justify
Releases · leadpony/justify
v0.15.0
0.15.0 - 2019-03-31
Added
- New
JsonValidatorFactoryBuilder
interface for building configured instances ofJsonParserFactory
orJsonReaderFactory
. - Support of
default
keyword in the validations. The missing properties and/or items in the source instances are filled with the default values provided by the keyword. BothJsonParser
andJsonReader
support this feature.JsonParser
produces additional events caused by the default values andJsonReader
expands objects and arrays with the additional values. This feature is disabled by default and can be enabled explicitly bywithDefaultValues()
inJsonValidatorFactoryBuilder
.
Fixed
- The bug which was causing
getArrayStream()
,getObjectStream()
, andgetValueStream()
inJsonParser
to throw wronglyUnsupportedOperationException
in the case that they should throwIllegalStateException
. (Issue #10)
v0.14.0
0.14.0 - 2019-03-18
Added
getPointer()
method inProblem
interface which provides the location of the problem in the JSON instance as a JSON pointer. (Proposed originally by @mshaposhnik and the implementation is supported by @erdi)ProblemPrinterBuilder
interface to build configured problem printers, such as printers with problem locations omitted.JsonValidationService#createProblemPrinterBuilder()
to create instances ofProblemPrinterBuilder
.
Changed
- New problem printer outputs the messages including JSON pointers in addition to line and column numbers by default.
- The evaluation of
uniqueItems
keyword is now deferred until the end of the array. - The evaluation of false boolean schema for
properties
,patternProperties
, andadditionalProperties
keywords is now deferred until the value of the property.
Fixed
- Fix broken Javadoc links to the JDK.
v0.13.0
0.13.0 - 2019-02-27
Added
- JsonSchemaReaderFactoryBuilder#withCustomFormatAttributes() method for deactivating custom format attributes.
- [CLI] Options to resolve remote schema references. (Issue #4 proposed by @kerrykimbrough)
Changed
- [CLI] Revised completely with new syntax.
v0.12.0
0.12.0 - 2019-02-08
Added
- JsonSchema#containsKeyword() which tests whether a schema contains the specified keyword or not.
- JsonSchema#defaultValue() which returns the value of the "default" keyword.
- JsonSchema#hasAbsoluteId() which tests whether a schema has an "$id" whose value is an absolute URI.
- JsonSchema#getInPlaceSubschemas() which returns the subschemas which will be applied to the same instance location as the owning schema.
- Detection of infinite recursive looping while reading schemas.
Changed
- JsonSchema#subschemas() and subschemaAt() were renamed to getSubschemas() and getSubschemaAt(), respectively.
Fixed
v0.11.0
0.11.0 - 2019-01-26
Added
- comment(), title() and description() methods to JsonSchema interface
to obtain the keyword value respectively. - JsonSchemaReaderFactory and JsonSchemaReaderFactoryBuilder as API interfaces.
- JsonSchemaReaderFactoryBuilder#withStrictWithKeywords().
With this option enabled, the schema reader reports a problem when it
encounters an unrecognized schema keyword. - JsonSchemaReaderFactoryBuilder#withStrictWithFormats().
With this option enabled, the schema reader reports a problem when it
encounters an unrecognized format attribute. - [CLI] -strict option which forces the schema validator to report
a problem when it finds an unrecognized keyword or format attribute.
This is useful for detecting misspelled keywords and format attributes.
Changed
- Move withSchemaResolver() method in JsonSchemaReader to JsonSchemaReaderFactoryBuilder interface.
- BranchProblem interface was merged with Problem interface and removed.
Fixed
- A bug which was causing JSON schemas to be valid even if they are unclosed JSON objects.
v0.10.0
0.10.0 - 2019-01-02
Added
- Support of contentEncoding and contentMediaType keywords.
Changed
- Rename schemaId() to schema() in JsonSchema.
- Rename withItem() to withItems() in JsonSchemaBuilder.
Fixed
- A bug which was causing definitions/dependencies/patternProperties/properties to disappear from the read schema when they are empty.