chore: remove retired Spring Boot 2 starter - #827
Conversation
There was a problem hiding this comment.
Pull request overview
Removes the retired Spring Boot 2 starter module from the active Gradle build while preserving user-facing guidance via EOL documentation and links to the archived v4.45.0 tag/README.
Changes:
- Deletes the
openai-java-spring-boot-startermodule sources, resources, and tests so it no longer compiles/tests againstmain. - Updates the version-support policy data/docs to remove the retired artifact from active support tracking while documenting its retirement and archival location.
- Replaces the active README’s legacy Spring Boot 2 guide with links to the EOL decision and
v4.45.0archived documentation.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Removes the legacy Spring Boot 2 starter guide and links to the EOL doc + v4.45.0 archived README section. |
| openai-java-spring-boot-starter/src/test/kotlin/com/openai/springboot/SpringBootLoggingCompatibilityTest.kt | Deletes Spring Boot 2 starter logging compatibility test (module removed). |
| openai-java-spring-boot-starter/src/test/kotlin/com/openai/springboot/OpenAIClientAutoConfigurationTest.kt | Deletes Spring Boot 2 starter property binding / autoconfiguration tests (module removed). |
| openai-java-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports | Deletes Boot autoconfiguration imports file (module removed). |
| openai-java-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json | Deletes Spring configuration metadata (module removed). |
| openai-java-spring-boot-starter/src/main/kotlin/com/openai/springboot/OpenAIClientProperties.kt | Deletes Spring Boot 2 configuration properties class (module removed). |
| openai-java-spring-boot-starter/src/main/kotlin/com/openai/springboot/OpenAIClientCustomizer.kt | Deletes starter customizer SPI (module removed). |
| openai-java-spring-boot-starter/src/main/kotlin/com/openai/springboot/OpenAIClientAutoConfiguration.kt | Deletes starter autoconfiguration class (module removed). |
| openai-java-spring-boot-starter/build.gradle.kts | Deletes starter module Gradle build definition (module removed). |
| gradle/version-support.properties | Removes retired starter artifact entries from the active version-support properties. |
| docs/version-support-policy.md | Updates the support-policy table entry to explicitly reflect the starter is retired and no longer built. |
| docs/spring-boot-2-eol.md | Adds “History and source removal” section documenting rationale and linking to archived v4.45.0 source/README. |
| CONTRIBUTING.md | Updates project structure section to reflect the starter is retired and points contributors to EOL docs and the v4.45.0 tag. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
HAYDEN-OAI
left a comment
There was a problem hiding this comment.
Reviewed the complete diff and prior review/history at 6089d3c9cc573e939fab0e9693fc7720f76658cf, including issue #480, prior EOL decision #820, Gradle project discovery, version-support/runtime-compatibility policy, release/publication wiring, README, and migration ADR. The starter was already unpublished before this change; removing its source cleanly retires the Spring Boot 2 dependency graph while preserving com.openai:openai-java-spring-boot-starter:4.45.0, its published POM/JAR/sources, tagged implementation and configuration guide, and consumer migration path. No actionable findings.
Summary
openai-java-spring-boot-startermodule, its tests, and its active version-support entryHistory and intent
The starter was introduced in SDK 2.18.0 to resolve #480, an external request for Spring Boot
application.propertiesandapplication.ymlsupport. It was a customer-facing convenience artifact—not a test fixture—and provided property binding plus an injectableOpenAIClientbean.PR #820 subsequently declared the Spring Boot 2 integration EOL. Version 4.45.0 is already the final supported and published release; later SDK releases do not publish the starter.
Why remove the source now?
Keeping the module on
maindid not verify the frozen 4.45.0 release. Its build usedproject(":openai-java"), so every repository build compiled and tested an unpublished combination of the current SDK with Spring Boot 2.7.18.That also kept the EOL Spring dependency graph active. Eleven of the twelve currently open Dependabot alerts are Spring/Spring Boot advisories attributable to this module. Spring Boot 2.7.18 is the final public OSS release in that generation, so there is no supported OSS patch upgrade within Boot 2.
This change does not assume that there are no existing users and does not withdraw their artifact. Maven Central and the
v4.45.0tag retain the exact final release, while the active repository stops maintaining and scanning a combination that is neither published nor supported.A future supported Spring integration remains a separate, generation-specific artifact decision under the repository's version-support policy. This PR does not change the existing coordinate to a newer and incompatible Spring generation.
Consumer impact
com.openai:openai-java-spring-boot-starter:4.45.0.openai-javadirectly and provide an application-ownedOpenAIClientbean.Validation
Run with JDK 21:
./scripts/gradle projects verifyVersionSupportPolicy --no-configuration-cache./scripts/lint./scripts/build --no-configuration-cache./scripts/test --no-daemon --no-configuration-cache(including ProGuard and R8)./scripts/detect-breaking-changes origin/maingit diff --checkThe required thermo-nuclear code-quality review found one documentation-ownership issue: the active README still carried the full EOL starter guide. The guide is now archived with v4.45.0 and the active README contains only the lifecycle warning and historical link. No remaining findings.