This page lists every artefact published by Knock, the Java Modules packages they export, the public SPI, the HTTP endpoints, and the build commands.
Maven artefacts
All artefacts share the version 0.4.0-SNAPSHOT under the io.vidocq.knock group.
| Artefact | Recommended scope | Role |
|---|---|---|
|
|
Vidocq fork of the MicroProfile Health 4.0 API with a |
|
|
Knock SPI ( |
|
|
Standalone runtime: registry, aggregator, JSON-P serialiser, |
|
|
CDI auto-registration at context start ( |
|
|
Jakarta REST |
|
|
Exported Java Modules packages
| Module | Exported packages |
|---|---|
|
|
|
|
|
|
Internal packages (io.vidocq.knock.internal, io.vidocq.knock.cdi.internal) are not exported. knock-core provides org.eclipse.microprofile.health.spi.HealthCheckResponseProvider via provides and META-INF/services.
Public SPI (knock-api)
| Type | Role |
|---|---|
|
|
|
Register checks and retrieve them by probe type: |
|
The last answer of one check: |
|
Module metadata constants. |
Standalone instances come from the exported factory HealthCheckRegistries.newRegistry() (in knock-core); the KnockHealthCheckRegistry implementation lives in the unexported io.vidocq.knock.internal package. Under CDI the registry is provided as a managed bean (KnockCdiHealthCheckRegistry, injectable as HealthCheckRegistry).
Endpoints
| Endpoint | Probe | HTTP status |
|---|---|---|
|
|
200 UP / 503 DOWN |
|
|
200 UP / 503 DOWN |
|
|
200 UP / 503 DOWN |
|
|
200 UP / 503 DOWN |
Dependency versions
| Dependency | Version |
|---|---|
MicroProfile Health (upstream reference) |
4.0.1 |
Jakarta JSON-P API |
2.1.3 |
Jakarta REST API |
4.0.0 |
Jakarta CDI API |
4.1.0 |
Jakarta Inject API |
2.0.1 |
Jakarta Annotation API |
3.0.0 |
Commands
sdk env
./mvnw -ntp install -DskipTests # full build, skip tests
./mvnw test # unit tests
./run-official-tck-mp-health-4.0.sh # TCK smoke test
./run-official-tck-mp-health-4.0.sh all # full TCK suite
Compatibility
-
Java 25, Maven 3.9.16.
-
Strict Java Modules, named modules only.
-
MicroProfile Health 4.0.
-
Zero third-party libraries — Jakarta / MicroProfile specs only.
-
Compatible with GraalVM
native-imageandjlinkminimal images. -
Runs without Vauban, under Weld or Open Liberty — see Other CDI containers NEW.
Other CDI containers NEW
Knock does not need Vauban. The jars run unchanged under another CDI container, on a class path, and two integration-test modules, grouped under knock-it-other-containers, prove it on every build (Vidocq/knock#34):
| Module | What it runs |
|---|---|
|
Weld SE 6.0 (CDI 4.1), class path, no Vauban: the checks are discovered and registered by probe type, |
|
A WAR on Open Liberty 26.0.0.10, MicroProfile 7 distribution (CDI 4.0, Jakarta REST 3.1, JSON-P 2.1), with Liberty’s |
Neither module is published. Three things make this work:
-
vauban-apiis a runtime dependency ofknock-cdi-vaubanandknock-jaxrs, under any container. The Vauban build weaves aprotectedconstructor takingio.vidocq.vauban.api.ProxyLinkinto each normal-scoped bean (the client-proxy entry point, see the Vauban usage guide); a container that cannot load that type cannot load the bean class, and Weld then drops the bean with an INFO message (WELD-000119) instead of failing.vauban-apiholds API types only (13 KB, no dependency): no Vauban code runs outside Vauban. Its Jakarta CDI dependencies are excluded, so the container’s own CDI API stays the only one. -
Both jars are explicit bean archives —
knock-cdi-vaubanandknock-jaxrsship aMETA-INF/beans.xml(bean-discovery-mode="annotated"), so a container that does not scan implicit archives (Weld SE by default) still finds their beans. -
The Jakarta APIs come from the container — Knock uses nothing beyond CDI 4.0 and Jakarta REST 3.1, so it runs on a Jakarta EE 10 server as well.
The application provides Jakarta REST, JSON-P and CDI, as any server does. With Weld SE alone there is no Jakarta REST runtime: use KnockHealthService to build the reports.
|
Deploying on an application server
|
See also
-
Concepts — the model behind these artefacts.
-
Internals — implementation details.
-
TCK status — conformance.