vidocq-runtime-extensions is the set of extensions shipped out of the box, grouped by domain under five aggregators (essentials, jakartaee-core, jakartaee-web, microprofile, module-repackaged). Each leaf is an independent Maven artefact, activated by the user simply adding it as a dependency.
Coordinates
Parent artefact |
|
Source |
|
Catalogue
| Extension | Aggregator | Role |
|---|---|---|
|
|
Wires Chappe as HTTP/1.1, H2, H3 transport. Configures bind via |
|
|
Schema-migration facade — runs the configured migration engine before the datasource opens. |
|
|
Flyway-based schema migrations. |
|
|
Liquibase-based schema migrations. |
|
|
Wires Cassini for Jakarta REST 4.0. Static routing generated at build (companion |
|
|
JDBC connection pooling via Mansart Pool (companion |
|
|
Jakarta Data 1.0 via Mansart — scans |
|
|
Handles |
|
|
https://microprofile.io/specifications/microprofile-config/ via Ravel — external sources, profiles, typed conversion. |
|
|
https://microprofile.io/specifications/microprofile-health/ via Knock — |
|
|
https://microprofile.io/specifications/microprofile-metrics/ via Dirac — Prometheus endpoint. |
|
|
https://microprofile.io/specifications/microprofile-open-api/ via Grimm — document generated at compile time ( |
|
|
MicroProfile JWT Auth via Cervantes. |
|
|
MicroProfile REST Client via Cyrano — proxies generated by APT. |
|
|
MicroProfile Telemetry via Humboldt — traces, metrics, logs, OTLP/HTTP export. |
|
|
MicroProfile Fault Tolerance via Heisenberg — |
CDI (Vauban) and JSON (Champollion) are not standalone extensions: Vauban is the engine built into vidocq-runtime-core, and Champollion ships transitively with the REST extension.
Planned: a Jakarta Servlet 6.1 extension wiring Foy on top of Chappe.
Typical lifecycle — Chappe example
The vidocq-runtime-chappe-webserver-extension extension illustrates the pattern. Four hook points:
| Phase | Actor | Priority | Action |
|---|---|---|---|
|
|
100 |
installs |
|
Contributors (REST, Servlet) |
500–9999 |
call |
|
|
10000 |
starts a |
|
|
10000 |
shuts servers down cleanly |
Other extensions follow comparable scheduling logic with their own priorities.
Activation by dependency
An extension activates as soon as it is on the module-path. No @EnableX annotation is required — the APT index detects the Java Modules provides VidocqExtension declaration.
<dependency>
<groupId>io.vidocq.runtime.extensions.jakartaee.core</groupId>
<artifactId>vidocq-runtime-cassini-rest-extension</artifactId>
<version>0.2.0</version>
</dependency>
Next steps
-
SPI — how to write a new extension
-
TCK status — coverage by extension
-
Concepts — extension vocabulary