JsonValidator: remove obsolete command

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Fix version in pom.xml

Next will be 0.5.1, there is one major bug to fix...

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
JsonSchema: make it really thread-safe

This was not the case: the schema node and container were shared between
instances. Now they are unique per validation

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
SelfValidationTest: run it in parallel

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Get rid of the SchemaNode class

It didn't really have a reason to exist anymore. The container is also in the
validation context.

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

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Fix code sample in org.eel.kitchen/jsonschema/keyword package

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

ChangeLog:
    * JsonSchema was not really thread safe, fix.
    * Remove one unneeded class.
    * Add parallel validation testing.

Francis Galiegue (9):
      JsonValidator: remove obsolete command
      Fix version in pom.xml
      JsonSchema: make it really thread-safe
      SelfValidationTest: run it in parallel
      Get rid of the SchemaNode class
      SyntaxChecker: update Javadoc
      Fix code sample in org.eel.kitchen/jsonschema/keyword package

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
SchemaContainer: re-implement equals()/hashCode()

We will need it for ref resolution caching.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Implement ref resolution caching

For this, we use Guava's LoadingCache (again) and a package-private JsonResolver
class. RefResolverJsonValidator now uses it.

Also add a shortcut: if the node has no $ref, we don't need resolution.

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

This allows JsonSchemaFactory to get rid of all validator specific methods.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
New validator cache mechanism

It means a lot of Javadoc needs to be written again :/

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
JsonValidator: get rid of .next()

It is now unused.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Some minor code optimizations

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
SchemaNode: change .equals()/.hashCode() implementation

Since these are used very often, both need to be as fast as possible.

Unimplement them in SchemaContainer and instead compute equality using the
container's locator: a same locator cannot have different contents.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
InstanceValidator: make it package local

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

Some minor fixes again.

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

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Add tests for JsonResolver

It is a critical part enough that it needs to be tested. Test local and cross
context ref loops and dangling refs.

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

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