JSR Java API fr JSON Binding (JSON- B) Title: * Java API fr JSON Binding (JSON- B) Summary: * A standard binding layer (metadata & runtime) fr cnverting Java bjects t/frm JSON messages. Sectin 1: Identificatin JCP Member submitting this prpsal: * Oracle Crpratin Name f Cntact Persn: * Martin Grebac E- Mail Address: * martin.grebac@racle.cm Telephne Number: * Fax Number: * Name f Specificatin Lead: * Martin Grebac E- Mail Address: * martin.grebac@racle.cm Telephne Number: * Fax Number: * Initial Grup Membership: Oracle Supprting this JSR: * Oracle
Sectin 2: Request 2.1 Please describe the prpsed Specificatin: * JSON has grwn cnsiderably as a prtable means t represent bjects and data. It is used by mre and mre systems and layers, ranging frm web services t cnfiguratin data. The recently established Java API fr JSON Prcessing (JSON- P) specificatin defines a standard API fr parsing and generating JSON data. The next lgical step is t standardize a way t cnvert JSON int Java bjects and vice versa. JSON- B will leverage JSON- P and prvide a cnversin layer abve it. JSON- B will be the standard binding layer fr cnverting Java bjects t/frm JSON messages. A default mapping algrithm will be defined fr cnverting existing Java classes t JSON. The default mappings can be custmized thrugh the use f Java anntatins and will be leveraged by the JSON- B runtime t cnvert Java bjects t/frm JSON. JSON- B will be useful t a number f the upper layers, such as JAX- RS. The requirements f these layers may be cmplex and include such features as bidirectinal mappings and cmpsite key supprt. Such requirements, as well as thers that may be discussed, will be cnsidered and incrprated as time permits. As JAXB has been a successful platfrm fr XML binding, JSON- B will have a similar feel. This will make it easier fr JSON- B t be adpted by Java SE and Java EE develpers. 2.2 What is the target Java platfrm? (i.e., desktp, server, persnal, embedded, card, etc.) * This JSR is targeted fr Java SE 7 r higher and Java EE 7 r higher platfrms. 2.3 The Executive Cmmittees wuld like t ensure JSR submitters think abut hw their prpsed technlgy relates t all f the Java platfrm editins. Please prvide details here fr which platfrm editins are being targeted by this JSR, and hw this JSR has cnsidered the relatinship with the ther platfrm editins.* This JSR will wrk with Java EE 7 and will be targeted fr inclusin in Java EE 8. 2.4 What need f the Java cmmunity will be addressed by the prpsed specificatin? * There is currently a need in JAX- RS t cnvert bjects t/frm JSON messages. The cmmunity is currently frced t d ne f the fllwing: D the cnversin themselves Use JAXB with libraries like Jettisn t get a gd enugh cnversin. Use prprietary tls, resulting in nn- prtable applicatins. Many services (Twitter, Ggle Gecding API, etc) are ffering data via JSON messages that Java develpers need t interact with as Java bjects. Sme such as Twitter are even drpping the XML versin f these APIs.
2.5 Why isn't this need met by existing specificatins? * Java API fr JSON Prcessing (JSON- P) JSR The abve JSR prvides a generic mdel t represent a JSON message. JSON- B will bind the JSON message t a real bject dmain mdel. Java API fr XML Binding (JAXB) JSR The JSON databinding need is currently being addressed by the JAXB specificatin tgether with libraries that expse JSON messages via StAX APIs. Hwever, this apprach faces fllwing prblems: Sme f the JAXB mapping cncepts have n JSON equivalent: namespaces, substitutin grups, etc. Prblems can arise when these mappings are used t prduce JSON messages. It is difficult t prduce JSON messages with cllectins f size ne. This is due t a difference in the way JSON and XML represent cllectins. The JAXB apprach assumes that the XML and JSON messages have same general structure and names. 2.6 Please give a shrt descriptin f the underlying technlgy r technlgies: * Java API fr JSON Prcessing (JSON- P) will be leveraged t parse the JSON messages 2.7 Is there a prpsed package name fr the API Specificatin? (i.e., javapi.smething, rg.smething, etc.) * javax.jsn.bind 2.8 Des the prpsed specificatin have any dependencies n specific perating systems, CPUs, r I/O devices that yu knw f? * N 2.9 Are there any security issues that cannt be addressed by the current security mdel? * N 2.10 Are there any internatinalizatin r lcalizatin issues? * This specificatin uses the I18N supprt in Java SE 2.11 Are there any existing specificatins that might be rendered bslete, deprecated, r in need f revisin as a result f this wrk? * N 2.12 Please describe the anticipated schedule fr the develpment f this specificatin: * Q3 2014 Expert grup frmed Q1 2014 Early draft Q3 2015 Public review
Q1 2016 Prpsed final draft Q3 2016 Final Release 2.13 Please describe the anticipated wrking mdel fr the Expert Grup wrking n develping this specificatin.: * The primary means f cmmunicatin will be email, with weekly cnference calls and a pssibility f face- t- face meetings. 2.14 Prvide detailed answers t the transparency checklist, making sure t include URLs as apprpriate.: * Is the schedule fr the JSR publicly available, current, and updated regularly? Schedule will be available n the java.net prject page fr the JSR: https://java.net/prjects/jsnb-spec/ Can the public read and/r write t a wiki fr the JSR? Public mailing list will be used fr cmments (users@jsnb-spec.java.net) Is there a publicly accessible discussin bard fr the JSR that yu read and respnd t regularly? Public mailing list will be used fr cmments (users@jsnb-spec.java.net) Have yu spken at cnferences and events abut the JSR recently? N. Are yu using pen-surce prcesses fr the develpment f the RI and/r the TCK? Yes. What are the Terms f Use required t use the cllabratin tls yu have prepared t use with the Expert Grup, s that prspective EG members can judge whether they are cmpatible with the JSPA? Terms f use f java.net: http://www.java.net/javanet-web-site-terms-use What is the lcatin f yur publicly-accessible Issue list? In rder t enable EC members t judge whether Issues have been adequately addressed, the list must make a clear distinctin between Issues that are still pen, Issues that have been deferred, and thse that are clsed, and must indicate the reasn fr any change f state. JIRA is part f the JSR java.net prject, will be linked frm there; https://java.net/jira/brwse/jsonb_spec What is the mechanism fr the public t prvide feedback n yur JSR? Public mailing list will be used fr cmments (users@jsnb-spec.java.net) Where is the publicly-accessible dcument archive fr yur Expert Grup? At the java.net prject page fr the JSR. Des the Cmmunity tab fr my JSR have links t and infrmatin abut all public cmmunicatin mechanisms and sites fr the develpment f my JSR? Yes, it will. D yu have a Twitter accunt r ther scial netwrking feed which peple can fllw fr updates n yur JSR? Public user list and prject site will be used t prvide updates n the JSR. Which specific areas f feedback shuld interested cmmunity members (such as the Adpt-a-JSR prgram) prvide t imprve the JSR (please als pst this t yur Cmmunity tab)? Technical feedback fr individual parts f the JSR is welcme. 2.15 Please describe hw the RI and TCK will be delivered, i.e. as part f a prfile r platfrm editin, r stand- alne, r bth. Include versin infrmatin fr the prfile r platfrm in yur answer.: * The RI and TCK will be prvided stand- alne, and will be included in the Java EE 8 RI and TCK. 2.16 Please state the ratinale if previus versins are available stand- alne and yu are nw prpsing in 2.16 t nly deliver RI and TCK as part f a prfile r platfrm editin (See sectins 1.1.5 and 1.1.6 f the JCP 2 dcument).: * N/A
2.17 Please prvide the full text f the licenses that will apply t yur Final Release Specificatin, Reference Implementatin and Technlgy Cmpatibility Kit, r prvide links t the same.: * TBD 2.18 Please describe the cmmunicatin channel yu have established fr the public t bserve Expert Grup deliberatins, prvide feedback, and view archives f all Expert Grup cmmunicatins. JSR Java.net prject will cntain publicly available mailing lists, archives, and dcument dwnlad areas. Fr mre details, please refer t the transparency sectin abve. 2.19 What is the URL f the Issue Tracker that the public can read, and hw des the public lg issues in the Issue Tracker? https://java.net/jira/brwse/jsonb_spec/ URL will be als prvided at the JSR java.net prject page. JIRA use is described in JIRA dcumentatin https://cnfluence.atlassian.cm/display/jira/creating+an+issue 2.20 Please prvide the lcatin f the publicly accessible dcument archive yu have created fr the Expert Grup: https://java.net/prjects/jsnb- spec/dwnlads The URL will als be linked frm the JSR prject web page. Sectin 3: Cntributins 3.1 Please list any existing dcuments, specificatins, r implementatins that describe the technlgy. Please include links t the dcuments if they are publicly available. * JSON - http://jsn.rg/ Open Surce Object- t- JSON Implementatins EclipseLink MOXy (http://www.eclipse.rg/eclipselink/mxy.php) Jacksn (http://jacksn.cdehaus.rg/) Ggle GSON (http://cde.ggle.cm/p/ggle- gsn/) XStream (http://xstream.cdehaus.rg/) Gensn (http://cde.ggle.cm/p/gensn/) JSON- P (JSR- 353) - http://jcp.rg/en/jsr/detail?id=353 3.2 Explanatin f hw these items might be used as a starting pint fr the wrk. * There is nw enugh industry experience with bject- t- JSON binding that the lessns learned frm current implementatins can be leveraged t frm a Java standard that will add value t the Java stack.
Sectin 4: Additinal Infrmatin 4.1 This sectin cntains any additinal infrmatin that the submitting Member wishes t include in the JSR. There are several pen surce bject- t- JSON binding slutins available tday. The leads f these prjects will be invited t jin this expert grup.