|
24 | 24 | * [Real usage (what you actually do)](#real-usage-what-you-actually-do) |
25 | 25 | * [Quick start (2 minutes)](#quick-start-2-minutes) |
26 | 26 | * [Compatibility](#compatibility) |
| 27 | +* [Relationship to OpenAPI Generator](#relationship-to-openapi-generator) |
27 | 28 | * [Contract lifecycle model](#contract-lifecycle-model) |
28 | 29 | * [Core idea](#core-idea) |
29 | 30 | * [System Architecture Overview](#system-architecture-overview) |
@@ -300,6 +301,39 @@ See the full compatibility matrix and support policy: [Compatibility & Support P |
300 | 301 |
|
301 | 302 | --- |
302 | 303 |
|
| 304 | +## Relationship to OpenAPI Generator |
| 305 | + |
| 306 | +This is **not a fork** of OpenAPI Generator. It uses the upstream tool |
| 307 | +as a Maven dependency and adds a Java/Spring Boot specialization layer |
| 308 | +on top. |
| 309 | + |
| 310 | +What stays upstream: |
| 311 | + |
| 312 | +- OpenAPI Generator (used as-is, fresh extraction on every build) |
| 313 | +- OpenAPI 3.x spec (only `x-` vendor extensions added) |
| 314 | +- The full upstream template chain |
| 315 | + |
| 316 | +What this project adds: |
| 317 | + |
| 318 | +- A custom generator extending `JavaClientCodegen` |
| 319 | +- A surgical patch to upstream `model.mustache` that injects a single |
| 320 | + generic-aware branch — the rest is untouched |
| 321 | +- Vendor extensions (`x-api-wrapper`, `x-data-container`) carrying |
| 322 | + generic semantics through the spec |
| 323 | +- Server-side `OpenApiCustomizer` for contract introspection |
| 324 | + |
| 325 | +Why not just drop a custom `model.mustache` into `templateDirectory`? |
| 326 | +That approach freezes a snapshot of the upstream template and quietly |
| 327 | +falls behind as upstream evolves. This project keeps upstream as the |
| 328 | +source of structure, injects only the generic-aware branch, and fails |
| 329 | +the build fast if upstream changes invalidate the patch. |
| 330 | + |
| 331 | +Cross-language parity is an explicit non-goal. Java generics deserve a |
| 332 | +generics-aware solution; other languages may benefit from different |
| 333 | +specializations on top of the same upstream. |
| 334 | + |
| 335 | +--- |
| 336 | + |
303 | 337 | ## Contract lifecycle model |
304 | 338 |
|
305 | 339 | ```text |
|
0 commit comments