jawelte
the test-framework
// april 2026  ·  open source  ·  jakarta 11  ·  junit 6

// introducing jawelte

Testing Jakarta applications is harder than it should be. You wire together a JPA provider, a transaction manager, an embedded JAX-RS server, a test database, mock libraries and stub servers — and before you have written a single assertion, you have already written hundreds of lines of infrastructure. Then you do it again for the next project. And the next.

jawelte exists to end that. It is a Java test framework built on the Jakarta 10 platform that makes integration testing as simple as writing a plain JUnit test. One annotation. A running container. Your test.

// the name

The name is not an accident. Every letter earns its place.

jawelte
jaJakarta — the platform jawelte is built for and built with
welWeld — the CDI reference implementation
tetest — what it is all about
jawel·teDutch "yes indeed" + test — or in German: jawohl test. because your tests should pass. absolutely.

// the logo

jawelte has two logos. The version 1.0 logo is the target — the mark the project will carry once it reaches its first stable release. Until then, the work-in-progress logo is what you will see in repositories, docs and releases. Both tell the same story; the WIP logo carries a gear and checkmark to signal that we are still building — and that tests should pass.

work in progress jawelte the test-framework experimental used during development
version 1.0 jawelte the test-framework target for stable release

The version 1.0 logo carries an x above the W — two-colored, the red \ a failing test, the green / a passing one. Together they form the universal symbol for a test result. The W below is built from two checkmarks mirrored on the y-axis — red left tick failing, green right tick passing.

The work-in-progress logo replaces the x with a gear and checkmark. The gear is a deliberate signal: jawelte is under active construction. Not ready. Not stable. Moving parts still turning. The checkmark inside it is the destination — tests that pass, reliably, every time. The word experimental below the tagline makes the status explicit: use it, try it, break it — but know what you are holding. When the gear disappears and the x returns, jawelte is done.

// what jawelte does

jawelte is not just built for Jakarta — it is built with it. CDI beans and events form its internal backbone. MicroProfile Config drives its configuration. Every abstraction jawelte exposes is backed by the same standards it helps you test.

Core technologies:

jakarta 11 · junit 6 CDI MicroProfile Config

First-class integrations — all opt-in, all pluggable:

JPAJTAJAX-RSMicroProfileDB-UnitH2MockitoWireMock

// how it works

Every test method runs in its own CDI request scope. If you need a database, jawelte boots JPA and JTA, loads your test data, and wraps your entire test — setup, execution and assertion — in a single shared transaction. Before the assert phase, the EntityManager is flushed so you can inspect the real database state. Then the transaction is rolled back. No cleanup. No leftover state. Fast.

Test data is declared externally — via DB-Unit datasets — and referenced per test method through an annotation. Datasets can be shared across a test class or specific to a single method, or both combined. The framework loads them. You focus on the assertion.

// design principles

simple to use
if you know JUnit, you already know how to run a jawelte test
minimal by design
a small, intentional API with meaningful defaults — configuration only when you need it
pluggable at heart
every integration is a port-and-adapter — add what you need, leave out what you don't
solid to the core
jawelte is exhaustively self-tested and thoroughly documented — it eats its own cooking
fast by necessity
integrating many technologies is no excuse for being slow — startup is lean, rollback is the default

// what's next

jawelte is in active development. The core — JUnit 5 extension, CDI lifecycle, MicroProfile Config integration and the port/adapter SPI — is being built first. Integrations follow. Documentation and self-tests ship alongside the code, not after.

The goal is a framework the Jakarta community can rely on. Solid, fast, honest about what it does. And when your test passes — jawohl.

license  ·  jawelte is released under the Apache License 2.0 — free to use, modify and distribute, in open source and commercial projects alike.
jawelte  ·  open source  ·  jakarta 11  ·  junit 6  ·  built on cdi