A component with something to announce keeps its own What’s new page on its dev documentation line: it lists what landed after that component’s last release, and each entry links to the section that documents it — the section carrying the NEW badge. This page is the entry point to those lists. It names the components that have something today, and says what it is, so you can go straight to the one you work with.
Components with something new
Across the bricks — proven without Vauban, on Weld and Open Liberty
Each brick below now has an <brick>-it-other-containers module that runs its jars, unchanged, under Weld SE on a plain class path and, for the MicroProfile bricks and Champollion, as a WAR on Open Liberty, with the server’s own implementation of that specification turned off. Cassini and Foy, which an application server replaces with its own Jakarta REST and Servlet, are proven on Weld SE only. The modules are part of every build and never published.
-
What the tests found, and what is fixed — normal-scoped beans could not load outside Vauban, because the build weaves a constructor taking a
vauban-apitype that wasprovided(Knock, Heisenberg, Cervantes, Humboldt); Heisenberg keyed metric names and configuration overrides by Weld’s subclass; Humboldt’s span finalizer turned every exception, a 404 included, into a 500 and failed outright on RESTEasy; Dirac and Grimm kept what their extension discovered instaticfields, so two containers in one JVM mixed their metrics or their OpenAPI documents, and Dirac failed a deployment on Open Liberty over server classes it could not load; Foy never activated the CDI request context, under any container. -
A brick depends on APIs, its Vidocq extension picks the implementations — Jakarta platform APIs are now
providedin the bricks, and each Vidocq runtime extension brings what its brick leaves out: the Rest Client extension brings Champollion’s JSON-B, so a Rest Client application without a REST server reads JSON again, and the Telemetry, Rest Client and OpenAPI extensions bring the Jakarta REST API their bricks now leave to the runtime. -
Cassini and Foy on any CDI container —
cassini-cdi, a new container-neutral module, resolves resources and providers as beans of the running container and activates the request context around each request; Foy does the same for servlets, filters and listeners when given any container’sBeanManager. The session scope stays Vauban-only in Foy for now. -
Deploying on an application server — the page of each brick proven on Open Liberty says which server features to keep off and to enable, in a
WARNINGblock its Open Liberty module tests.
Vidocq Runtime — MicroProfile 7.2 line, Rest Client, packaging, startup identity
-
The MicroProfile 7.2 specifications in the assembled runtime — JWT Authentication 2.2, OpenAPI 4.2 and Telemetry 2.2 — with their TCKs green on the release candidates; the 7.2 finals are still under ballot, and the runtime is re-run against them once they are on Maven Central.
-
@Inject @RestClientworks, through a new Rest Client codegen bundle thatcheckpomnow requires, and a Rest Client application links withjlink; a new example shows it end to end. -
Packaging that says what is wrong —
vidocq:dockerrefuses to build a Linux image around a macOS or Windowsjlinkimage, the legacypackagelayout launches through the main class’s module, and an application left in the boot layer gets a message naming theexportsto add. -
Booting says what it is — version, commit, launch mode and debugger address — with readable console logs by default, and
vidocq:run/vidocq:ideato run from Maven and IntelliJ.
Full list: What’s new in Vidocq Runtime.
Vauban — client proxies without opens, interception that covers inherited methods
-
A client proxy for a third-party produced type, without opening its package, through the Java SE launcher and the Vauban layer; boot-time opening stays opt-in.
-
Interception follows the specification more closely —
@AroundInvokeno longer runs around lifecycle callbacks, inherited and interface default methods are intercepted and forwarded, and members Java source cannot override are generated as bytecode. -
The build is reproducible and complete —
vauban:generatepre-generates every subclass the container would wrap, in a stable order. -
Module lookups for trusted extensions, so an extension such as Heisenberg reaches a managed class’s private members with no
opens.
Full list: What’s new in Vauban.
Cassini — unreadable request entities answer 400
-
A client’s malformed request entity is the client’s fault. Malformed JSON, an empty body or a value of the wrong type now answers
400 Bad Requestinstead of500, after the application’s own exception mappers, and no longer writes a stack trace at ERROR for every such request. -
NoContentExceptionbecomes aBadRequestException, whatever reader throws it, as Jakarta REST §4.2.4 requires.
Full list: What’s new in Cassini.
Cervantes — MicroProfile JWT Authentication 2.2
-
RS256 and ES256 both accepted when no algorithm is configured, PEM keys of either family, and a configured algorithm checked by family.
-
A bad configuration fails the start with a
DeploymentExceptioninstead of failing every token at request time.
Full list: What’s new in Cervantes.
Grimm — MicroProfile OpenAPI 4.2, a more faithful document
-
OpenAPI 4.2 features — unknown Schema properties as extensions,
@Headerexamples, method-level@ExternalDocumentation,@Digitsconstraints. -
The model sources combine in the order the specification sets, and every
@Schema/@SchemaPropertyattribute reaches the document; Grimm ships named Java modules.
Full list: What’s new in Grimm.
Humboldt — MicroProfile Telemetry 2.2, OpenTelemetry 1.66
-
OpenTelemetry 1.66,
code.function.nameon@WithSpanspans, and@WithSpan(inheritContext = false). -
Nothing lost on export — exceptions, event names, structured values and double metric points — and the OTLP exporters work on the module path.
Full list: What’s new in Humboldt.
Cyrano — the Rest Client on the module path and in a jlink image
-
RestClientBuilderworks on the module path and in a jlink image, listeners from other modules are found, and Reactive Streams is no longer forced on every client. -
CompletionStageresponses never run on the caller’s thread, and builder listeners run once per builder.
Full list: What’s new in Cyrano.
Heisenberg — fallback methods with no opens
-
@Fallback(fallbackMethod = …)works on a strict module path with nothing opened, through Vauban’s module lookup.
Full list: What’s new in Heisenberg.
Mansart — @Enumerated honoured
-
@Enumerated(ORDINAL)stores the index,STRINGthe name; an enum with no annotation keeps storing its name. The tooling API (EntityModels.of,JdqlExecutor) is public, and Mansart JPA has restarted.
Full list: What’s new in Mansart.
Ravel, Knock, Champollion, Chappe, Dirac and Foy
-
Ravel —
@Inject @ConfigPropertyworks under the Vauban annotation processor. What’s new in Ravel. -
Champollion — proven on Weld and Open Liberty, where the server’s JSON-B must stay off; the Annotation API is no longer shipped. What’s new in Champollion.
-
Knock — the registry remembers the last result of each check, with a public
CheckResult. What’s new in Knock. -
Chappe —
writeTimeoutis actually applied (a behaviour change: a client that stalls while reading is cut after 30 s by default), and connections close gracefully so the last response survives. What’s new in Chappe. -
Dirac — proven on Weld and Open Liberty; two containers in one JVM keep their metrics apart, and
vauban-apiis now a runtime dependency. What’s new in Dirac. -
Foy — the CDI request context is active for each request, under any CDI 4 container, proven on Weld SE. What’s new in Foy.
Components with nothing new
Erasmus has nothing to announce on the current development line: it carries no NEW badge and no What’s new page. It is named here so that its absence from the list above reads as a fact rather than as a gap. Where it stands is on the Consolidated roadmap.
How these lists are maintained
This page is versionless, so a link from here to a component resolves against that component’s latest released documentation unless it says otherwise. The links above are therefore pinned with dev@. Today that pin is what makes them resolve at all — no released line carries a What’s new page, the practice being younger than the 0.3.0 cut. From the next release train on, each released line will carry the page frozen with it, and an unpinned link would quietly land on that frozen list instead of the one this index is about.
When the next release train ships, each component’s page is frozen with its released documentation and restarts empty on dev, and the NEW badges are stripped from the pages they were flagging. The release cut does not touch this page: it has to be updated by hand when a component starts or stops having something to announce.