jdegoes_issue_430
Updated 1 year, 3 months ago
| John De Goes | Reviewers | ||
| dchenbecker, dpp, marius, charles, joni, atsuhiko, jorge, naftoli, kris, indrajit, alexb, dlouwers, mstarzyk, rmellgren, jhoffman, probinett, jmadsen, mhartmann, jstrachan, jgoday | |||
| None | LiftWeb-archive | ||
XSchema has been added to Lift Json. XSchema is an Avro-style JSON-based schema for data structures, tailored to functional languages, with code generators for Scala and HaXe. The goal of this project is to support stable, robust, long-term persistence of pure data, along with generation of appropriate type classes (data ordering, equality, etc.).
XSchema is self-hosting, so all XSchema data structures are described by XSchema and generated by XSchema (the format of XSchema files is merely the XSchema-serialized XSchema data structures). XSchema generates a full suite of automated unit tests to make sure the user has specified appropriate defaults and to ensure that the code generator is working correctly. XSchema is also used in production at SocialMedia.com, with performance much faster than Java serialization or Lift Json serialization.
Posted 1 year, 6 months ago (August 3rd, 2010, 7:12 p.m.)
I skimmed through perhaps 1/4th of the commit and ran out of time, but here are some disorganized questions/comments: lift-json/benchmark seems like test stuff that should live somewhere in src/test
Based on the change to pom.xml to use xschema-maven-plugin, shouldn't Data.scala (and any other codegen'ed files) not be committed, but instead be built by maven/sbt into generated-sources?
This is a fantastic addition! Some comments: In Extraction.scala lines 288 and 295, should those List instantiations be at object level? Now list allocation is done for each function evaluation. Some documentation should be added (but can be done after this initial push), either a new README file or addition to the existing one.
