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-06-14

Vauban 0.1.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 (see BENCH.md).

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.