This page consolidates the status of the official Jakarta Servlet 6.1 TCK runs against Foy. It is regenerated on every release. The day-to-day source of truth remains the TCK.md of the foy-tck folder.
Summary
At the latest full run of the tck-official profile, roughly 90 % of Jakarta Servlet 6.1 tests on the api.* packages pass.
| Spec section | Total | Passed | Notes |
|---|---|---|---|
|
~XX |
~XX |
✅ Near-complete coverage. |
|
~XX |
~XX |
✅ |
|
~XX |
~XX |
⚠️ 3 errors on |
|
~XX |
~XX-18 |
❌ ~18 errors: cross-context dispatch ( |
|
~XX |
~XX-10 |
❌ 10 errors: |
|
~XX |
~XX-11 |
⚠️ ~11 errors: edge cases of |
|
Exact figures live in |
Intentionally skipped tests
| Test | Reason |
|---|---|
|
Foy ships no JSP engine — not supported, not planned. For dynamic pages, use Cassini (REST) or pure Servlets. |
TLD tests ( |
Same — no JSP engine. |
|
|
Tests skipped due to environment
These tests require a full Jakarta EE container or an external service (application JNDI, JMS, JTA). They do not represent an applicative gap of Foy.
-
Application JNDI tests (
@ResourceJDBC) — Foy does not ship an integrated datasource pool; the application injects them through Vauban. -
// TODO@user: complete from foy-tck/TCK.md
Runner architecture
foy-tck is intentionally EXCLUDED from the <modules> of the foy reactor and uses a standalone modelVersion 4.0.0 POM with no <parent>.
Reason. ShrinkWrap Maven Resolver 3.3 (transitive dependency of the official Jakarta TCK) relies on maven-resolver 1.9 / maven-model 3.9, which cannot parse Maven Model 4.1.0 POMs. Its ClasspathWorkspaceReader scans the current reactor and crashes on any Vidocq POM (implicit version through parent) with messages like:
Bad artifact coordinates io.vidocq.foy:foy-core:jar:,
expected format is <groupId>:<artifactId>[:<extension>[:<classifier>]]:<version>
Until upstream ShrinkWrap supports Model 4.1, foy-tck must stay detached:
-
do not put it back in the parent
<modules>; -
do not give it a
<parent>; -
do not build it through
mvn -pl; -
always go through
./run-official-tck-servlet6.1.sh.
The wider rationale lives in link:https://codeberg.org/Vidocq/vidocq/src/branch/main/CLAUDE.md (section TCK runners hors reactor).
Reproduce locally
Prerequisites
Install the official Jakarta Servlet 6.1 TCK artefacts (non-public) into your local M2:
-
jakarta.tck:servlet-tck-runtime:6.1.0 -
jakarta.tck:servlet-tck-util:6.1.0 -
jakarta.tck:servlet-tck:6.1.0(pom)
Detailed procedure in foy-tck/README.md.