From 36263196859f016966be3e7712d6d89d9d67b83b Mon Sep 17 00:00:00 2001 From: Anthony Stirling <77850077+Frooodle@users.noreply.github.com> Date: Mon, 18 May 2026 19:07:11 +0100 Subject: [PATCH] docs+ci: scrub remaining JDK 21 references JPDFium's published artifacts target JVM 25 and Stirling-PDF's main sources are now compiled with sourceCompatibility = VERSION_25, so JDK 21 is no longer supported. Update header comments and developer-facing docs to reflect the hard floor. - backend-build.yml header: 'JDK 21/25 \xc3\x97 spring-security' -> 'JDK 25 \xc3\x97 spring-security' - AGENTS.md Important Notes: minimum 21 -> requires 25 - DeveloperGuide.md prerequisites + setup steps: drop 'or later, 25 recommended' language, say 'JDK 25' outright. --- .github/workflows/backend-build.yml | 4 ++-- AGENTS.md | 2 +- DeveloperGuide.md | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/backend-build.yml b/.github/workflows/backend-build.yml index 78d44815d7..aba02c3609 100644 --- a/.github/workflows/backend-build.yml +++ b/.github/workflows/backend-build.yml @@ -1,7 +1,7 @@ name: Backend build, format check, and coverage -# Reusable workflow called from build.yml. Runs the full backend build matrix -# (JDK 21/25 × spring-security on/off), Spotless formatting check, JUnit, and +# Reusable workflow called from build.yml. Runs the backend build matrix +# (JDK 25 × spring-security on/off), Spotless formatting check, JUnit, and # posts Jacoco coverage to PRs. on: workflow_call: diff --git a/AGENTS.md b/AGENTS.md index fa0340c276..7a9ab7b304 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -431,7 +431,7 @@ The frontend is organized with a clear separation of concerns: ## Important Notes -- **Java Version**: Minimum JDK 21, supports and recommends JDK 25 +- **Java Version**: Requires JDK 25 (raised from 21 to support JPDFium's FFM bindings, which target `org.gradle.jvm.version=25`). - **Lombok**: Used extensively - ensure IDE plugin is installed - **File Persistence**: - **Backend**: Designed to be stateless - files are processed in memory/temp locations only diff --git a/DeveloperGuide.md b/DeveloperGuide.md index fdfab20c5e..a9e7c1c106 100644 --- a/DeveloperGuide.md +++ b/DeveloperGuide.md @@ -11,7 +11,7 @@ This guide focuses on developing for Stirling 2.0, including both the React fron **Stirling 2.0** is built using: **Backend:** -- Spring Boot (Java 21+, JDK 25 recommended) +- Spring Boot (requires JDK 25) - PDFBox for core PDF operations - LibreOffice for document conversions - qpdf for PDF optimization @@ -45,7 +45,7 @@ This guide focuses on developing for Stirling 2.0, including both the React fron - [Task](https://taskfile.dev/installation/) — unified command runner (recommended) - Docker - Git -- Java JDK 21 or later (JDK 25 recommended) +- Java JDK 25 (required — JPDFium FFM bindings target JVM 25) - Node.js 18+ and npm (required for frontend development) - Gradle 7.0 or later (Included within the repo) - [uv](https://docs.astral.sh/uv/) — Python package manager (required for engine development) @@ -61,7 +61,7 @@ This guide focuses on developing for Stirling 2.0, including both the React fron cd Stirling-PDF ``` -2. Install Docker and JDK 21 (or JDK 25 recommended) if not already installed. +2. Install Docker and JDK 25 if not already installed. 3. Install a recommended Java IDE such as Eclipse, IntelliJ, or VSCode 1. Only VSCode