[RIP-76] Migration the Dashboard to Spring Boot 3 and Java 17
Before Creating the Enhancement Request
- [x] I have confirmed that this should be classified as an enhancement rather than a bug/feature.
Summary
This is a proposition to improve the source code and the state of the RocketMQ-Dashboard project, the Web UI client of RocketMQ broker. As for every Broker, power full client is a big part of it success, then actively working on this feature will help improve significantly the whole project or at least have an updated version of the Dashboard available. The goal here is to move from:
- Spring Boot 2.6.0 to Spring Boot 3
- Java 1.8 to Java 17
Motivation
Spring and Java has evolve during last years and this is a good opportunity to let this project benefit. Beside of that there are many other aspect to improve as:
- the correction and the update to mitigate vulnerabilities
- Java has new more features and we can benefit from it
- Java is being fast now and the project can benefit from it
- we can improve the test coverage
- we can improve some parts of the code by doing some refactoring
Describe the Solution You'd Like
Here is a proposition of the roadmap to follow. Every step will result in the creation of an issue in the Issue Board:
| STEPS | Description | Status | Issue | |
|---|---|---|---|---|
| 1 | Complete the missing Units tests and Integration tests | In order to follow the best practice on legacy code modifications | #264 #266 | |
| 2 | Migration to Java 11 and Refactoring | To manage gradually the changes to Java 17 | ||
| 3 | Migration to Spring Boot 2.7 | Following the Spring development team guidelines | ||
| 4 | Migration to Spring Boot 3 and Java 17 and Refactoring | |||
| 5 | Integration with Spring Cloud | Adding Spring Cloud Dependency, to make the application Cloud Native | ||
| 6 | CVE (vulnerabilities) correction with the integration of OWASP | Essential to enhance the application security | ||
| 7 | Eliminated performance bottlenecks during producer/consumer initialization | For performance issue | ||
| 8 | Frontend workflow optimization | To make the application easy to use | ||
| 9 | Backend resource efficiency improvements | For performance issue | ||
| 10 | User-centric responsive design | A big improvement of the Front-End and to make it attractive | ||
| 11 | Security enhancements | To add more security capabilities |
Describe Alternatives You've Considered
For the moment there is no alternative.
Additional Context
All tasks will have the associated issue created in RocketMQ-Dashboard issue board and will be updated as soon as there is a progress
@HattoriHenzo I'm excited to see this roadmap. The upcoming major upgrades to the dashboard align perfectly with the proposal I've been preparing, for which I've already done thorough groundwork. Here's the link to my proposal. I believe it would be valuable to discuss the implementation details and key differences in our approaches. I'd appreciate your perspective on how we might best align and refine the plan moving forward. I'd be deeply grateful if you could spare some time to review it and provide feedback on any areas that may need refinement or clearer articulation.
@Crazylychee Thanks for your feedback. Good job, your proposal is clear with very good information. The improvements you are talking about are very interesting and I am sure it will lead to a big improvement of the Dashboard and some parts of the project. The best approach would be to start with backend (spring boot) then the frontend (angular) and then correct the bugs you mentioned. In your proposal we have 3 different parts: frontend, backend, bugs and documentation. What I can suggest is to:
- You can create a RIP-77 for the Frontend improvement and add the documentation improvement in the roadmap
- (if you allow me) I will take all the tasks related to the backend and add it to the RIP-76 roadmap
- For the bugs, you can add them to the respective issue boards (RocketMQ or RocketMQ-DashBoard), with the details on the different steps to reproduce them
- Concerning the implementation suggestions, I will take a look on it (a good help will be to have the bugs mentioned above to be created and described)
The next steps for me:
- Update the RIP-76 roadmap
- Create the related issues in the backlog
- Start working on those issues
Before taking an issue, feel free to ask if me or someone else is working on it before .
@HattoriHenzo Thank you for your thoughtful suggestions. I'll follow your advice to create and maintain RIP-77. The dashboard overhaul (including both frontend and backend improvements) and bug fixes are all key components of my GSoC proposal. If selected, I would be truly excited to collaborate with you on these tasks - it would be an invaluable learning experience for me. Moving forward, I'll actively track your work and other contributors' progress to ensure our efforts are well-aligned without duplication. I look forward to adopting your working methods as we jointly enhance the dashboard.
[Update] I have updated the RIP-76 because of some task that has been accomplished related to the RIP-78 (GSoC)