Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ISSUE#12028] Upgrade to SpringBoot 3, JDK 17 and support GraalVM #13020

Conversation

MoritzArena
Copy link

Please do not create a Pull Request without creating an issue first.

What is the purpose of the change

Upgrade Nacos to adapt to SpringBoot 3, enable Nacos Server and Client to run in GraalVM Native Image mode.

Brief changelog

Dependencies Versions Changelog

Archive Old Version New Version Description
java 1.8 17 Minimum compatible Java version
spring-boot-dependencies 2.7.18 3.3.1 Dependencies related to SpringBoot
servlet-api 3.0 6.1.0 Dependencies related to Servlet
spring 5.3.34 6.1.10 Dependencies related to Spring
spring-security 5.7.12 6.3.1 Dependencies related to Spring Security
httpcomponents 4.1.5 5.3.1 Dependencies related to Apache HTTP Components
micrometer 1.9.17 1.12.8 Dependencies related to Micrometer
maven-pmd-plugin 3.8 3.15.0 Dependencies related to PMD
p3c-pmd 1.3.0 2.1.1 Dependencies related to P3C
maven-shade-plugin 3.2.4 3.6.0 Dependencies related to Maven Shade
grpc-java 1.57.2 1.65.1 Dependencies related to grpc
grpc-util - 1.65.1 Detach from grpc
grpc-inprocess - 1.65.1 Detach from grpc
findbugs-maven-plugin 3.0.4 - No longer support for jdk 17
soptbugs-maven-plugin - 4.8.6.2 Support JDK 17

Code Changelog

  1. Fix unit testing issues after migrating to SpringBoot 3.
  2. Fix HTTP Components incompatibility after migration to SpringBoot 3.
  3. Fixed reflection permission issue in unit tests after upgrading to JDK 17.
  4. Fix the problem of duplicate names of Summary and Gauge in Prometheus after migration to SpringBoot 3.
  5. Fix some PMD violations.
  6. Fix the issue with Spting Security syntax update after migration to SpringBoot 3.

GraalVM Part

With the support of SpringBoot 3, JDK 17 and the improvement of GraalVM, Nacos can now be correctly compiled into GraalVM Native Image binary programs. And it has better performance than Java Nacos in some aspects in standalone and cluster mode. More details will be updated along with the Nacos document.

Verifying this change

Follow this checklist to help us incorporate your contribution quickly and easily:

  • Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
  • Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
  • Run mvn -B clean package apache-rat:check findbugs:findbugs -Dmaven.test.skip=true to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test to make sure integration-test pass.

Copy link

github-actions bot commented Jan 7, 2025

Thanks for your this PR. 🙏
Please check again for your PR changes whether contains any usage/api/configuration change such as Add new API , Add new configuration, Change default value of configuration.
If so, please add or update documents(markdown type) in docs/next/ for repository nacos-group/nacos-group.github.io


感谢您提交的PR。 🙏
请再次查看您的PR内容,确认是否包含任何使用方式/API/配置参数的变更,如:新增API新增配置参数修改默认配置等操作。
如果是,请确保在提交之前,在仓库nacos-group/nacos-group.github.io中的docs/next/目录下添加或更新文档(markdown格式)。

@JianweiWang JianweiWang merged commit b16b900 into alibaba:summer-ospp#12028 Jan 8, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants