Main: default to loading schemas using the current directory as a URI

Easily done since we already ensured schema existence by building a list of
canonical files from the arguments.

See issue #94.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Main: improve help

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Improve help for main

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Depend on -core 1.2.1 to fix Rhino bug

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Fill in RELEASE-NOTES and CONTRIBUTORS

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Output syntax errors when throwing an InvalidSchemaException

For this, depend on -core 1.2.3 (which fixes a missing key) and walk the
previous report to search for syntax errors; append these to the
ProcessingMessage we use to initialize the exception.

Fixes issue #99.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Fix libJar task: add different classifier

"appendix" is not enough.
Depend on local -SNAPSHOT

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Make test to reproduce issue #102

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
SchemaContextEquivalence: remove reference to SchemaTreeEquivalence

Use SchemaTree's equals()/hashCode() instead

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
ValidationChain: drop use of SchemaTreeEquivalence

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Modify tests; add a message for validation loops

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
ValidationProcessor: don't cache {Array,Object}SchemaSelector results anymore

Given the issue, the plan is to create a ValidationProcessor for each
validation. As such, caching these doesn't make sense anymore.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Deprecate a constructor of FullData

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
New class InstanceValidator

The existing ValidationProcessor is not easily modifiable to fulfill the needs
highlighted by issue #102. A ThreadLocal may be used, but that would make the
code rather convoluted.

Instead, create a new InstanceValidator class with the same signature; the
ValidationProcessor (which is unique per JsonSchemaFactory) will then create an
instance of that class for each attempted schema/instance validation pair.

This means the InstanceValidator instance will be what keyword validators will
use, instead of the ValidationProcessor.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
ValidationProcessor: receive the cached processor directly from the factory

There is no point in building it into the processor itself.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Fix issue #102

As planned; create an instance of InstanceValidator for each schema/instance
validation pair and act on that.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Improve error message

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
InstanceValidator: improve test, documentation, error message

Also rewrite a schema for a more simple example

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
More documentation

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>