This page consolidates the state of the official CDI 4.1 TCK runs against Vauban. The source of truth is the vauban-tck-runner, executed on every build: 774/774 CDI Lite tests pass (100%).

Summary

Metric Value Detail Notes

Profile under test

CDI Lite

Subset of the 4.1 TCK

The Full profile is not in scope.

Last run

2026-07-13

Vauban 0.3.0-SNAPSHOT

Profile -Ptck on vauban-tck-runner.

CDI Lite tests (non-skipped)

774

Official CDI Lite subset.

Passed

774

100%

Full Lite profile.

Failed

0

—

Errors

0

No JVM crash, no uncaught Throwable.

Wall-clock time

~5 s

On the last-run host.

Historical progression

Start     ~12%   ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Session 1 38.2%  ████████████████░░░░░░░░░░░░░░░░░░░░░░░░  (+200)
Session 2 52.5%  █████████████████████░░░░░░░░░░░░░░░░░░░  (+113)
Current   100%   ████████████████████████████████████████  (774/774)

Major features covered

Feature Status

Managed beans (@ApplicationScoped, @RequestScoped, @Dependent, @Singleton)

✅

Injection (@Inject fields, constructors, methods)

✅

Qualifiers (@Named, @Default, @Any, custom, @Nonbinding)

✅

Producers (@Produces methods and fields)

✅

Disposers (@Disposes)

✅

Events (Event<T>, @Observes, @ObservesAsync)

✅

Stereotypes (@Stereotype)

✅

Alternatives (@Alternative, @Priority)

✅

Instance<T> programmatic lookup

✅

InjectionPoint metadata

✅

@Typed, @Vetoed

✅

Observer priority and Reception.IF_EXISTS

✅

Interceptors (@AroundInvoke, @AroundConstruct)

✅

Client proxies (normal scopes)

✅

Build Compatible Extensions (BCE)

✅

@TransientReference, EventMetadata

✅

Tests intentionally skipped

Category Reason

Runtime portable extensions (Extension, BeforeBeanDiscovery, AfterBeanDiscovery)

Out of the Lite profile. Vauban implements only Build Compatible Extensions.

@ConversationScoped

Out of the Lite profile.

PassivationCapable / passivation

Out of the Lite profile. Beans are not serialisable.

EL wired into managed beans

Out of the Lite profile. jakarta.el is required only as a spec dependency, not activated on application beans.

@Specializes

Out of the Lite profile (deferred to a possible Full profile).

Tests skipped for environment reasons

  • Arquillian tests requiring a servlet container: out of scope for Vauban (covered by Foy).

  • Advanced EL tests: require an application-level EL evaluator, not wired in the Vauban runner.

Open bugs impacting coverage

Tracked in BUG.md:

ID Symptom Status

VAU-PRX-002

Drift between ClientProxyGenerator (compile time) and RuntimeClientProxyGenerator (runtime)

Fixed

VAU-INJ-001

Field injection eagerly resolves normal-scoped beans (loses the client proxy)

Fixed (2026-05-07)

Reproduce locally

cd vauban
sdk env
mvn install -DskipTests -q && mvn test -pl vauban-tck-runner -Ptck

The runner uses Arquillian + TestNG. The Surefire report lands in vauban-tck-runner/target/surefire-reports/.

Per the workspace constraint, vauban-tck-runner is included in the Vauban reactor — unlike cassini-tck or foy-tck, which are detached because of ShrinkWrap Maven Resolver. The CDI TCK does not depend on ShrinkWrap Resolver in this configuration.