This proposal has been approved and the Eclipse Yasson project has been created.
Visit the project page for the latest information and development.

Eclipse Yasson

Monday, September 26, 2016 - 10:28 by Dmitry Kornilov
This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

This project is a reference implementation of JSON Binding API (JSR-367).

Currently it's hosted as part of EclipseLink project. It was historically done this way by the previous JSONB spec lead. I don't agree with this approach because these projects are not related. This is why I started efforts of creating a new project for Yasson.

Scope

These are the goals of the API are as it described in the spec:

  • Support binding (serialization and deserialization) for all RFC 7159-compatible JSON documents.
  • JSON-related specifications will be surveyed to determine their relationship to JSON-Binding.
  • Maintain consistency with JAXB (Java API for XML Binding) and other Java EE and SE APIs where appropriate.
  • Define default mapping of Java classes and instances to JSON document counterparts.
  • Allow customization of the default mapping definition.
  • Default use of the APIs should not require prior knowledge of the JSON document format and specification.
  • Define or enable integration with JSR 374: Java API for JSON Processing (JSON-P) 1.1.

The following are non-goals:

  • The specification recommends, but does not require equivalence of content for deserialized and serialized JSON documents.
  • Generation of JSON Schema from Java classes, as well as validation based on JSON schema.
  • Support and integration with Lightweight JSON API as defined within JEP 198 is out of scope of this specification. Will be reconsidered in future specification revisions.
Description

This project provides a Java API for JSON Binding; it is designed to provide a standard binding layer between Java classes and JSON documents.

See projects page on JCP.org for more information.

This proposal is created for JSONB API reference implementation.

Why Here?

It's already here. It's a part of EclipseLink project. The goal is moving it to a separate project.

Future Work

After the first version is released we are planning to start working on the second version which will come as part of JAVA EE 9.

Project Scheduling

All functionalty required by JSONB 1.0 spec is implemented. The snapshot version is already released. We need to continue working on optimizations. The final release is planned in the second quiarter of 2017.

Project Leads
Interested Parties

Oracle

Initial Contribution

The initial version contains fully implemented functionality. It's at the alpha stage.

Copyright is hold by Oracle.

Dependencies:

Compile:

  • javax.json.bind:javax.json.bind-api:1.0-SNAPSHOT
  • javax.json:javax.json-api:1.0
  • javax.enterprise:cdi-api:1.2

Runtime:

  • org.glassfish:javax.json:1.0.4

Test:

  • junit:junit:4.12
  • org.jboss.weld:weld-core:2.3.3.Final
  • org.jboss.weld.se:weld-se:2.3.3.Final
Source Repository Type