Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions PHASE1_MIGRATION_REPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Phase 1: Java 8 to Java 17 Migration - Dependency Compatibility Assessment

## Summary
This report documents all dependency updates made in Phase 1 of the Java 17 migration.

## Changes Made

### 1. Spring Boot Parent
- **Previous**: 2.1.4.RELEASE
- **Updated to**: 3.4.10
- **Reason**: Spring Boot 3.x is required for Java 17 support. Version 3.4.10 chosen as a stable, well-tested release.

### 2. Java Version
- **Previous**: 1.8
- **Updated to**: 17
- **Reason**: Target version for this migration

### 3. Swagger/OpenAPI Dependencies
- **Previous**:
- springfox-swagger2:2.9.2
- springfox-swagger-ui:2.10.0
- **Updated to**:
- springdoc-openapi-starter-webmvc-ui:2.8.13
- **Reason**: springfox libraries are not compatible with Spring Boot 3.x. springdoc-openapi is the recommended replacement and supports OpenAPI 3.0 specification.

### 4. H2 Database
- **Previous**: Version managed by Spring Boot 2.1.4 parent
- **Updated to**: Version managed by Spring Boot 3.4.10 parent (~2.2.x)
- **Reason**: Automatic update through parent POM; new version is Java 17 compatible

### 5. Lombok
- **Previous**: Version managed by Spring Boot 2.1.4 parent
- **Updated to**: Version managed by Spring Boot 3.4.10 parent (1.18.40)
- **Reason**: Automatic update through parent POM; new version is Java 17 compatible

## Potential Issues for Later Phases

1. **Swagger API Changes**: The switch from springfox to springdoc-openapi will require code changes:
- Configuration classes need to be updated
- Default Swagger UI path changes from `/swagger-ui.html` to `/swagger-ui/index.html`
- Annotation changes may be needed

2. **Spring Boot 3.x Breaking Changes**:
- Namespace changes (javax.* to jakarta.*)
- Spring Security configuration changes
- Deprecated APIs removed

3. **Code Compilation**: Code changes will be needed in subsequent phases to adapt to:
- New Spring Boot 3.x APIs
- Jakarta EE namespace changes
- springdoc-openapi annotations and configuration

## Next Steps
- Phase 2: Update code to use Jakarta EE namespace (javax.* to jakarta.*)
- Phase 3: Update Swagger configuration for springdoc-openapi
- Phase 4: Update Spring Security configuration for Spring Boot 3.x
- Phase 5: Testing and validation

## References
- Spring Boot 3.4.10 Release Notes: https://github.com/spring-projects/spring-boot/releases/tag/v3.4.10
- Spring Boot 3.0 Migration Guide: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
- springdoc-openapi Documentation: https://springdoc.org/
16 changes: 6 additions & 10 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<version>3.4.10</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.coding.exercise</groupId>
Expand All @@ -15,7 +15,7 @@
<description>Bank App Spring Boot Project</description>

<properties>
<java.version>1.8</java.version>
<java.version>17</java.version>
</properties>

<dependencies>
Expand Down Expand Up @@ -52,15 +52,11 @@
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.8.13</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
Expand Down