Mansart is the persistence layer of the Vidocq ecosystem. It implements Jakarta Data 1.0 (declarative repositories) and Jakarta Persistence 3.2 within its documented scope, alongside a Jakarta Transactions 2.0 transaction manager and a virtual-thread-native JDBC connection pool. Independent bricks, separate Data/JPA dialect SPIs, APT + Class-File API entity access — no reflective entity-state access or dynamic proxies.
Origin of the name
Jules Hardouin-Mansart (1646-1708), First Architect to King Louis XIV. He designed the Hall of Mirrors at Versailles, the Invalides dome, the Place Vendôme, the Grand Trianon. He led the Royal Academy of Architecture, codified the architectural orders, negotiated with masons and sculptors. His work has stood for three centuries because every piece was designed to fit into the next, and decoration was never confused with structure.
The Mansart persistence layer applies the same separation: the foundation of an information system is invisible, yet it carries everything else. See the Wikipedia entry.
At a glance
Specs implemented |
Jakarta Data 1.0 + Jakarta Persistence 3.2 (scope-based P0–P12 delivery) + Jakarta Transactions 2.0 |
Repository |
|
Java |
25 (LTS) |
Java modules |
|
Runtime dependencies |
Jakarta specs only ( |
Threading |
Virtual threads everywhere — no platform pool. The transaction context is carried in a |
Codegen |
APT (metamodel, |
TCK |
Jakarta Data 1.0 74/74; Persistence 2131 passes and four official skips with local fixture patch TCK-BUG-001 (not certification); Transactions smoke 5/5. See detailed status. |
Sub-modules
Mansart breaks down into four runtime-independent sub-projects, organized as layers:
| Sub-module | Role | Dedicated page |
|---|---|---|
|
Virtual-thread-native JDBC pool, zero-dep, alternative to HikariCP. |
|
|
Jakarta Transactions 2.0 transaction manager ( |
|
|
Jakarta Data 1.0 implementation — repositories, query methods, JDQL, JDBC dialects (H2, PostgreSQL). |
|
|
Jakarta Persistence 3.2: EntityManager, JPQL/Criteria, mapping, cache and validation integration; P0–P12 delivered within documented boundaries. Maven parent |
Layered architecture
Each layer can be used independently: mansart-pool is a standalone DataSource, mansart-transactions does not know about Jakarta Data, and mansart-jakarta-data works without the Mansart pool if the application supplies its own.