×

Status message

This proposal has been approved and the Eclipse Yasson project has been created.

Eclipse Yasson

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

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: 
Mentors: 
Interested Parties: 

Oracle

Source Code
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: 
Juan Moreno's picture

Hi!  Link to github repository is incorrect, please update to https://github.com/eclipse/yasson

Best regards