This page lists every artefact published by Cyrano, the Java modules they export, the MicroProfile Rest Client 4.0 annotations supported, and the full set of MicroProfile Config keys recognised.
Maven artefacts
| Artefact | Recommended scope | Role |
|---|---|---|
|
|
Explicit Java Modules repackage of |
|
|
Controlled re-export of the spec + stable public SPI ( |
|
annotation processor path (or |
APT processor |
|
|
Implementation: |
|
|
Vauban BCE |
|
|
Official MicroProfile Rest Client 4.0 TCK runner — invoked through |
cyrano-tck is in-reactor, gated behind the tck Maven profile (TCK harmonisation, vidocq-runtime-tck-* pattern): a plain mvn install neither downloads nor runs anything TCK-related. The historical out-of-reactor constraint (ShrinkWrap Maven Resolver 3.3 vs Model 4.1.0 POMs) disappeared with the Maven 3.9.16 / Model 4.0.0 migration. See TCK.
|
Exported Java modules
| Module | Exported packages |
|---|---|
|
|
|
|
|
No exported package — consumed exclusively through |
|
|
|
|
Supported annotations
| Annotation | Spec / Level |
|---|---|
|
MP Rest Client §6.1 — registers the interface with CDI. |
|
MP Rest Client §6.2 — injection qualifier. |
|
MP Rest Client §5 — declares a provider. |
|
Repeating container of |
|
MP Rest Client §4 — static or dynamic header ( |
|
MP Rest Client §4 — |
|
Repeating container of |
|
JAX-RS — HTTP method + path template. Custom verbs meta-annotated with |
|
JAX-RS — parameters. |
|
JAX-RS — content negotiation (request side / response side). |
Supported return types
| Type | Semantics |
|---|---|
Primitives and their wrappers |
Conversion from the text body or JSON-B types. |
|
Raw decoded body (charset = |
POJO / record |
JSON-B deserialisation through Champollion. |
|
Present if status < 400 and body non-empty; |
|
JSON-B deserialisation. |
|
Access to status, headers and raw body. |
|
Async through |
|
The response is consumed and discarded. |
MicroProfile Config keys
All keys follow the <key>/mp-rest/<attribute> pattern, where <key> is either the declared configKey (@RegisterRestClient(configKey = "x")) or the interface’s FQN (when no configKey is set).
| Key | Effect |
|---|---|
|
Base URL (host + base path). Medium priority. |
|
Full base URI. High priority (wins over |
|
CDI scope of the synthesised bean ( |
|
Comma-separated list of provider FQNs. |
|
Connect timeout in milliseconds. |
|
Read timeout in milliseconds. |
|
|
|
|
|
Truststore location — |
|
Truststore type (default |
|
Truststore password. |
|
Client keystore location — |
|
Keystore type (default |
|
Keystore password. |
|
FQN of a |
Each key resolves against the interface FQN first, then the configKey. The global (non-per-client) property microprofile.rest.client.disable.default.mapper (spec §8.1) is also read from MP Config; an explicit builder property wins.
HTTP proxying is configured programmatically through RestClientBuilder.proxyAddress(host, port) — no proxy* MP Config key is read.
Resolution priority for the base URL (strongest to weakest): mp-rest/uri > mp-rest/url > @RegisterRestClient(baseUri=…). Other attributes have a single priority (MP Config wins over the builder’s defaults).
Public SPI
Two stable SPI packages are exported by cyrano-api, plus one runtime SPI in cyrano-core:
| Type | Role |
|---|---|
|
Implementation metadata constants ( |
|
The contract implemented by every APT-generated |
|
The invocation contract a generated proxy delegates to; implemented by |
|
Literal, reflection-free description of the client interface embedded in the generated code; converted back to internal |
|
Provider instantiation SPI ( |
|
The spec’s |
There is no transport-substitution SPI: the transport is java.net.http.HttpClient, and the extension points around a request are the standard JAX-RS/MP providers (ClientRequestFilter, ClientResponseFilter, MessageBodyReader/Writer, ResponseExceptionMapper, ParamConverterProvider, ClientHeadersFactory).
Runtime prerequisites
-
JDK 25+ — for the Class-File API and virtual threads.
-
Java Modules: one
module-info.javaper application Maven module consuming Cyrano. -
A JSON-B implementation: Champollion (declared separately,
runtimescope). -
Optional — an MP Config implementation (Ravel) for
<key>/mp-rest/*.
Utility scripts
| Script | Effect |
|---|---|
|
Build the reactor (no TCK). |
|
Unit tests (cyrano-api, cyrano-core, cyrano-cdi-vauban). |
|
Smoke mode (fast). |
|
Full official TCK suite. |
|
Targeted TCK test. |