Skip to content

chore(deps): upgrade to Spring Boot 4.0.6 in application-server, notification, and helios-status-spring-starter#1021

Open
meryemefe wants to merge 2 commits intostagingfrom
chore/spring-boot-4-0-6-upgrade
Open

chore(deps): upgrade to Spring Boot 4.0.6 in application-server, notification, and helios-status-spring-starter#1021
meryemefe wants to merge 2 commits intostagingfrom
chore/spring-boot-4-0-6-upgrade

Conversation

@meryemefe
Copy link
Copy Markdown
Contributor

@meryemefe meryemefe commented May 4, 2026

Motivation

This upgrade keeps Helios on the supported Spring Boot 4 baseline, improves long-term maintainability. #994

Description

This PR upgrades Spring Boot to 4.0.6 across the three backend modules and adjusts dependencies/imports/tests for Boot 4 compatibility.

  • Bumped Spring Boot plugin to 4.0.6 (server/build.gradle).
  • Upgraded starter module to Boot 4 (helios-status-spring-starter BOM to 4.0.6, version 1.1.1).
  • Renamed/split starters to Boot 4 equivalents in app modules:
    • aop -> aspectj
    • web -> webmvc
    • oauth2-resource-server -> security-oauth2-resource-server
    • added restclient, starter-flyway, spring-boot-jackson2.
  • Updated SpringDoc to 3.0.3.
  • Added Jackson2 mapper preference in both app configs:
    • spring.http.converters.preferred-json-mapper: jackson2.
  • Updated imports/APIs for Boot 4 package changes (RestTemplateBuilder, Hibernate session pointcut).
  • Modernized tests for Boot 4/JUnit 5 compatibility (imports/annotations/assert style cleanup).

Testing Instructions

Prerequisites:

  • GitHub Account without having any additional access-rights (e.g. admin, owner)
  • Local running Helios instance

Flow:

  1. cd server
  2. Run:
  • ./gradlew :application-server:clean
  • ./gradlew :application-server:test
  1. Run notification service startup check:
  • ./gradlew :notification:bootRunDev --args='--nats.enabled=false --server.port=18082'
  1. Verify:
  • application-server tests pass.
  • notification starts successfully on port 18082 with NATS disabled.
  1. Do end-to-end tests with fundamental features.

Checklist

General

Server

  • Code is performant and follows best practices
  • I documented the Java code using JavaDoc style.

@codacy-production
Copy link
Copy Markdown

codacy-production Bot commented May 4, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0 (≤ 20 complexity)

View in Codacy

🟢 Coverage ∅ diff coverage · +0.37% coverage variation

Metric Results
Coverage variation +0.37% coverage variation (-1.00%)
Diff coverage diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (f232003) 9628 4369 45.38%
Head commit (cf1def7) 9628 (+0) 4405 (+36) 45.75% (+0.37%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#1021) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@meryemefe meryemefe force-pushed the chore/spring-boot-4-0-6-upgrade branch from 176b319 to ab38793 Compare May 4, 2026 19:56
@meryemefe meryemefe marked this pull request as ready for review May 4, 2026 20:54
@meryemefe meryemefe requested a review from a team as a code owner May 4, 2026 20:54
@meryemefe meryemefe force-pushed the chore/spring-boot-4-0-6-upgrade branch from ab38793 to 928eb95 Compare May 5, 2026 13:18
@mertilginoglu
Copy link
Copy Markdown
Contributor

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cf1def7a6f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

implementation 'io.sentry:sentry-spring-boot-starter-jakarta:8.40.0'
implementation 'io.sentry:sentry-spring-boot-4-starter:8.40.0'
// Helios push-based status updates
implementation "de.tum.cit.aet:helios-status-spring-starter:1.1.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update app to consume the Boot 4 starter release

After bumping helios-status-spring-starter to 1.1.1 (Boot 4 aligned), application-server still depends on 1.1.0, so this service does not actually use the upgraded starter and can keep pulling an artifact built against the old Boot 3 baseline. In this upgrade commit, that mismatch undermines the migration and risks runtime incompatibilities when starter classes are loaded under Boot 4; the dependency here should be moved to 1.1.1 to keep the module graph consistent.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, I couldn't release a new helios-status-spring-starter version to Maven Central and because I’m blocked by Sonatype: Namespace 'de.tum.cit.aet' is not allowed. I also verified that existing workflow (release-maven.yaml) doesn't work and its secret values don't exist in GitHub secrets. So, let's keep it as it is and upgrade it after maven release is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants