New in the 0.4.0-SNAPSHOT development line — everything listed here landed after the 0.3.0 release and is not part of it. Every entry links to the section that documents it, and those sections carry the NEW badge. Each brick of the suite keeps its own page of this kind; the ecosystem index gathers them. When the next release train ships, this page is frozen with it and restarts empty on the dev line.

Last result of each check

  • The registry remembers the last answer of each check — each time a probe endpoint runs a check, Knock records the answer in the HealthCheckRegistry, one entry per check per probe, so a tool can show the state of the checks without calling one (a health check is application code and may do I/O). The Vidocq dev console’s health view reads it (Vidocq/vidocq#114). A check no request has run yet has no entry, and unregistering a check forgets its results. Last results, Runtime flow.

  • CheckResult, a new SPI record — exported from io.vidocq.knock.spi in knock-api: the probe (never ALL), the registration name, the name the response carries, the status, the observation time and the response data with values as strings. It holds no application object. Public SPI.

  • New HealthCheckRegistry methods — getNamedChecks(ProbeType) and getCheckNames(ProbeType) list the registered checks without calling them; recordResult(CheckResult) and getLastResults() store and read the last answers. They are default methods: a registry of your own still compiles and keeps working, and remembers nothing until it overrides them. Public SPI.

Other CDI containers

  • Proven on Weld and Open Liberty — two new test modules run the Knock jars, unchanged, without Vauban: knock-it-weld on Weld SE 6.0 (class path), knock-it-openliberty as a WAR on Open Liberty 26.0.0.10 (MicroProfile 7, CDI 4.0) with Liberty’s own mpHealth off. Neither is published (Vidocq/knock#34). Other CDI containers.

  • vauban-api is now a runtime dependency of knock-cdi-vauban and knock-jaxrs — it was provided, so outside Vauban the bean classes, which carry a constructor taking io.vidocq.vauban.api.ProxyLink, could not be loaded: Weld and Open Liberty dropped the registry, the registrar and the /health resource without failing, and every probe answered nothing useful. The module descriptors now requires io.vidocq.vauban.api (it was requires static). Nothing changes on the Vidocq runtime, which already has it. Other CDI containers.

  • knock-jaxrs is an explicit bean archive — it now ships a META-INF/beans.xml (annotated), so Weld SE finds KnockHealthResource. Other CDI containers.

  • The Jakarta APIs are provided — knock-core no longer ships jakarta.json-api, and knock-mp-health-api no longer ships jakarta.enterprise.cdi-api and jakarta.inject-api: like knock-cdi-vauban and knock-jaxrs already did, they leave them to the runtime, so a WAR built on Knock carries no Jakarta API jar. This is a behaviour change for an application that compiled against those APIs through Knock alone: it now declares them itself. The Vidocq runtime is not affected. Other CDI containers.