Skip to content

Commit 9566fa9

Browse files
committed
chore(deps+docs): upgrade to Spring Boot 3.4.11 and OpenAPI Generator 7.17.0, update docs and CodeQL
- Upgraded Spring Boot to 3.4.11 and OpenAPI Generator to 7.17.0 - Updated architectural diagram to reflect current stack (Spring Boot 3.4.x, RFC 9457) - Revised documentation and version references across README and guides - Enhanced CodeQL configuration with +security-and-quality query pack - No functional changes; maintenance and alignment release groundwork for v0.7.3
1 parent 9f7c9ea commit 9566fa9

File tree

11 files changed

+30
-27
lines changed

11 files changed

+30
-27
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ body:
3939
description: "Tool versions or environment details."
4040
placeholder: |
4141
- Java: 21
42-
- OpenAPI Generator: 7.16.0
42+
- OpenAPI Generator: 7.17.0
4343
- Spring Boot: 3.4.x
4444
- OS: macOS / Windows / Linux
4545
- type: textarea

.github/workflows/codeql.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333
uses: github/codeql-action/init@v3
3434
with:
3535
languages: java
36+
queries: +security-and-quality
37+
3638
- name: Build (customer-service)
3739
run: mvn -q -ntp -DskipTests=true clean package
3840
working-directory: customer-service

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
[![Release](https://img.shields.io/github/v/release/bsayli/spring-boot-openapi-generics-clients?logo=github\&label=release)](https://github.com/bsayli/spring-boot-openapi-generics-clients/releases/latest)
55
[![codecov](https://codecov.io/gh/bsayli/spring-boot-openapi-generics-clients/branch/main/graph/badge.svg)](https://codecov.io/gh/bsayli/spring-boot-openapi-generics-clients)
66
[![Java](https://img.shields.io/badge/Java-21-red?logo=openjdk)](https://openjdk.org/projects/jdk/21/)
7-
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.10-green?logo=springboot)](https://spring.io/projects/spring-boot)
8-
[![OpenAPI Generator](https://img.shields.io/badge/OpenAPI%20Generator-7.16.0-blue?logo=openapiinitiative)](https://openapi-generator.tech/)
7+
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.11-green?logo=springboot)](https://spring.io/projects/spring-boot)
8+
[![OpenAPI Generator](https://img.shields.io/badge/OpenAPI%20Generator-7.17.0-blue?logo=openapiinitiative)](https://openapi-generator.tech/)
99
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1010

1111
---
@@ -16,7 +16,7 @@
1616
<em><strong>End-to-end generics-aware OpenAPI clients</strong> — unified <code>{ data, meta }</code> responses without boilerplate.</em>
1717
</p>
1818

19-
**Modern, type-safe OpenAPI client generation** — powered by **Spring Boot 3.4**, **Java 21**, and **OpenAPI Generator 7.16.0**.
19+
**Modern, type-safe OpenAPI client generation** — powered by **Spring Boot 3.4**, **Java 21**, and **OpenAPI Generator 7.17.0**.
2020
This repository demonstrates a production-grade setup where backend and client remain fully aligned through generics, supporting nested envelopes like `ServiceResponse<Page<T>>` and standardized [**RFC 9457 — Problem Details for HTTP APIs**](https://www.rfc-editor.org/rfc/rfc9457) error handling.
2121

2222
> 🧠 **RFC 9457 vs RFC 7807**
@@ -139,6 +139,7 @@ public class ServiceResponsePageCustomerDto
139139

140140
---
141141

142+
<a id="architecture-overview"></a>
142143
## ⚙️ Architecture Overview
143144

144145
<p align="center">
@@ -148,9 +149,9 @@ public class ServiceResponsePageCustomerDto
148149
</p>
149150

150151
| Layer | Description |
151-
| --------------------- | ----------------------------------------------------------------------------------------------------- |
152+
| --------------------- |-------------------------------------------------------------------------------------------------------|
152153
| **Server (Producer)** | Publishes an **OpenAPI 3.1-compliant** spec via Springdoc 2.8.13 with auto-registered wrapper schemas |
153-
| **Client (Consumer)** | Uses **OpenAPI Generator 7.16.0** with Mustache overlays for generics support |
154+
| **Client (Consumer)** | Uses **OpenAPI Generator 7.17.0** with Mustache overlays for generics support |
154155
| **Envelope Model** | Unified `{ data, meta }` response structure |
155156
| **Error Handling** | **RFC 9457-compliant Problem Details** decoded into `ClientProblemException` |
156157
| **Nested Generics** | Full support for `ServiceResponse<Page<T>>` |
@@ -262,11 +263,11 @@ for (CustomerDto c : page.content()) {
262263
## 🧩 Tech Stack
263264

264265
| Component | Version | Purpose |
265-
| --------------------- | ------- | ------------------------------------- |
266+
| --------------------- |---------| ------------------------------------- |
266267
| **Java** | 21 | Language baseline |
267-
| **Spring Boot** | 3.4.10 | REST + OpenAPI provider |
268+
| **Spring Boot** | 3.4.11 | REST + OpenAPI provider |
268269
| **Springdoc** | 2.8.13 | OpenAPI 3.1 integration |
269-
| **OpenAPI Generator** | 7.16.0 | Generics-aware code generation |
270+
| **OpenAPI Generator** | 7.17.0 | Generics-aware code generation |
270271
| **HttpClient5** | 5.5 | Pooled, production-ready HTTP backend |
271272

272273
---

customer-service-client/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# customer-service-client
22

33
[![Java 21](https://img.shields.io/badge/Java-21-red?logo=openjdk)](https://openjdk.org/projects/jdk/21/)
4-
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.10-green?logo=springboot)](https://spring.io/projects/spring-boot)
5-
[![OpenAPI Generator](https://img.shields.io/badge/OpenAPI%20Generator-7.16.0-blue?logo=openapiinitiative)](https://openapi-generator.tech/)
4+
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.11-green?logo=springboot)](https://spring.io/projects/spring-boot)
5+
[![OpenAPI Generator](https://img.shields.io/badge/OpenAPI%20Generator-7.17.0-blue?logo=openapiinitiative)](https://openapi-generator.tech/)
66
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../LICENSE)
77

88
Generated Java client for the **customer-service**, showcasing **type‑safe generic responses** and **nested generics** with a minimal OpenAPI Generator Mustache overlay.
@@ -32,7 +32,7 @@ mvn -q clean install
3232

3333
## ✅ What You Get
3434

35-
* **OpenAPI Generator 7.16.0** + **Spring `RestClient`**-based Java client.
35+
* **OpenAPI Generator 7.17.0** + **Spring `RestClient`**-based Java client.
3636
* Reusable generic base: `ServiceClientResponse<T>` containing `{ data, meta }`.
3737
* **Nested generics** support: `ServiceClientResponse<Page<CustomerDto>>`.
3838
* **RFC 9457 Problem decoding** via `ClientProblemException`.
@@ -270,7 +270,7 @@ These classes already exist in the shared `common` package and are excluded from
270270

271271
## 📚 Notes
272272

273-
* **Toolchain:** Java 21, Spring Boot 3.4.10, OpenAPI Generator 7.16.0
273+
* **Toolchain:** Java 21, Spring Boot 3.4.11, OpenAPI Generator 7.17.0
274274
* **Options:** `useSpringBoot3=true`, `useJakartaEe=true`, `serializationLibrary=jackson`, `dateLibrary=java8`
275275
* **Spec file:** `src/main/resources/customer-api-docs.yaml`
276276
* Optional: `x-class-extra-annotation` injects annotations on wrappers.

customer-service-client/pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>io.github.bsayli</groupId>
88
<artifactId>customer-service-client</artifactId>
9-
<version>0.7.2</version>
9+
<version>0.7.3</version>
1010
<name>customer-service-client</name>
1111
<description>Generated client (RestClient) using generics-aware OpenAPI templates</description>
1212
<packaging>jar</packaging>
@@ -16,11 +16,11 @@
1616
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
1717
<java.version>21</java.version>
1818

19-
<spring-boot.version>3.4.10</spring-boot.version>
20-
<openapi.generator.version>7.16.0</openapi.generator.version>
19+
<spring-boot.version>3.4.11</spring-boot.version>
20+
<openapi.generator.version>7.17.0</openapi.generator.version>
2121

2222
<jakarta.validation.version>3.1.1</jakarta.validation.version>
23-
<jakarta.annotation-api.version>${spotless-maven-plugin.version}</jakarta.annotation-api.version>
23+
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
2424
<mockwebserver.version>5.1.0</mockwebserver.version>
2525
<httpclient5.version>5.5</httpclient5.version>
2626
<junit-jupiter.version>5.13.4</junit-jupiter.version>

customer-service-client/src/main/resources/customer-api-docs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ openapi: 3.1.0
22
info:
33
title: Customer Service API
44
description: Customer Service API with type-safe generic responses using OpenAPI
5-
version: 0.7.2
5+
version: 0.7.3
66
servers:
77
- url: http://localhost:8084/customer-service
88
description: Local service URL

customer-service/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# customer-service
22

33
[![Java](https://img.shields.io/badge/Java-21-red?logo=openjdk)](https://openjdk.org/projects/jdk/21/)
4-
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.10-green?logo=springboot)](https://spring.io/projects/spring-boot)
4+
[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.11-green?logo=springboot)](https://spring.io/projects/spring-boot)
55
[![Build](https://github.com/bsayli/spring-boot-openapi-generics-clients/actions/workflows/build.yml/badge.svg)](https://github.com/bsayli/spring-boot-openapi-generics-clients/actions/workflows/build.yml)
66
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](../LICENSE)
77

@@ -60,7 +60,7 @@ This module serves as the **server-side anchor**: the reference point for generi
6060
## 🛠 Tech Stack
6161

6262
* **Java 21**
63-
* **Spring Boot 3.4.10**
63+
* **Spring Boot 3.4.11**
6464

6565
* spring-boot-starter-web
6666
* spring-boot-starter-validation

customer-service/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>3.4.10</version>
10+
<version>3.4.11</version>
1111
<relativePath/>
1212
</parent>
1313

1414
<groupId>io.github.bsayli</groupId>
1515
<artifactId>customer-service</artifactId>
16-
<version>0.7.2</version>
16+
<version>0.7.3</version>
1717
<name>customer-service</name>
1818
<description>Spring Boot 3.4 + Springdoc (OpenAPI) for generics-aware client generation</description>
1919

@@ -23,7 +23,7 @@
2323
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
2424
<springdoc-openapi-starter.version>2.8.13</springdoc-openapi-starter.version>
2525
<maven.compiler.release>${java.version}</maven.compiler.release>
26-
<commons-lang3.version>3.18.0</commons-lang3.version>
26+
<commons-lang3.version>3.19.0</commons-lang3.version>
2727
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
2828
<maven-failsafe-plugin.version>3.2.5</maven-failsafe-plugin.version>
2929
<jacoco-maven-plugin.version>0.8.13</jacoco-maven-plugin.version>

docs/adoption/client-side-adoption-pom.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Define reusable properties to simplify plugin management and template resolution
6969
```xml
7070

7171
<properties>
72-
<openapi.generator.version>7.16.0</openapi.generator.version>
72+
<openapi.generator.version>7.17.0</openapi.generator.version>
7373
<openapi.templates.upstream>${project.build.directory}/openapi-templates-upstream</openapi.templates.upstream>
7474
<openapi.templates.effective>${project.build.directory}/openapi-templates-effective</openapi.templates.effective>
7575
<build.helper.plugin.version>3.6.0</build.helper.plugin.version>
9.26 KB
Loading

0 commit comments

Comments
 (0)