Spring Boot 2.5.9 -> 3.5.3, spring-dependency-management 1.0.11 -> 1.1.7 - #2950
Spring Boot 2.5.9 -> 3.5.3, spring-dependency-management 1.0.11 -> 1.1.7#2950ElenaSpb wants to merge 5 commits into
Conversation
Gradle Unit and Integration Test Results417 tests - 106 417 ✔️ - 104 28s ⏱️ -10s Results for commit 05969a6. ± Comparison against base commit 12f9226. This pull request removes 132 and adds 26 tests. Note that renamed tests count towards both.♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project’s Spring/Gradle stack (Spring Boot 2.5.9 → 3.5.3, dependency management plugin, Gradle wrapper) and applies the required Jakarta namespace migrations and related compatibility updates across main and test code.
Changes:
- Upgrade core build tooling and dependency versions (Gradle 8.13, Spring Boot 3.5.3, Springdoc 2.x, Flyway 11, Testcontainers 1.21, etc.).
- Migrate
javax.*usages tojakarta.*across entities, validation, servlet/filter code, and controllers/security. - Align local/test Postgres to v16 and adjust a few JPQL/HQL queries and Spring Security configuration to Spring 6 APIs.
Reviewed changes
Copilot reviewed 81 out of 83 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/resources/application.properties | Update Testcontainers JDBC Postgres version to 16 |
| src/test/kotlin/com/epam/brn/service/TokenHelperUtilsTest.kt | Switch servlet API import to jakarta.servlet |
| src/test/kotlin/com/epam/brn/integration/repo/ExerciseRepositoryTest.kt | Switch JPA imports to jakarta.persistence |
| src/test/kotlin/com/epam/brn/auth/filter/RememberLastVisitFilterTest.kt | Switch servlet API import + HttpMethod call update |
| src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt | Switch servlet API import + HttpMethod call updates |
| src/main/kotlin/com/epam/brn/webclient/property/GitHubApiClientProperty.kt | Remove @ConstructorBinding for Boot 3 properties binding |
| src/main/kotlin/com/epam/brn/webclient/GitHubApiClient.kt | Spring 6 WebClient API update (HttpStatusCode) |
| src/main/kotlin/com/epam/brn/validator/WithoutPunctuation.kt | Switch validation annotation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/validator/PunctuationValidator.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/upload/csv/subgroup/SubgroupGenericRecordProcessor.kt | Switch JPA exception import to jakarta.persistence |
| src/main/kotlin/com/epam/brn/upload/csv/seriesMatrix/SeriesMatrixRecordProcessor.kt | Switch transaction import to jakarta.transaction |
| src/main/kotlin/com/epam/brn/service/TokenHelperUtils.kt | Switch servlet API import to jakarta.servlet |
| src/main/kotlin/com/epam/brn/service/AudiometryHistoryService.kt | Switch transaction import to jakarta.transaction |
| src/main/kotlin/com/epam/brn/repo/StudyHistoryRepository.kt | Adjust JPQL/HQL date/month/year expressions for Hibernate 6 |
| src/main/kotlin/com/epam/brn/model/UserAccount.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Task.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/SubGroup.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/StudyHistory.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/SinAudiometryResult.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Signal.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Series.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Role.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Resource.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Notification.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Headphones.kt | Switch JPA/validation imports to jakarta.* |
| src/main/kotlin/com/epam/brn/model/GitHubUser.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/ExerciseGroup.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Exercise.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Contributor.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Contact.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/azure/tts/AzureVoiceInfo.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/azure/tts/AzureSpeechStyle.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/AudiometryTask.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/AudiometryHistory.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/model/Audiometry.kt | Switch JPA imports to jakarta.persistence |
| src/main/kotlin/com/epam/brn/job/GitHubContributorRefreshJob.kt | Disable scheduled job in dev profile |
| src/main/kotlin/com/epam/brn/dto/StudyHistoryDto.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/SeriesDto.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/response/AudiometryResponse.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/UserAccountCreateRequest.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/UserAccountChangeRequest.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/SubGroupRequest.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/exercise/Phrases.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/exercise/ExerciseCreateDto.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/contributor/ContributorRequest.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/contributor/ContactRequest.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/AudiometryHistoryRequest.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/request/AddPatientToDoctorRequest.kt | Switch validation imports to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/HeadphonesDto.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/dto/ExerciseGroupDto.kt | Switch validation import to jakarta.validation |
| src/main/kotlin/com/epam/brn/controller/UserSubGroupStatisticController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/UserStatisticControllerV2.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/UserDetailController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/TaskController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/SubGroupController.kt | Switch @RolesAllowed + @Valid to jakarta.* |
| src/main/kotlin/com/epam/brn/controller/StudyHistoryControllerV2.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/StudyHistoryController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/SeriesController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/RoleController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/ResourceController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/GroupController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/ExerciseController.kt | Switch @RolesAllowed + @Valid to jakarta.* |
| src/main/kotlin/com/epam/brn/controller/DoctorController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/ContributorController.kt | Switch @RolesAllowed + @Valid to jakarta.* |
| src/main/kotlin/com/epam/brn/controller/CloudController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/AudiometryHistoryController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/AudiometryController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/controller/AudioController.kt | Switch @RolesAllowed import to jakarta.annotation |
| src/main/kotlin/com/epam/brn/config/WebSecurityBasicConfiguration.kt | Migrate to SecurityFilterChain + Spring Security 6 DSL |
| src/main/kotlin/com/epam/brn/config/SwaggerConfig.kt | Springdoc 2 API type rename + jakarta @RolesAllowed |
| src/main/kotlin/com/epam/brn/config/StartupSummaryLogger.kt | Add startup configuration summary logger |
| src/main/kotlin/com/epam/brn/auth/filter/RememberLastVisitFilter.kt | Switch servlet API imports to jakarta.servlet |
| src/main/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilter.kt | Switch servlet API imports to jakarta.servlet |
| gradlew.bat | Update Gradle wrapper script for Gradle 8.13 |
| gradlew | Update Gradle wrapper script for Gradle 8.13 |
| gradle/wrapper/gradle-wrapper.properties | Update wrapper distribution to Gradle 8.13 + timeout |
| gradle.properties | Bump Spring/Gradle ecosystem dependency versions |
| docker-compose.yml | Bump Postgres image to 16 |
| docker-compose-with-secret.yml | Bump Postgres image to 16 |
| docker-compose-unit-test.yml | Bump Postgres image to 16 |
| docker-compose-run.yml | Bump Postgres image to 16 |
| build.gradle.kts | Update BOMs/deps + Kotlin compilerOptions + wrapper tasks |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Frontend test coverage: 72.7% (-0.04% compared to 72.74% on base) |
|
Frontend test coverage: 72.74% (+0.02% compared to 72.72% on base) |
|
Frontend test coverage: 72.7% (+0.00% compared to 72.7% on base) |
|
Frontend test coverage: 72.72% (-0.02% compared to 72.74% on base) |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 79 out of 81 changed files in this pull request and generated 3 comments.
Suppressed comments (9)
src/test/kotlin/com/epam/brn/auth/filter/RememberLastVisitFilterTest.kt:59
HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile (and is inconsistent with Kotlin enum usage).
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:118HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:139HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:165HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:209HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:241HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:268HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:300HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
src/test/kotlin/com/epam/brn/auth/filter/FirebaseTokenAuthenticationFilterTest.kt:302HttpMethodis an enum; in Kotlin its name should be accessed as the.nameproperty. Calling.name()is likely to not compile.
|
|
Frontend test coverage: 72.7% (-0.04% compared to 72.74% on base) |



##2757
Обновление до Spring Boot 3.5.3
Миграция бэкенда с Spring Boot 2.5.9 → 3.5.3 (+ spring-dependency-management 1.0.11 → 1.1.7) с переходом на неймспейс jakarta.*.
Основные изменения
Spring Boot 3 / Jakarta
Spring Security 6
Gradle / сборка
Обновление зависимостей
Прочее