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, jpms-repackaged). Each leaf is an independent Maven artefact, activated by the user simply adding it as a dependency.

Coordinates

Parent artefact

io.vidocq.runtime.extensions:vidocq-runtime-extensions:0.1.0-SNAPSHOT

Source

vidocq-runtime-extensions/

Catalogue

Extension Status Role

vidocq-runtime-chappe-webserver-extension

Shipped

Wires Chappe as HTTP/1.1, H2, H3 transport. Configures bind via vidocq.http.host / vidocq.http.port.

vidocq-runtime-vauban-extension

Shipped

Wires Vauban as the CDI 4.1 Lite engine. Indexes beans at build time via APT.

vidocq-runtime-cassini-rest-extension

Shipped

Wires Cassini for Jakarta REST 4.0. Generates static routing at build, bridges CDI via Vauban.

vidocq-runtime-servlet-chappe-extension

Shipped (~90 % Servlet 6.1 TCK)

Wires Foy on top of Chappe for Jakarta Servlet 6.1.

vidocq-runtime-champollion-extension

Shipped

Wires Champollion for JSON-P 2.1 and JSON-B 3.0. Triggers APT generation at build.

vidocq-runtime-mansart-extension

Shipped

Wires Mansart (Jakarta Data 1.0 + JDBC). Initialises the pool, scans @Repository, generates implementations via APT.

vidocq-runtime-mansart-transactions-extension

Shipped

Handles @Transactional via mansart-transactions.

vidocq-runtime-config-extension

Planned

https://microprofile.io/specifications/microprofile-config/ — external sources, profiles, typed conversion.

vidocq-runtime-health-extension

Planned

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

vidocq-runtime-metrics-extension

Planned

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

vidocq-runtime-openapi-extension

Planned

https://microprofile.io/specifications/microprofile-open-api/ — document generated at compile time.

vidocq-runtime-jwt-extension

Planned

MicroProfile JWT Auth.

Typical lifecycle — Chappe example

The vidocq-runtime-chappe-webserver-extension extension illustrates the pattern. Four hook points:

Phase Actor Priority Action

configure

ChappeEngineExtension

100

installs ChappeMountPoint

onStart

Contributors (REST, Servlet)

500–9999

call mount(…​)

onStart

ChappeServerBootstrap

10000

starts a Server per listener

onStop

ChappeServerBootstrap

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 JPMS provides VidocqExtension declaration.

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

Next steps

  • SPI — how to write a new extension

  • TCK status — coverage by extension

  • Concepts — extension vocabulary