Mansart est la couche persistance de l’écosystème Vidocq. Elle implémente Jakarta Data 1.0 (repositories déclaratifs) et Jakarta Persistence 3.2 (JPA), aux côtés d’un gestionnaire de transactions Jakarta Transactions 2.0 et d’un pool de connexions JDBC virtual-thread-natif. Quatre briques découplées, une seule SPI dialecte SQL, génération statique APT + Class-File API — pas de réflexion à chaud, pas de proxy dynamique.
Origine du nom
Jules Hardouin-Mansart (1646-1708), Premier architecte du Roi sous Louis XIV. On lui doit la galerie des Glaces de Versailles, le dôme des Invalides, la place Vendôme, le Grand Trianon. Il dirigeait l’Académie royale d’architecture, codifiait les ordres, négociait avec maçons et sculpteurs. L’œuvre tient debout depuis trois siècles parce que chaque pièce a été conçue pour s’imbriquer dans la suivante, et parce qu’on ne confondait pas le décor avec la structure.
Mansart, la couche persistance, applique le même découpage : la base d’un système d’information ne se voit pas, mais elle porte tout le reste. Voir la fiche Wikipédia.
En un coup d’œil
Specs implémentées |
Jakarta Data 1.0 + Jakarta Persistence 3.2 (M7 en attente) + Jakarta Transactions 2.0 |
Repo |
|
Java |
25 (LTS) |
Modules JPMS |
|
Dépendances runtime |
Specs Jakarta uniquement ( |
Threading |
Virtual Threads partout — pas de pool plateforme, propagation transactionnelle via |
Codegen |
APT (métamodèle, |
TCK |
✅ Jakarta Data 1.0 73/73 (M7) — voir état détaillé. Jakarta Transactions 2.0 — smoke 5/5 ; suite complète en M6c. |
Sous-modules
Mansart se décompose en quatre sous-projets indépendants en runtime, organisés en couches :
| Sous-module | Rôle | Page dédiée |
|---|---|---|
|
Pool JDBC virtual-thread-natif, zéro-dep, alternative à HikariCP. |
|
|
Gestionnaire de transactions Jakarta Transactions 2.0 ( |
|
|
Implémentation Jakarta Data 1.0 — repositories, query methods, JDQL, dialectes JDBC (H2, PostgreSQL). |
|
|
Implémentation Jakarta Persistence 3.2 (JPA classique). En conception — |
Architecture en couches
Chaque couche s’utilise indépendamment : mansart-pool est un DataSource autonome, mansart-transactions ne connaît pas Jakarta Data, et mansart-jakarta-data peut tourner sans pool Mansart si l’application apporte le sien.
Positionnement dans l’écosystème
flowchart LR
VIDOCQ[xref:vidocq::index.adoc[Vidocq Runtime]] --> MANSART[Mansart]
VAUBAN[xref:vauban::index.adoc[Vauban CDI]] -.@Repository.-> MANSART
VAUBAN -.@Transactional.-> MANSART
MANSART --> JDK[Java 25 JDBC]
Vauban fournit le bootstrap CDI (BCE) qui découvre les @Repository et les transforme en beans @ApplicationScoped, et l’intercepteur @Transactional. Vidocq Runtime orchestre le packaging et le démarrage.