Overview
Ravel targets 100 % conformance with the official MicroProfile Config 3.1 Technology Compatibility Kit (TCK). This ensures Ravel can be used as a drop-in replacement for other MicroProfile Config implementations.
Running the TCK
The TCK lives in the ravel-tck module, which is in-reactor but joins the build only under the tck Maven profile — a plain mvn install neither downloads nor runs anything TCK-related.
Smoke test (default)
Quick sanity check without Arquillian:
./mvnw -Ptck -pl ravel-tck test
Or with the provided script:
./run-official-tck-mp-config-3.1.sh
Expected results
The current score is 349 PASS / 0 FAIL / 0 SKIP out of 349 tests — 100 % conformance.
Any regression from that score blocks a structural merge; a FAIL may only be tolerated when documented in TCK.md with a spec citation and a reactivation plan.
What the TCK covers
The MicroProfile Config 3.1 TCK validates:
-
Config sources — system properties, environment variables,
microprofile-config.properties -
Type conversion — primitives, collections, temporal types
-
Config profiles — environment-specific values
-
Property expressions — ${key}, ${key:default}
-
Custom sources and converters — SPI extensibility
-
CDI integration —
@ConfigPropertyinjection (optional)
TCK phases
Ravel’s implementation reached these milestones:
| Milestone | Features | Status |
|---|---|---|
M0 |
Reactor, Java Modules, |
✅ Done |
M1 |
3 built-in sources, basic converters, |
✅ Done |
M2 |
Advanced converters, arrays, implicit converters |
✅ Done |
M3 |
Profiles, property expressions, cycle detection |
✅ Done |
M4 |
CDI integration via Vauban BCE |
✅ Done |
M5 |
TCK 100 % PASS + JMH benchmark |
✅ Done — 349/349 PASS |
Known issues and workarounds
If you encounter a TCK failure, check TCK.md in the repository root for documented issues and workarounds.
Common issues:
-
weld-lite-extension-translator incompatibility — see
ravel-tck/pom.xmlfor version alignment -
Arquillian environment variable setup — see
ravel-tck/pom.xmlfor required vars
Contributing test fixes
If you identify a TCK failure that’s not documented:
-
File an issue with full stack trace
-
Specify the Java version (
java -version) -
Include environment details (OS, network isolation, etc.)
-
Run with verbose output:
mvn -X test