Files
Anatolii Sakhnik 249595d688 Redesign JSON validation against schema
: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>
2013-09-20 02:03:42 -07:00
..