Modality is a lightweight but hightly configurable Java ORM, with a companion set of tools
Encompases a data access layer, a hierarchical and reentrant model definition gathering SQL queries, database values, names custom filters and much more. See modality-core's REAME.
Usage: include the needed module(s) in your pom.xml
's dependencies section as follow:
<dependency>
<groupId>com.republicate.modality</groupId>
<artifactId>modality-core</artifactId>
<version>1.0</version>
</dependency>
While the ORM is usable on its own or within other Java/Kotlin web frameworks, the project comes with a companion set of tools which stick to the J2EE and JDBC standards to provide a lightweight, loosely coupled and highly cusomizable MVC pull architecture based on the Java J2EE servlets API.
Its design is based on a bottom-up approach rather than top-down. This makes Modality an anti-framework: its various components do stick to the underlying norms, have a minimal interdependance and just do the specific task they are intended to, leveraging the learning curve and added complexity, and nevertheless those components assembly cover all the basic needs of a fully functional MVC webapp.
- the Model layer is addressed with a generic ORM Java API witouth any code generation and with minimal optional caching, providing a complete database structure reverse enginering feature.
- the View layer is Apache Velocity, but other Java View layer technologies can easily be used instead.
- the Control layer is decentralized in URI to path conventions (like serving basedir
/foo.vhtml
forGET /foo.vhtml
), configuration files and helpers. It can easily be blended in existing frameworks.
Components:
- modality-core - Core Modality library.
- modality-api-client - API client utility for JSON/XML APIs.
- modality-webapp - servlets and filters for Modality-core configuration and initialization in a J2EE webapp environment.
- modality-webapp-auth - authentication filters assortment.
- velocity-tools-model - view layer model tool which encapsulates modality-core model objects for use with Apache Velocity Tools.