FlatPack entity serialization library
Java JavaScript
Permalink
Failed to load latest commit information.
apidoc-plugin
apidoc [maven-release-plugin] prepare for next development iteration Nov 18, 2013
client [maven-release-plugin] prepare for next development iteration Nov 18, 2013
core Remove dangling injections. Jan 6, 2014
demo-client [maven-release-plugin] prepare for next development iteration Nov 18, 2013
demo-server [maven-release-plugin] prepare for next development iteration Nov 18, 2013
eclipse-plugin prefixing license files Jul 26, 2012
fast-plugin Add fluent setters to the java dialect. Jan 8, 2014
fast Have fluent mutators call the setter to initialized the field so dirt… Jan 8, 2014
jersey [maven-release-plugin] prepare for next development iteration Nov 18, 2013
policy
search Make PackScope reentrant. Dec 15, 2013
thirdparty [maven-release-plugin] prepare for next development iteration Nov 18, 2013
.gitignore Squash merge of security branch from 5a0a1fc. Oct 15, 2013
README.md Update master Jun 27, 2012
com.getperka.flatpack.flatpack-parent-LICENSE.txt prefixing license files Jul 26, 2012
pom.xml [maven-release-plugin] prepare for next development iteration Nov 18, 2013

README.md

FlatPack Serialization Framework

FlatPack is serialization framework used by Perka to make its JPA entities available via REST to JavaScript, iOS, and Android clients.

Goals

  • Serialize arbitrary JPA object graphs into payloads that can be processed easily in non-Java environments.
  • Support role- and principal-based security on property access.
  • Integration with jax-rs (specifically Jersey).
  • Straightforward code generation of client libraries and documentation.
  • Minimize developer friction

Thirty-Second Tour

  • apidoc and apidoc-plugin are used during the maven build process to make JavaDoc strings available to ApiDescriber.
  • client provides support code for generated client libraries.
  • core contains the serialization logic. The central types are FlatPack, Packer, and Unpacker.
  • demo-client and demo-server show a very simple JAX-RS server and how to use generated client code. The demo-client module also contains smoke-tests.
  • eclipse-plugin contains an m2eclipse connector for the FlatPack plugins. A pre-built drop-in is available at from the project downloads.
  • fast and fast-plugin, the FlatPack Automatic Source Tool, take an ApiDescription and generate client access libraries consisting of DTO objects and API request methods.
  • jersey wires FlatPack into Jersey's request dispatch logic. The ApiDescriber type will produce a FlatPack description of the API server's methods and entities.
  • search is utility code.

More Information

Additional documentation is available in the FlatPack wiki.