You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -294,15 +294,15 @@ No migration is required for existing users.
294
294
295
295
## Key Features
296
296
297
-
| Feature | What it does | Default |
298
-
|----------|--------------|---------|
299
-
| **BYOE** — Bring Your Own Envelope | Reuse your existing response envelope (for example `ApiResponse<T>`) instead of `ServiceResponse<T>`. No migration required. | `ServiceResponse<T>` |
300
-
| **BYOC** — Bring Your Own Contract | Reuse your existing domain DTOs instead of generating duplicate models. | Generate from spec |
301
-
| **Application-defined containers** | Register your own generic container contracts (for example `Paging<T>` or `Window<T>`) and have them participate in the same projection, metadata, and reconstruction pipeline as built-in containers. | Built-in containers only |
302
-
| **Container-aware reconstruction** | Deterministically reconstruct built-in and configured generic container types from OpenAPI metadata instead of using container-specific generation logic. | Enabled |
303
-
| **Fallback to standard generation** | Disable the generics-aware template patching with a single Maven property. To fully revert to stock OpenAPI Generator behavior, switch the client module to `generatorName=java`. | Generics-aware generation enabled |
304
-
| **Deterministic generation** | Apply deterministic template patching, generated-source hygiene, and build-time validation to produce stable, reproducible Java clients. | Enabled |
305
-
| **End-to-end samples** | Complete producer, client, and consumer pipelines for Spring Boot 3, Spring Boot 4, `ServiceResponse`, and BYOE scenarios. | See [samples](samples/) |
| **BYOE** — Bring Your Own Envelope | Reuse your existing response envelope (for example `ApiResponse<T>`) instead of `ServiceResponse<T>`. No migration required. | `ServiceResponse<T>` |
300
+
| **BYOC** — Bring Your Own Contract | Reuse your existing domain DTOs instead of generating duplicate models. | Generate from spec |
301
+
| **Application-defined containers** | Register your own generic container contracts (for example `Paging<T>` or `Window<T>`) and have them participate in the same projection, metadata, and reconstruction pipeline as built-in containers. | Built-in containers only |
302
+
| **Container-aware reconstruction** | Deterministically reconstruct built-in and configured generic container types from OpenAPI metadata instead of using container-specific generation logic. | Enabled |
303
+
| **Fallback to standard generation** | Disable the generics-aware template patching with a single Maven property. To fully revert to stock OpenAPI Generator behavior, switch the client module to `generatorName=java`. | Generics-aware generation enabled |
304
+
| **Deterministic generation** | Apply deterministic template patching, generated-source hygiene, and build-time validation to produce stable, reproducible Java clients. | Enabled |
305
+
| **End-to-end samples** | Complete producer, client, and consumer pipelines for Spring Boot 3, Spring Boot 4, `ServiceResponse`, and BYOE scenarios. | See [samples](samples/) |
306
306
307
307
---
308
308
@@ -397,10 +397,10 @@ To fully revert to stock OpenAPI Generator behavior:
| [`openapi-generics-server-starter`](openapi-generics-server-starter/README.md) | Spring Boot integration that projects generic contract metadata into OpenAPI. |
| [`openapi-generics-server-starter`](openapi-generics-server-starter/README.md) | Spring Boot integration that projects generic contract metadata into OpenAPI. |
|**Specification**| What the OpenAPI and JSON Schema standards define or deliberately omit. | Dynamic references exist; no native generic type parameter syntax. | Future specification work. |
92
-
|**Implementation**| Behavior of a specific parser, dereferencer, or generator. | Partial or conservative handling of dynamic references in major implementations. | Contributions to individual projects. |
93
-
|**Ecosystem**| Emergent behavior from composition of multiple tools and frameworks.| End-to-end loss of generic relationships across Springdoc → parser → generator paths. | Compatibility layers or coordinated evolution. |
89
+
| Category | Description | Current Relevance to Generic Contract Preservation | Primary Remediation Path|
|**Specification**| What the OpenAPI and JSON Schema standards define or deliberately omit. | Dynamic references exist; no native generic type parameter syntax. | Future specification work.|
92
+
|**Implementation**| Behavior of a specific parser, dereferencer, or generator. | Partial or conservative handling of dynamic references in major implementations. | Contributions to individual projects.|
93
+
|**Ecosystem**| Emergent behavior from composition of multiple tools and frameworks. | End-to-end loss of generic relationships across Springdoc → parser → generator paths. | Compatibility layers or coordinated evolution. |
94
94
95
95
This project operates primarily at the ecosystem level. It accepts the current practical state of specification support and core implementation behavior as the baseline for production use and introduces a deterministic layer that works with existing OpenAPI documents.
The client generation parent provides a tested default OpenAPI Generator version, but consumers may override `openapi-generator.version` within the supported 7.x line.
|`type-coverage/service-response`| Validates the canonical platform-provided `ServiceResponse<T>` contract. |
287
+
|`type-coverage/byoe-response`| Validates Bring Your Own Envelope support using a user-owned `ApiResponse<T>` contract. |
288
288
289
289
These samples are used as executable regression suites for projection metadata, vendor extensions, wrapper reconstruction, generated client typing, runtime deserialization, and consumer compatibility.
0 commit comments