-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Modabi is a *Mo*dular *Da*ta *Bi*nding library for Java, which aims to provide users with the most flexible and comprehensive feature set possible.
New users may want to begin by reading through the Getting Started section, looking through some Examples, or checking out the following features.
-
Format agnosticism, with Supported Data Formats including XML, YAML and compressed binary blobs out of the box.
-
Binding rules also double as format verification, and are specified through an expressive hierarchical Schema Definition Format…
-
…Which is itself defined and bound by a provided [[Meta-Schema|Schema Definition Format#meta-schema]], such that schemata can be authored in any supported format.
-
Clean and easy to use API for binding and unbinding data.
-
Binding to interface rather than implementation, perfect for Dependency Injection environments.
-
An impressive level of Type-Safety, to catch problems with schema definitions during compilation.
-
Support for complex binding rules with the schema definition format, including e.g. binding to the Builder Pattern, to make it as easy as possible to work with existing APIs without modification.
-
Extensive and flexible Logging and Error Reporting.
-
Document Editing support including error highlighting, and the updating of text based document formats with minimal modification.
-
Support for Concurrency in binding and unbinding where appropriate.
-
GUI Framework for building systems for interacting with data.
-
Strong OSGi Compatibility.
-
Annotation Processing for automatic generation of schemata directly from class definition.
-
A comprehensive set of Eclipse Plugins for working with schemata, and for developing advanced tooling on top of Modabi. Integration with other tooling environments should also be straightforward.
-
Build Plugins for Gradle and Maven for performing annotation processing and document verification.
Modabi does not aim to be the best tool for every job! Here are some reasons you might want to choose other tools:
-
Modabi is not in the same class of performance as, for example, JiBX.
-
If you are already using something like DTDs or W3C XML Schema, you may see the validation capabilities provided by the binding rules specified in the Schema Definition Format as a duplication of work, since the two things must be kept in sync if you are not willing or able to let go of this legacy.
-
Though we strive to make sure simple use-cases can be expressed in simple terms, having what we feel to be such a flexible system can present a significant learning curve in some cases compared with more well known solutions.