Stubborn Contract 0.1.0
First stable release of the official continuation of Spring Cloud Contract, on a current stack and published to Maven Central.
Highlights
- Modern stack — Java 17+ (tested on 21 & 25), Spring Boot 4.1 / Framework 7 / Jackson 3, no
spring-cloud-build. - Spring-free messaging building blocks — Kafka, RabbitMQ, JMS, held to a transport-neutral conformance TCK against real brokers; usable from any JVM runtime (Spring, Quarkus out of the box).
- Zero-config JSON conversion for typed
@KafkaListener/@RabbitListener/@JmsListenerparameters. - Groovy out of the core and the tests — easier to maintain and contribute to (JUnit 5 + AssertJ/Mockito); Groovy DSL contracts still fully supported.
- Drop-in SCC compatibility — existing contracts, WireMock stubs, and
spring.cloud.contract.stubrunner.*config keep working.
Get it
<dependency>
<groupId>sh.stubborn</groupId>
<artifactId>stubborn-contract-dependencies</artifactId>
<version>0.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>##Known issue
- Kafka producer-verify path can double-encode a payload when the app producer uses JsonSerializer (stubborn-sh/stubborn-contract#164). Fix targeted for 0.1.1.
Migration guide:
https://docs.stubborn.sh/contract/migration/from-spring-cloud-contract