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

Suite TCK complète

Exécutez tous les 100+ tests officiels de MicroProfile Config :

./run-official-tck-mp-config-3.1.sh all

Ou :

./mvnw -f ravel-tck/pom.xml -Ptck-official test

Classe de test spécifique

Exécutez une seule classe de test :

./run-official-tck-mp-config-3.1.sh -Dtest=ConfigProviderTest

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.xml pour l’alignement des versions

  • Configuration des variables d’environnement Arquillian — voir ravel-tck/pom.xml pour les variables requises

Contribuer aux corrections de tests

Si vous identifiez un échec du TCK qui n’est pas documenté :

  1. Déposer un issue avec la pile complète

  2. Spécifier la version Java (java -version)

  3. Inclure les détails de l’environnement (OS, isolation réseau, etc.)

  4. 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.

Suivant

  • Référence — documentation de l’API

  • Usage — configuration programmatique