RFC: Resolve Technical Debt of JDK and Spring Boot in Sunbird-RC-core #1053
Replies: 5 comments 2 replies
-
Following is the initial analysis of all dependencies Direct dependency analysis of sunbird-rc-registries (sunbird-rc-core)Parent project is Open Software for Building Electronic Registries SummaryThere are 26 subprojects in the parent project with a total of 181 dependencies. The subprojects are:
Sub Project Dependencies
pojos
middleware commons
middleware-bommiddleware-bom > registry-middleware
middleware-bom > Authorization
middleware-bom > Validation
middleware-bom > Identity Provider
middleware-bom > keycloak
middleware-bom > workflow
middleware-bom > auth0
middleware-bom > generic-iam
validators
Json based Validation
JSON schema based validation
registry-interceptors
Elastic-Search
sunbird-actor
sunbirdrc-actors
plugins
divoc-external-plugin
mosip-external-plugin
sample-external-plugin-2
view-templates
registry
claim
apitest
|
Beta Was this translation helpful? Give feedback.
-
The maven reactor sequence Open Software for Building Electronic Registries 2.0.3
|
Beta Was this translation helpful? Give feedback.
-
Java project has been upgraded to recent version of spring and LTS version for Java
|
Beta Was this translation helpful? Give feedback.
-
Please see the PR Sunbird-RC/sunbird-rc-core#346 |
Beta Was this translation helpful? Give feedback.
-
Status update State 1,2 and 3 are completed. |
Beta Was this translation helpful? Give feedback.
-
RFC: Resolve Technical Debt of JDK and Spring Boot
Summary
This proposal aims to address the technical debt in the Sunbird-RC-core project by upgrading the project’s JDK and Spring Boot versions. This upgrade is crucial to maintain compatibility with modern libraries, enhance performance, improve security, and leverage new features introduced in the latest versions of JDK and Spring Boot.
Motivation
The Sunbird-RC project currently uses outdated versions of the JDK and Spring Boot framework, which poses several risks:
Security Vulnerabilities: Older versions of the JDK and Spring Boot are more susceptible to security vulnerabilities that have been mitigated in newer releases.
Compatibility Issues: Many modern libraries and tools require or perform better with the latest JDK and Spring Boot versions. Continued use of outdated versions limits the project’s ability to adopt new technologies.
Performance Improvements: Recent JDK and Spring Boot versions come with significant performance enhancements, which can lead to more efficient resource utilization and faster execution times.
Community Support: Older versions are no longer actively supported, meaning critical patches and updates are not available.
Goals
Upgrade to the Latest Stable JDK: Transition the Sunbird-RC project to the latest stable JDK version
JDK 21
.Upgrade Spring Boot: Update the Spring Boot framework to the latest stable version
3.3.2
, ensuring compatibility with the upgraded JDK.Testing and Validation: Thoroughly test the project after the upgrade to ensure that all functionalities remain intact and that the system performance is improved.
Documentation: Update project documentation to reflect the new versions of JDK and Spring Boot, including any new features or changes in behavior.
Implementation Plan
Stage 1: Maven POM changes
Stage 2: Upgrade github actions
Stage 3: Functional Testing
Karate test case in the
apitest
should run without errors.Stage 4: Performance Testing
//TODO: Add details about the performance testing plan
Stage 5: Prepare release notes and stakeholder communication plan
//TODO: Add details about the release notes and stakeholder communication plan
Stage 6: Documentation Update
Revise all relevant documentation to include details about the new JDK and Spring Boot versions.
Risks and Mitigations
Compatibility Issues: Some dependencies may not be fully compatible with the new JDK or Spring Boot versions. Mitigation includes careful dependency management and testing.
Regressions: There is a risk of introducing regressions during the upgrade. Comprehensive testing and staged deployment will help identify and resolve issues early.
Time and Resource Investment: Upgrading and testing the entire project may require significant time and resources. Prioritizing key areas and leveraging automated testing will help manage this risk.
Conclusion
Upgrading the Sunbird-RC project to the latest JDK and Spring Boot versions is essential for maintaining the project’s security, performance, and future scalability. By addressing this technical debt, we can ensure that the project remains robust, secure, and aligned with modern development practices.
Open questions
Following are the open questions that need to be discussed
Beta Was this translation helpful? Give feedback.
All reactions