This page lists every artefact published by Cyrano, the JPMS 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 JPMS repackage of |
|
|
Controlled re-export of the spec + stable public SPI ( |
|
|
Implementation: |
|
|
Vauban BCE |
|
|
Official MicroProfile Rest Client 4.0 TCK runner — invoked through |
cyrano-tck is deliberately out of reactor (standalone POM Model 4.0.0, no <parent>). Reason: ShrinkWrap Maven Resolver 3.3 — pulled in transitively by the TCK — cannot parse a Model 4.1.0 POM. Do not add it back to the parent <modules>.
|
Exported JPMS modules
| Module | Exported packages |
|---|---|
|
|
|
|
|
|
|
No exported package (BCE loaded 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 — |
|
MP Rest Client §4 — static or dynamic query param. |
|
Repeating container of |
|
JAX-RS — HTTP method + path template. |
|
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. |
|
Priority of a provider. |
|
Connect timeout in milliseconds. |
|
Read timeout in milliseconds. |
|
|
|
HTTP proxy as |
|
HTTP proxy username. |
|
HTTP proxy password. |
|
|
|
Truststore URL (e.g. |
|
Truststore password. |
|
Client keystore URL. |
|
Keystore password. |
|
FQN of a |
Resolution priority (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
The io.vidocq.cyrano.spi package exposes stable hooks:
| Interface | Role |
|---|---|
|
Allows substituting the transport layer (default: |
|
Low-level pre-send hook (different from the JAX-RS |
|
Low-level post-receive hook. |
Runtime prerequisites
-
JDK 25+ — for the Class-File API and virtual threads.
-
JPMS: 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. |