v0.9.0 — Contract-First Generics Platform, BYOC, and End-to-End Validation
This release formalizes the architecture that has been evolving across previous versions.
The platform is now explicitly contract-first, supports external contract reuse (BYOC), and is validated end-to-end with real consumer modules.
This is the release where the architecture is no longer a concept — it runs.
🎯 What This Release Establishes
- Contract-first generation is now explicit and enforced
- External contract reuse (Bring Your Own Contract - BYOC) is now first-class
- The full pipeline is proven end-to-end:
Contract → OpenAPI → Generated Client → Consumer
- Both Spring Boot 3 and Spring Boot 4 stacks are validated
🔧 What Changed
Explicit Generator Activation
generatorName=java-generics-contractis now required- implicit activation removed from parent configuration
This makes generation behavior:
explicit, predictable, and debuggable
External Contract Reuse (BYOC)
- Introduced
openapiGenerics.responseContract.*mapping - Enabled reuse of externally owned DTOs
- Prevented duplicate model generation
- Ensured correct import injection in generated wrappers
This establishes:
contract ownership outside the generator, without drift
Codegen Refactoring
Generator internals were decomposed for clarity and control:
ExternalModelRegistryModelIgnoreDeciderExternalImportResolver
GenericAwareJavaCodegen is now focused on orchestration only.
Spring Boot 4 Client Support
- RestClient-based client generation
- Jackson 3 compatibility
- Fixed compile-time issues in SB4 client
Consumer Module (NEW)
- Added
customer-service-consumer(SB3 & SB4) - Demonstrates real client usage
- Validates full pipeline integration
This provides:
executable proof that contract alignment holds in real usage
CI & Coverage Updates
- Coverage scoped to sample modules
- Baseline adjusted to 50%
- Workflows updated for SB3 / SB4 structure
Documentation Updates
- Aligned client adoption guide with explicit configuration model
- Clarified generator usage
- Documented contract reuse approach
📦 Impact
- Client generation is now explicit and deterministic
- External contract models are reused (no duplication)
- Generator behavior is easier to reason about and debug
- Architecture is validated with real consumer integration
- Documentation reflects actual system behavior
🔐 Compatibility
| Component | Supported Versions |
|---|---|
| Java | 17+ |
| Spring Boot | 3.x / 4.x |
🧭 Context
Previous releases established:
- platform modularization
- Maven Central publishing
- generics-aware generation baseline
This release completes the picture by ensuring:
contract definition, projection, generation, and consumption are aligned and verifiable
🎯 Summary
v0.9.0 is an architecture consolidation release.
No shortcuts. No implicit behavior.
Just:
explicit contracts, deterministic generation, and proven end-to-end alignment.