Skip to content

Conversation

@springframeworkguru
Copy link
Contributor

This pull request upgrades the project to use Java 25 and Spring Boot 4.0 across all modules, updates documentation to reflect these changes, and modernizes the openespi-authserver module's Maven configuration and dependencies. It also introduces guidance for Spring Boot 4.0 migration and deprecations in the project guidelines.

Project-wide Java and Spring Boot upgrade:

  • Updated all CI/CD workflows, documentation, and module tables to use Java 25 instead of Java 21, and Spring Boot 4.0 instead of 3.5. This includes .github/workflows/ci.yml, .github/workflows/pr-checks.yml, README.md, .junie/guidelines.md, and .github/CI_CD_SETUP.md. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]

Spring Boot 4.0 migration guidance:

  • Added a new section to .junie/guidelines.md detailing Spring Boot 4.0 updates, including annotation deprecations/replacements, new Maven dependencies for testing, and package changes for test annotations.

openespi-authserver module modernization:

  • Switched the Maven parent to a new openespi-parent and updated the module description for Spring Boot 4.0 in openespi-authserver/pom.xml.
  • Updated dependencies to use new Spring Boot 4.0 artifacts (e.g., spring-boot-starter-security-oauth2-authorization-server, spring-boot-starter-webmvc), replaced deprecated dependencies, and added new test dependencies as per Spring Boot 4.0 requirements. [1] [2]
  • Replaced direct Flyway dependency with spring-boot-starter-flyway and added support for PostgreSQL migrations.
  • Updated Testcontainers dependencies to the new artifact names and removed explicit version properties in favor of parent management.
  • Cleaned up Maven resource and testResource sections, likely delegating resource filtering and configuration to the new parent POM.

Note: Spring Authorization Module has failing tests. Module updated to use Spring Security 7. Test failures appear not related to update. There is an experimental implementation of JWT, which is conflicting with the existing configuration of using Opaque tokens. Spring Security does not support both concurrently.

Closes #39

…TeMPOraL annotation and migrate Calendar type to LocalDateTime for consistency.
…ndencies. Refactored Maven build to remove duplication and improve consistency. Renamed project coordinates for consistency across modules. NOTE: Auth Server has been migrated to Spring Boot 4 / Spring Security 7, however there are failing tests unrelated to the upgrade. Spring Security does not support use of JWT and Opaque tokens concurrently.
# Conflicts:
#	README.md
#	openespi-common/pom.xml
#	openespi-common/src/test/java/org/greenbuttonalliance/espi/common/migration/DataCustodianApplicationPostgresTest.java
#	pom.xml
@dfcoffin dfcoffin changed the title Issue 39 spring boot 4 and Java 25 upgrade feat: Issue 39 -- spring boot 4 and Java 25 upgrade Dec 29, 2025
@dfcoffin dfcoffin changed the title feat: Issue 39 -- spring boot 4 and Java 25 upgrade Issue 39 spring boot 4 and Java 25 upgrade Dec 29, 2025
@springframeworkguru springframeworkguru changed the title Issue 39 spring boot 4 and Java 25 upgrade feat: Issue 39 spring boot 4 and Java 25 upgrade Dec 29, 2025
@dfcoffin dfcoffin merged commit 81322fc into GreenButtonAlliance:main Dec 29, 2025
4 of 5 checks passed
@springframeworkguru springframeworkguru deleted the Issue-39-SpringBoot4-Upgrade branch December 30, 2025 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update Project to Spring 7, Spring Boot 4, Java 25

2 participants