Référence opérationnelle de Vidocq Runtime — coordonnées Maven, clés MicroProfile Config, goals du vidocq-runtime-maven-plugin, modules JPMS exportés, SPI publique.

Coordonnées Maven

Artefact Rôle

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

POM parent (Model 4.1.0)

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

SPI publique (@BuildStep, @Recorder, BuildItem)

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

Moteur d’exécution (boot orchestrator, lifecycle)

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

Agrégateur des extensions livrées, groupées par domaine (essentials, jakartaee-core, jakartaee-web, microprofile, jpms-repackaged)

io.vidocq.runtime:vidocq-runtime-maven-plugin:0.1.0-SNAPSHOT

Plugin Maven — build, jlink, jpackage, docker

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

Exemples (vidocq-runtime-cassini-rest-example, vidocq-runtime-mansart-h2-example, vidocq-runtime-external-rest-lib)

io.vidocq.runtime:vidocq-runtime-integration-tests:0.1.0-SNAPSHOT

Tests d’intégration multi-extensions

Modules JPMS exportés

Module Contenu

io.vidocq.runtime

Façade Vidocq.main(String[]), point d’entrée applicatif.

io.vidocq.runtime.spi

Annotations et interfaces publiques. À déclarer en requires dans toute extension.

io.vidocq.runtime.core

Moteur d’orchestration. Non destiné à être consommé directement par l’utilisateur.

io.vidocq.runtime.maven

Code partagé du plugin Maven (lecture des index APT, génération du runner).

Les autres modules io.vidocq.runtime.*.extension correspondent chacun à une extension built-in.

Clés MicroProfile Config

Clé Défaut Description

vidocq.http.host

0.0.0.0

Adresse de bind du transport Chappe.

vidocq.http.port

8080

Port HTTP/1.1 + H2c.

vidocq.https.port

(désactivé)

Port HTTPS/H2/H3 si TLS configuré.

vidocq.tls.cert

Chemin vers le certificat PEM.

vidocq.tls.key

Chemin vers la clé privée PEM.

vidocq.datasource.url

URL JDBC pour Mansart.

vidocq.datasource.username / vidocq.datasource.password

Credentials JDBC.

vidocq.datasource.pool.maxSize

20

Taille maximale du pool Mansart.

vidocq.profile

(vide)

Profil actif (dev, prod, …) — préfixage %<profil>. reconnu.

vidocq.config.dir

(vide)

Répertoire de surcharge externe (ExternalFileConfigSource, ordinal 250).

Hiérarchie des ConfigSource (ordinal décroissant) :

Ordinal Source Description

400

SystemPropertiesConfigSource

-Dkey=value

300

EnvConfigSource

Variables d’environnement

250

ExternalFileConfigSource

${java.home}/conf/vidocq.properties ou $VIDOCQ_CONFIG_DIR/vidocq.properties

100

PropertiesFileConfigSource

vidocq.properties du classpath

Plugin Maven — goals

Goal Rôle

vidocq:build

Exécute les @BuildStep, génère les classes Class-File API, produit le JAR runner.

vidocq:jlink

Image Java autonome (target/dist/), avec launcher binaire.

vidocq:jpackage

Bundle natif (.app, .exe, .msi, .deb, .rpm, ou app-image).

vidocq:docker

Génère target/Dockerfile distroless ; build Docker optionnel via vidocq.docker.build=true.

Voir la fiche dédiée pour la liste exhaustive des paramètres de configuration.

SPI publique (vidocq-runtime-spi)

Source : vidocq-runtime-spi/src/main/java/io/vidocq/runtime/spi/.

Type Rôle

VidocqExtension

Interface marqueur déclarée via META-INF/services.

ExtensionContext

API de contribution (registre de BuildItem, accès config).

VidocqConfiguration

Lecture des options d’extension au build.

config.VidocqConfig

Façade MicroProfile Config (avec Converter<T> et ConfigSource).

@BuildStep, @Record, @Recorder

Annotations de contribution build-time.

BuildItem, SimpleBuildItem, MultiBuildItem

Unités d’échange entre build steps.

Bugs et benchmarks

  • Bugs Vidocq Runtime : vidocq/BUG.md

  • Bugs croisés : vidocq/CHAPPE-BUGS.md, vidocq/VAUBAN-BUGS.md

  • Benchmarks : vidocq/BENCH.md

Compatibilité

  • Java 25 minimum (LTS)

  • Maven 3.9.16 minimum

  • JPMS strict — un module-info.java par sous-module

  • Aucun classpath caché — toutes les dépendances exposent un module nommé

Pour aller plus loin