Conversation
… handling - extract ExternalModelRegistry for external contract mapping - extract ModelIgnoreDecider for ignore rules - extract ExternalImportResolver for import injection - simplify GenericAwareJavaCodegen to orchestration only - preserve behavior: no model duplication, correct import injection ensures contract-first generation with external model reuse
…d usage - remove obsolete CustomerDeleteResponse usage - fix Spring Boot 4 client compile-time issues - update adapter and API usage to match ServiceResponse contract - apply import optimizations ensures consistency with contract-first model and generated client
- require explicit generatorName=java-generics-contract - remove implicit activation from parent configuration - add debug logs for registry, ignore decision and import resolution - ensure template directory exists before patching improves predictability, debuggability and explicit adoption of generics codegen
- advance version for ongoing feature development - add customer-service-consumer to demonstrate client usage - validate end-to-end contract → client → consumer flow
- introduce server-openapi-projection.md - introduce client-code-generation.md
- introduce customer-service-consumer layer - add service, client and controller integration structure - add unit tests for consumer services, mappers and exception handling - include core pipeline tests for openapi generics (introspector, schemas, processor, orchestrator)
…, deterministic pipeline) - unify docs around SSOT contract → projection → generation model - remove outdated or misleading concepts (template tweak, OpenAPI authority, etc.) - clarify server as deterministic projection engine (runtime → OpenAPI) - clarify client as contract-aligned generation layer (OpenAPI → Java) - position generator as enforcement layer (not customization) - separate architecture vs usage concerns (BYOC moved out of core architecture) - ensure consistency across README, architecture, and module docs - reflect supported scope and invariants explicitly - improve clarity, terminology, and mental model across all modules
- lower coverage target to 50% after consumer module addition - adjust threshold to reduce noise in CI - keep coverage scoped to samples only - update build and CodeQL workflows for new sample structure (sb3/sb4)
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🧩 Pull Request Template
Thank you for contributing to openapi-generics! 🙌
This repository is contract‑first, projection‑driven, and generator‑sensitive — small changes can affect:
This template is intentionally strict. It ensures reviewers evaluate contract impact first, implementation second.
🚀 0.9.0 Release
This release formalizes the architecture that has been taking shape:
Spring Boot 3 and 4 are both validated. The architecture is no longer a concept — it runs.
🎯 Summary
Enforces explicit, contract-aligned client generation and validates the full contract → OpenAPI → client → consumer pipeline with real usage. This removes implicit generation behavior, stabilizes external contract reuse, and proves deterministic end-to-end alignment across Spring Boot 3 and 4.
📦 Changes
Explicit generator activation
generatorName=java-generics-contractExternal contract reuse (BYOC support)
openapiGenerics.responseContract.*mappingCodegen refactoring (behavior isolation)
ExternalModelRegistryModelIgnoreDeciderExternalImportResolverGenericAwareJavaCodegento orchestration onlySpring Boot 4 client support
Consumer module (NEW)
customer-service-consumer(SB3 & SB4)CI / coverage updates
Documentation updates
🧠 Outcome / Impact
🔐 Contract Awareness
Contract impact: yes
Affected:
Not affected:
ServiceResponse<T>,Page<T>,Meta)🌍 Multi‑Language Considerations
🧱 Affected Layer
openapi-generics-contract)openapi-generics-server-starter)openapi-generics-java-codegen)openapi-generics-java-codegen-parent)🔄 Dependency Path Impact
Client path:
Now requires explicit generator selection and enforces contract reuse.
✅ Checklist
mvn -q -ntp clean verify🧾 Metadata
💡 Review Tips
Core principle: