Vue d’ensemble
Ravel cible une conformance 100 % avec le Technology Compatibility Kit officiel de MicroProfile Config 3.1. Cela garantit que Ravel peut être utilisé comme remplacement drop-in pour d’autres implémentations MicroProfile Config.
Exécution du TCK
Le TCK se trouve dans le module ravel-tck (hors du reactor, pour des raisons techniques).
Test de fumée (par défaut)
Vérification de santé rapide sans Arquillian :
./mvnw -pl ravel-tck test
Ou avec le script fourni :
./run-official-tck-mp-config-3.1.sh
Résultats attendus
Tous les tests applicables doivent passer (%). Les tests peuvent être sautés (SKIP) si : * Le test cible une fonctionnalité pas encore implémentée (M3, M4, M5) * Le test est spécifique à la plateforme (p. ex., Windows uniquement)
Le nombre d’ÉCHECS doit être 0 (ou documenté dans TCK.md avec justification).
Ce que le TCK couvre
Le TCK MicroProfile Config 3.1 valide :
-
Sources de configuration — propriétés système, variables d’environnement,
microprofile-config.properties -
Conversion de types — primitifs, collections, types temporels
-
Profils de configuration — valeurs spécifiques à l’environnement
-
Expressions de propriété — ${key}, ${key:default}
-
Sources et convertisseurs personnalisés — extensibilité SPI
-
Intégration CDI — injection
@ConfigProperty(optionnel)
Phases du TCK
L’implémentation de Ravel cible ces jalons :
| Jalon | Fonctionnalités | Statut |
|-------|-----------------|--------|
| M0 | Reactor, JPMS, .sdkmanrc | ✅ Fait |
| M1 | 3 sources built-in, convertisseurs basiques, ConfigProvider | ✅ Fait |
| M2 | Convertisseurs avancés, tableaux, convertisseurs implicites | ✅ Fait |
| M3 | Profils, expressions de propriété, détection de cycle | ✅ Fait (M4) |
| M4 | Intégration CDI via Vauban BCE | ✅ Fait |
| M5 | TCK 100 % PASS + benchmark JMH | En cours |
Problèmes connus et contournements
Si vous rencontrez un échec du TCK, vérifiez TCK.md à la racine du dépôt pour les problèmes documentés et les contournements.
Problèmes courants :
-
Incompatibilité weld-lite-extension-translator — voir
ravel-tck/pom.xmlpour l’alignement des versions -
Configuration des variables d’environnement Arquillian — voir
ravel-tck/pom.xmlpour les variables requises
Contribuer aux corrections de tests
Si vous identifiez un échec du TCK qui n’est pas documenté :
-
Déposer un issue avec la pile complète
-
Spécifier la version Java (
java -version) -
Inclure les détails de l’environnement (OS, isolation réseau, etc.)
-
Exécuter avec output verbeux :
mvn -X test
Vérification des performances
Bien que ne faisant pas partie de la conformance TCK, Ravel inclut des benchmarks JMH (ravel-bench) pour la comparaison des performances par rapport à Smallrye Config et Helidon Config :
./mvnw -pl ravel-bench -am package
java -jar ravel-bench/target/benchmarks.jar
Voir BENCH.md pour l’interprétation des résultats.