Eclipse Yasson Creation Review

Type: 
Creation
State: 
Successful
End Date of the Review Period: 

Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.

Wednesday, November 2, 2016
Project: 
Proposal: 

Eclipse Yasson

Parent Project: 
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.

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
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.

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.

People
Project Leads: 
Interested Parties: 

Oracle

Mentors: