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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions