Operational reference for Vidocq Runtime — Maven coordinates, MicroProfile Config keys, vidocq-runtime-maven-plugin goals, exported JPMS modules, public SPI.

Maven coordinates

Artefact Role

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

Parent POM (Model 4.1.0)

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

Public SPI (@BuildStep, @Recorder, BuildItem)

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

Runtime engine (boot orchestrator, lifecycle)

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

Aggregator of the shipped extensions, grouped by domain (essentials, jakartaee-core, jakartaee-web, microprofile, jpms-repackaged)

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

Maven plugin — build, jlink, jpackage, docker

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

Examples (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

Multi-extension integration tests

Exported JPMS modules

Module Contents

io.vidocq.runtime

Vidocq.main(String[]) facade, application entry point.

io.vidocq.runtime.spi

Public annotations and interfaces. Must be declared requires in any extension.

io.vidocq.runtime.core

Orchestration engine. Not intended for direct user consumption.

io.vidocq.runtime.maven

Shared code of the Maven plugin (APT index reading, runner generation).

The other io.vidocq.runtime.*.extension modules each correspond to a built-in extension.

MicroProfile Config keys

Key Default Description

vidocq.http.host

0.0.0.0

Chappe transport bind address.

vidocq.http.port

8080

HTTP/1.1 + H2c port.

vidocq.https.port

(disabled)

HTTPS/H2/H3 port if TLS is configured.

vidocq.tls.cert

Path to PEM certificate.

vidocq.tls.key

Path to PEM private key.

vidocq.datasource.url

JDBC URL for Mansart.

vidocq.datasource.username / vidocq.datasource.password

JDBC credentials.

vidocq.datasource.pool.maxSize

20

Mansart pool maximum size.

vidocq.profile

(empty)

Active profile (dev, prod, …) — %<profile>. prefix recognised.

vidocq.config.dir

(empty)

External override directory (ExternalFileConfigSource, ordinal 250).

ConfigSource hierarchy (descending ordinal):

Ordinal Source Description

400

SystemPropertiesConfigSource

-Dkey=value

300

EnvConfigSource

Environment variables

250

ExternalFileConfigSource

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

100

PropertiesFileConfigSource

Classpath vidocq.properties

Maven plugin goals

Goal Role

vidocq:build

Runs @BuildStep, generates Class-File API classes, produces the runner JAR.

vidocq:jlink

Standalone Java image (target/dist/) with binary launcher.

vidocq:jpackage

Native bundle (.app, .exe, .msi, .deb, .rpm, or app-image).

vidocq:docker

Generates target/Dockerfile distroless; optional Docker build via vidocq.docker.build=true.

See the dedicated page for the exhaustive parameter list.

Public SPI (vidocq-runtime-spi)

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

Type Role

VidocqExtension

Marker interface declared via META-INF/services.

ExtensionContext

Contribution API (BuildItem registry, config access).

VidocqConfiguration

Read at build to resolve extension options.

config.VidocqConfig

MicroProfile Config facade (with Converter<T> and ConfigSource).

@BuildStep, @Record, @Recorder

Build-time contribution annotations.

BuildItem, SimpleBuildItem, MultiBuildItem

Exchange units between build steps.

Bugs and benchmarks

  • Vidocq Runtime bugs: vidocq/BUG.md

  • Cross-cutting bugs: vidocq/CHAPPE-BUGS.md, vidocq/VAUBAN-BUGS.md

  • Benchmarks: vidocq/BENCH.md

Compatibility

  • Java 25 minimum (LTS)

  • Maven 3.9.16 minimum

  • Strict JPMS — one module-info.java per submodule

  • No hidden classpath — every dependency exposes a named module

Next steps