vidocq-runtime-extensions est l’ensemble des extensions livrées d’office, regroupées par domaine sous cinq agrégateurs (essentials, jakartaee-core, jakartaee-web, microprofile, module-repackaged). Chaque feuille est un artefact Maven indépendant, activé par simple ajout en dépendance par l’application utilisateur.

Coordonnées

Artefact parent

io.vidocq.runtime.extensions:vidocq-runtime-extensions:0.2.0

Source

vidocq-runtime-extensions/

Catalogue

Extension Agrégateur Rôle

vidocq-runtime-chappe-webserver-extension

essentials

Branche Chappe comme transport HTTP/1.1, H2, H3. Bind configuré via vidocq.http.host / vidocq.http.port.

vidocq-runtime-migration-extension

essentials

Façade de migration de schéma — exécute le moteur configuré avant l’ouverture de la datasource.

vidocq-runtime-flyway-migration-extension

essentials

Migrations de schéma via Flyway.

vidocq-runtime-liquibase-migration-extension

essentials

Migrations de schéma via Liquibase.

vidocq-runtime-cassini-rest-extension

jakartaee-core

Branche Cassini pour Jakarta REST 4.0. Routage statique généré au build (artefact compagnon -codegen), CDI via Vauban.

vidocq-runtime-mansart-pool-extension

jakartaee-web

Pool de connexions JDBC via Mansart Pool (compagnon -datasources-codegen pour les holders multi-datasources).

vidocq-runtime-mansart-data-extension

jakartaee-web

Jakarta Data 1.0 via Mansart — scanne @Repository, implémentations générées par APT (compagnon -codegen).

vidocq-runtime-mansart-transactions-extension

jakartaee-web

Gère @Transactional via mansart-transactions (compagnon -codegen).

vidocq-runtime-ravel-config-extension

microprofile

https://microprofile.io/specifications/microprofile-config/ via Ravel — sources externes, profils, conversion typée.

vidocq-runtime-knock-health-extension

microprofile

https://microprofile.io/specifications/microprofile-health/ via Knock — endpoints /q/health/{live,ready,started}.

vidocq-runtime-dirac-metrics-extension

microprofile

https://microprofile.io/specifications/microprofile-metrics/ via Dirac — endpoint Prometheus.

vidocq-runtime-grimm-openapi-extension

microprofile

https://microprofile.io/specifications/microprofile-open-api/ via Grimm — document généré à la compilation (le compagnon -ui sert le visualiseur).

vidocq-runtime-cervantes-jwt-extension

microprofile

MicroProfile JWT Auth via Cervantes.

vidocq-runtime-cyrano-rest-client-extension

microprofile

MicroProfile REST Client via Cyrano — proxys générés par APT.

vidocq-runtime-humboldt-telemetry-extension

microprofile

MicroProfile Telemetry via Humboldt — traces, métriques, logs, export OTLP/HTTP.

vidocq-runtime-heisenberg-fault-tolerance-extension

microprofile

MicroProfile Fault Tolerance via Heisenberg — intercepteurs @Retry, @Timeout, @CircuitBreaker, @Bulkhead, @Fallback (CDI pur, sans endpoint HTTP ; métriques Dirac et télémétrie Humboldt optionnelles).

CDI (Vauban) et JSON (Champollion) ne sont pas des extensions autonomes : Vauban est le moteur intégré à vidocq-runtime-core, et Champollion arrive transitivement avec l’extension REST.

Prévu : une extension Jakarta Servlet 6.1 branchant Foy au-dessus de Chappe.

Cycle de vie type — exemple Chappe

L’extension vidocq-runtime-chappe-webserver-extension illustre le pattern. Quatre points d’ancrage :

Phase Acteur Priorité Action

configure

ChappeEngineExtension

100

installe ChappeMountPoint

onStart

Contributeurs (REST, Servlet)

500–9999

appellent mount(…​)

onStart

ChappeServerBootstrap

10000

démarre un Server par listener

onStop

ChappeServerBootstrap

10000

arrête les serveurs proprement

Les autres extensions suivent une logique d’ordonnancement comparable, avec leurs propres priorités.

Activation par dépendance

Une extension est activée dès qu’elle est présente sur le module-path. Aucune annotation @EnableX n’est requise — l’index APT détecte le provides VidocqExtension Java Modules.

<dependency>
    <groupId>io.vidocq.runtime.extensions.jakartaee.core</groupId>
    <artifactId>vidocq-runtime-cassini-rest-extension</artifactId>
    <version>0.2.0</version>
</dependency>

Pour aller plus loin

  • SPI — comment écrire une nouvelle extension

  • État TCK — couverture par extension

  • Concepts — vocabulaire d’extension