Cette page liste l’ensemble des artefacts publiés par Cyrano, les modules JPMS qu’ils exportent, les annotations MicroProfile Rest Client 4.0 supportées et la totalité des clés MicroProfile Config reconnues.
Artefacts Maven
| Artefact | Scope conseillé | Rôle |
|---|---|---|
|
|
Repackage JPMS explicite de |
|
|
Re-exposition contrôlée de la spec + SPI publique stable ( |
|
|
Implémentation : |
|
|
BCE Vauban |
|
|
Runner TCK officiel MicroProfile Rest Client 4.0 — invoqué via |
cyrano-tck est volontairement hors reactor (POM Model 4.0.0 standalone, sans <parent>). Raison : ShrinkWrap Maven Resolver 3.3 — transitive du TCK — ne sait pas parser un POM Model 4.1.0. Ne pas le réintégrer aux <modules> parent.
|
Modules JPMS exportés
| Module | Packages exportés |
|---|---|
|
|
|
|
|
|
|
Aucun package exporté (BCE chargée via |
Annotations supportées
| Annotation | Spec / Niveau |
|---|---|
|
MP Rest Client §6.1 — enregistre l’interface dans CDI. |
|
MP Rest Client §6.2 — qualifier d’injection. |
|
MP Rest Client §5 — déclare un provider. |
|
Conteneur répété de |
|
MP Rest Client §4 — header statique ou dynamique (méthode |
|
MP Rest Client §4 — |
|
MP Rest Client §4 — query param statique ou dynamique. |
|
Conteneur répété de |
|
JAX-RS — méthode HTTP + template de path. |
|
JAX-RS — paramètres. |
|
JAX-RS — content negotiation (côté requête / réponse). |
Types de retour supportés
| Type | Sémantique |
|---|---|
Primitifs et leurs wrappers |
Conversion depuis le corps texte ou les types JSON-B. |
|
Corps brut décodé (charset = |
POJO / record |
Désérialisation JSON-B via Champollion. |
|
Présent si statut < 400 et corps non vide ; |
|
Désérialisation JSON-B. |
|
Accès au statut, aux headers et au corps brut. |
|
Async via |
|
La réponse est consommée et ignorée. |
Clés MicroProfile Config
Toutes les clés suivent le pattern <clé>/mp-rest/<attribut> où <clé> est soit le configKey déclaré (@RegisterRestClient(configKey = "x")), soit le FQN de l’interface (si pas de configKey).
| Clé | Effet |
|---|---|
|
URL de base (host + base path). Priorité moyenne. |
|
URI de base complète. Priorité haute (gagne contre |
|
Scope CDI du bean synthétisé ( |
|
Liste de FQN de providers (séparés par virgule). |
|
Priorité d’un provider. |
|
Timeout de connexion en millisecondes. |
|
Timeout de lecture en millisecondes. |
|
|
|
Proxy HTTP au format |
|
Utilisateur du proxy HTTP. |
|
Mot de passe du proxy HTTP. |
|
|
|
URL du truststore (ex. |
|
Mot de passe du truststore. |
|
URL du keystore client. |
|
Mot de passe du keystore. |
|
FQN d’une implémentation |
Priorité de résolution (du plus fort au plus faible) : mp-rest/uri > mp-rest/url > @RegisterRestClient(baseUri=…). Les autres attributs ont une priorité unique (MP Config gagne sur les valeurs par défaut du builder).
SPI publique
Le package io.vidocq.cyrano.spi expose des hooks stables :
| Interface | Rôle |
|---|---|
|
Permet de substituer la couche transport (par défaut : |
|
Hook bas niveau avant envoi (différent des |
|
Hook bas niveau après réception. |
Pré-requis runtime
-
JDK 25+ — pour la Class-File API et virtual threads.
-
JPMS : un
module-info.javapar module Maven applicatif consommant Cyrano. -
Implémentation JSON-B : Champollion (déclarée séparément, scope
runtime). -
Optionnel — implémentation MP Config (Ravel) pour
<clé>/mp-rest/*.
Scripts utilitaires
| Script | Effet |
|---|---|
|
Build du reactor (sans TCK). |
|
Tests unitaires (cyrano-api, cyrano-core, cyrano-cdi-vauban). |
|
Mode smoke (rapide). |
|
Suite TCK officielle complète. |
|
Test TCK ciblé. |