mirror of
https://github.com/openwebos/libpbnjson
synced 2026-11-07 11:32:49 -05:00
:Release Notes: Remove previous schema implementation, remove useless tests. Integrate new schema implementation, add temporary support for "extends" and type "any". Deliver schema parsing errors somehow. :Detailed Notes: Legacy implementation was the bottle-neck for validation performance. Since jvalue was validated during parsing and generation, it impacted the performance drastically. The key problems of it were: parsing schema into jvalue, then interpreting it allocating much memory even without need. New implementation on the other hand, parses JSON schema directly into a dedicated hierarchical data structure Validator, which is aware of validation. The validator is biased for fast validation in expense of preprocessing during construction. Advanced techniques are used: LALR(1) parser generation with LEMON, gperf for keyword recognition, glib for basic containers implementation. :Testing Performed: Unit tests passed, unit tests with memory checker passed. Smoke test on TV passed. :QA Notes: :Issues Addressed: [GF-13496] pbnjson: Redesign validation against schema [GF-35713] Make new validator compatible with the old one. [GF-35717] Fix small issues after validator integration. [GF-8140] Upgrade libpbnjson to YAJL-2 Open-webOS-DCO-1.0-Signed-off-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com> Change-Id: I890063e635b304e61ff9fc62e50e346eb4418dea Reviewed-on: https://g2g.palm.com/3323 Reviewed-by: Build Verification Reviewed-by: Mykola Kryvonos <mykola.kryvonos@lge.com> Tested-by: Mykola Kryvonos <mykola.kryvonos@lge.com> Reviewed-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com> Tested-by: Anatolii Sakhnik <anatolii.sakhnik@lge.com> Reviewed-by: Keith Derrick <keith.derrick@lge.com> Reviewed-by: Alekseyev Oleksandr <alekseyev.oleksandr@lge.com>