Ravel implémente le contrat standard MicroProfile Config 3.1. Le code applicatif écrit contre la spec — ConfigProvider.getConfig(), @ConfigProperty, ConfigSource, Converter — se porte sans modification. L’effort de migration se concentre sur la configuration de build et l’abandon des extensions propres à un fournisseur.
Depuis SmallRye Config
| SmallRye Config | Ravel | Note |
|---|---|---|
|
Identique |
Point d’entrée standard MicroProfile Config. Aucun changement. |
|
Identique |
Injection standard. Aucun changement. |
|
Même SPI |
Réenregistrer via |
|
Même SPI |
Contrat identique. |
Interfaces |
Absent de MP Config 3.1 |
Spécifique à SmallRye. Remplacer par des champs |
Extensions |
Sans objet |
Extensions propriétaires ; réécrire sur la SPI standard. |
Étapes de migration
-
Remplacez la dépendance SmallRye Config par
io.vidocq.ravel:ravel-api(+ravel-core, etravel-cdi-vaubanpour CDI) — voir Référence. -
Conservez tels quels vos
microprofile-config.properties, sources et convertisseurs personnalisés. -
Remplacez toute interface
@ConfigMappingpar des champs@ConfigPropertyou unConfigBuilderprogrammatique (voir Usage). -
Ajoutez un
module-info.javarequérantorg.eclipse.microprofile.config(Ravel est en JPMS strict). -
Vérifiez que la précédence par ordinal et le profil actif se comportent comme attendu (voir Concepts).
Pièges
-
@ConfigMapping— ne fait pas partie de MicroProfile Config 3.1 ; aucun équivalent direct. Refactorer en@ConfigProperty. -
Intercepteurs / gestion des secrets propriétaires — propres à SmallRye ; réimplémenter sur la SPI standard
ConfigSource/Converter. -
Noms de modules implicites — un jar SmallRye sur le classpath s’appuyait sur les modules automatiques ; Ravel exige des clauses
requiresexplicites. -
Syntaxe des expressions — Ravel honore la spec
${key}/${key:default}; les fonctions d’interpolation non standard ne sont pas prises en charge.
Pour aller plus loin
-
Prise en main — ajouter Ravel à un projet.
-
Concepts — le modèle de configuration.
-
TCK — état de conformité.