Skip to content

Spring Boot 4 migration — blocks Springdoc 3 (#152) #156

@amavashev

Description

@amavashev

Tracks the Spring Boot 3.x → 4.x migration in `cycles-server-admin`. Currently blocks #152 and is the peer of `runcycles/cycles-server#134`.

Why this isn't a Dependabot merge

Springdoc 3.x is built against Spring Boot 4 and pulls in SB4 autoconfigs that conflict with this repo's SB3 baseline:

```
BeanDefinitionOverrideException: Invalid bean definition with name 'conventionErrorViewResolver'

  • defined in: org.springframework.boot.webmvc.autoconfigure.error.ErrorMvcAutoConfiguration (SB4 path)
  • already bound: org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration (SB3 path)
    ```

SB4 moved `ErrorMvcAutoConfiguration` from `autoconfigure.web.servlet` → `webmvc.autoconfigure`. Both class paths exist on the classpath simultaneously when SB4 transitives meet an SB3 base, hence the override exception. Springdoc 3 cannot merge until SB4 lands.

Scope of the migration

  • Bump `spring-boot-starter-parent` 3.5.x → 4.0.x
  • Java baseline: confirm 21 satisfies SB4 minimum (currently 17 baseline; should be fine)
  • Servlet 6 / Jakarta EE 10 surface check
  • Project Loom virtual-thread defaults (SB4 enables them in some configs by default)
  • Re-test all admin endpoints, OpenAPI contract diff, integration tests
  • Coordinate with `cycles-server` (chore(ci): auto-merge Dependabot patch-level bumps #134) and `cycles-server-events` so all three flip together; they share the Spring Boot baseline.

Cross-repo

Recommend doing all three in coordinated PRs so we don't have an SB3 ↔ SB4 mixed-version run in production.

Reference

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions