Skip to content

Roadmap

fge edited this page Sep 16, 2012 · 127 revisions

In 1.3

Rework id support (in progress)

Support both canonical addressing and inner schema addressing, via a feature. Or an addressing mode?

Candidate features

Not necessarily in order!

Include name and description in error messages

When reporting error messages, right now we only mention the keyword causing the failure. JSON Schema has name and description, but right now these are completely ignored.

Try and insert them?

Android support

Android is a platform with many potential uses for such a library. Check compatibility, and see the cost to make the library fully compatible.

Accepting input from other JSON libraries

Jackson is the library to use for anyone wanting to do JSON in Java, but there are plenty others. Design an interface of some sort so that people can transform their existing JSON data to JsonNode.

Probably required for Android support...

(There already exists a toy implementation in test sources which can transform Gson's JsonElement to JsonNode and back, with tests, and it works quite well -- I fail to see how I would integrate that however)

Make URIs from various sources

The main problem: exceptions vary. For instance, File's .getCanonicalFile().toURI() throws an IOException, but URL's .toURI() throws a URISyntaxException. All exceptions would need to be wrapped, and it should also be ensured that no unchecked exceptions are thrown.

Also, define "sources". Files and URLs are two obvious candidates. Strings? InputStreams?

Last but not least: how can this integrate nicely and transparently?

Add a main?

Could be nice... That would mean creating a manifest (obviously) and also find a way to create a "complete" jar, ie a jar including all dependencies. TODO: check whether licenses get in the way.

"Validation only" mode

Stop at first validation failure, even non fatal; no messages are collected.

Useful if you are only interested in whether your JSON is valid and don't care about what errors crept in.

The problem: disallow.

Clone this wiki locally