Skip to content

Latest commit

 

History

History
80 lines (64 loc) · 5.62 KB

README.md

File metadata and controls

80 lines (64 loc) · 5.62 KB

CII Best Practices Maintainability Rating Reliability Rating Security Rating Quality Gate Status Bugs Code Smells Technical Debt Coverage Last Commit Maven Central Code Size License Slack Gitter Twitter

MapMaid

MapMaid serializes, deserializes and validates Java objects in a clean and non-invasive way. It deeply understands and respects the concepts of Domain-Driven Design.

Rationale

Almost any modern application nowadays is dealing with mapping incoming requests to domain objects and outputting resulting domain objects to a specific format (typically JSON, XML or YAML).

As a result, we keep writing the same code over and over again:

  • Parse strings into domain objects
  • Validate the objects on initialization
  • Process the requests
  • Serialize the response objects

While there are numerous frameworks that help you on some of the stages of this process, we believe there is a need for a simple, non-invasive library that would allow you to integrate this process into your application seamlessly and concentrate on your business logic.

Highlighted features

  • Designed for Domain-Driven Design:

    • MapMaid automatically understands factory methods
    • MapMaid understands the concept of Custom Primitives or Value Types
    • MapMaid understands the concept of Serialized Objects
  • No Magic - MapMaid is using your objects the same way as a programmer:

    • MapMaid will not read nor write private fields
    • MapMaid will not write values into final fields
    • MapMaid will not invoke private methods
    • MapMaid will not generate dynamic proxies
    • MapMaid will not generate bytecode
    • MapMaid does not favour the use of annotations
  • Domain-Driven Validation:

    • MapMaid allows you to check for validation exceptions and aggregates them accordingly
    • You will know precisely which field of which object was faulty
    • MapMaid also offers ways to detect redundant validation exceptions
  • Non-intrusive usage and configuration:

    • Configuration in one place
    • No annotations
    • Simple adaptation to your specific style of defining objects
    • No dependencies to serialization and validation frameworks in your domain code
  • Flexible:

    • Support for all common data formats (JSON, XML and YAML)
    • Serialize and deserialize any object of any class - no matter how weird their structure

Getting started

MapMaid is part of the QuantumMaid framework which provides easy-to-follow and interesting tutorials.

The MapMaid documentation can be found here.

Get in touch

Feel free to join us on Slack or Gitter to ask questions, give feedback or just discuss software architecture with the team behind MapMaid. Also, don't forget to visit our website and follow us on Twitter!