Skip to main content

TCK Conformance

Ratchet defines three conformance tiers. Each tier is independently verifiable by third-party implementors — a store author does not need to satisfy Jakarta Runtime contracts to claim Store compatibility.

Conformance Tiers

TierModuleWhat it proves
Store Compatibleratchet-tck-storeThe JobStore SPI implementation correctly persists, queries, and manages job state across 20 contracts covering CRUD, locking, lifecycle, archival, and schema conformance
API Compatibleratchet-tck-apiThe JobSchedulerService API implementation correctly handles job submission, lifecycle, retry, cancel, delayed scheduling, and idempotency without a Jakarta EE container
Jakarta Runtime Compatibleratchet-tck-api + ratchet-tck-jakartaThe runtime passes both API contracts and CDI injection, CDI event, and JTA transaction contracts in a live Jakarta EE container

Ratchet RI Verified is the project's own claim: the reference implementation passes all three tiers on a published matrix of servers and databases.

Store Conformance Reports

The reports below are generated automatically during CI from the test runs of each store module. Each report lists every store contract with its pass/fail/missing status, grouped by Core, Behavioral, and Advanced categories.

StoreReport
MySQLMySQL Store Conformance
PostgreSQLPostgreSQL Store Conformance
MongoDBMongoDB Store Conformance

API and Jakarta Runtime Reports

Results are published for all 12 server × database combinations (WildFly, Payara, Open Liberty, GlassFish × MySQL, PostgreSQL, MongoDB) and regenerated after each successful CI run on main.

Running Conformance Tests Locally

Store tier:

mvn test -pl ratchet-store-mysql -am      # generates ratchet-store-mysql/target/tck-conformance-report.md
mvn test -pl ratchet-store-postgresql -am
mvn test -pl ratchet-store-mongodb -am

API + Jakarta Runtime tier:

mvn verify -P wildfly-managed,mysql -pl ratchet-testsuite -am
# generates ratchet-testsuite/target/tck-api-conformance-report.md
# ratchet-testsuite/target/tck-jakarta-conformance-report.md

Implementing a Conformant Store

To claim Ratchet Store Compatible, add ratchet-tck-store as a test dependency and extend every abstract contract class. The ConformanceReportExtension listener activates automatically and writes target/tck-conformance-report.md at the end of each test run. Inject your store name so the report header is meaningful:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<ratchet.tck.store.name>${project.artifactId}</ratchet.tck.store.name>
</systemPropertyVariables>
</configuration>
</plugin>