Skip to content

v0.9.0 — Contract-First Generics Platform, BYOC, and End-to-End Validation

Choose a tag to compare

@bsayli bsayli released this 12 Apr 16:15
· 80 commits to main since this release

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-contract is 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:

  • ExternalModelRegistry
  • ModelIgnoreDecider
  • ExternalImportResolver

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.