This page consolidates the status of the official TCK tests run against Cassini. The day-to-day source of truth remains the lien:https://codeberg.org/Vidocq/cassini/src/branch/main/TCK.md[TCK.md] in the repo.
Result
Target profile |
Jakarta EE Core Profile / SE-Bootstrap (standalone, no Servlet, no server-side JAXB) |
TCK |
|
JDK |
Eclipse Temurin 25 |
|
2670 |
Tests applicable to the profile |
2535 (134 excluded via |
Passed |
2535 |
Failures + Errors |
0 |
Skipped |
135 (134 out-of-profile + 6 challenges + 1 internal exemption) |
Conformance score |
100.00 % of applicable tests |
[INFO] Tests run: 2670, Failures: 0, Errors: 0, Skipped: 135
[INFO] BUILD SUCCESS
Cassini conforms to the Jakarta RESTful Web Services 4.0 specification on the Core Profile / SE-Bootstrap target for 100 % of the tests applicable to standalone mode.
Coverage by spec section
| Spec section | Status | Source |
|---|---|---|
§3 Resources |
✅ |
|
§3.5.4 EntityPart |
✅ |
|
§4 Providers |
✅ |
|
§5.1 |
✅ |
|
§5.2 SeBootstrap |
✅ |
|
§6 Filters & Interceptors |
✅ |
|
§6.5.5 DynamicFeature |
✅ |
|
§7 ContextResolver / Providers |
✅ |
|
§10 Application / |
✅ |
|
§11 SSE |
✅ (buffered) |
|
§11.2 BASIC auth |
✅ |
|
Skipped tests by environment (out-of-profile)
The 4.0 TCK categorises tests via JUnit 5 @Tag`s — `servlet, xml_binding, security, se_bootstrap. The user-guide §5.2.3 documents excluding them via excludedGroups for standalone certifications (Type 1 + Type 3 of TCK Process 1.4.1).
Configuration in cassini-tck/pom.xml:
<excludedGroups>servlet,xml_binding</excludedGroups>
| Tag | Justification | Tests removed |
|---|---|---|
|
Requires |
~10 |
|
Requires JAXB-runtime; out of Core Profile. |
~120 |
security and se_bootstrap are kept: Cassini supports BASIC auth (CassiniSecurityContext) and native SE-Bootstrap (ChappeRuntimeDelegate).
Intentionally skipped tests (official challenges)
Six tests are disabled via TckChallengeExclusions (auto-discovered JUnit 5 ExecutionCondition) with documented justification — per the TCK Process 1.4.1:
| Test | Category | Reason |
|---|---|---|
|
spec interpretation |
Per a literal reading of §3.7.2 step 2(g), |
|
TCK environment |
TDK 2.5 sigtest requires a complete TCK layout. The |
|
client harness |
Cassini SERVER fully implements §3.5.4 |
|
streaming infrastructure |
§11 real-time SSE streaming. |
Why the TCK runner is out-of-reactor
cassini-tck is deliberately EXCLUDED from the parent <modules> and uses a standalone modelVersion 4.0.0 POM (no <parent>).
Reason: the official Jakarta REST 4.0 TCK transitively pulls ShrinkWrap Maven Resolver 3.3, which depends on maven-resolver 1.9 / maven-model 3.9. Those versions cannot parse Model 4.1.0 POMs from the Vidocq reactor. ShrinkWrap’s ClasspathWorkspaceReader scans the current reactor and crashes with Bad artifact coordinates … jar: on every Vidocq POM (implicit version through parent).
Until ShrinkWrap upstream supports Model 4.1, cassini-tck must remain detached. See lien:https://codeberg.org/Vidocq/vidocq/src/branch/main/CLAUDE.md[vidocq/CLAUDE.md] (workspace root) for the cross-cutting context — the same constraint applies to foy-tck, champollion-tck, and vidocq-servlet-chappe-tck-runner.
Do not re-attach cassini-tck to the parent <modules>. Do not give it a <parent>. Do not build it via mvn -pl. Always go through run-official-tck-restful-4.0.sh.
|
Reproduce locally
cd cassini
# 1. Prerequisites: Java 25 + Maven 3.9.16 (via .sdkmanrc)
sdk env
# 2. Install the official TCK JAR (non-public, fetch once)
curl -Lo /tmp/restful-ws-tck.zip \
https://download.eclipse.org/jakartaee/restful-ws/4.0/jakarta-restful-ws-tck-4.0.0.zip
unzip /tmp/restful-ws-tck.zip -d /tmp/restful-ws-tck
mvn install:install-file \
-Dfile=/tmp/restful-ws-tck/jakarta-restful-ws-tck/lib/jakarta-restful-ws-tck-4.0.0.jar \
-DgroupId=jakarta.tck -DartifactId=jakarta-restful-ws-tck \
-Dversion=4.0.0 -Dpackaging=jar
# 3. Run the TCK
./run-official-tck-restful-4.0.sh # smoke test
./run-official-tck-restful-4.0.sh all # full suite (2670 tests)
./run-official-tck-restful-4.0.sh -Dtest=ResourceTests # targeted class
Expected output on all:
[INFO] Tests run: 2670, Failures: 0, Errors: 0, Skipped: 135
[INFO] BUILD SUCCESS