Skip to content

fix: stabilize CI and decouple proxy SPI loading - #7

Merged
xiaoyumuxi merged 4 commits into
mainfrom
fix/ci-core-proxy-init
Sep 14, 2026
Merged

xiaoyumuxi merged 4 commits into
mainfrom
fix/ci-core-proxy-init

Conversation

@xiaoyumuxi

Copy link
Copy Markdown
Owner

问题

当前 main 的 GitHub Actions 在 Run unit tests 阶段失败:rpc-core 单测通过 SPI 实例化 JdkProxyFactory 时,构造器会立刻创建 RpcClient,进而尝试加载 netty Transport。由于 rpc-core 本身按设计不依赖 rpc-transport-netty,因此测试 classpath 中不存在该 Transport 实现,最终报 No such extension of name netty。

这不是 Nacos 或 runner 问题,而是 ProxyFactory 构造阶段存在不必要的基础设施初始化。

修复

  • JdkProxyFactory 改为延迟初始化 RpcClient
  • ByteBuddyProxyFactory 同样改为延迟初始化,保持两套代理行为一致
  • SPI 加载阶段不再触发注册中心、Transport 或网络初始化
  • 保留 RpcClient 注入构造器,现有代理复用测试不受影响
  • 扩展 ExtensionLoaderTest:直接实例化 jdk 和 bytebuddy 两个 ProxyFactory,防止后续回归

CI 更新

升级 GitHub 官方 Actions 到当前主版本:

  • actions/checkout@v7
  • actions/setup-java@v6
  • actions/upload-artifact@v7

其中 setup-java v6 当前版本包含 Temurin 17 在 GitHub Actions 环境下的修复。

预期结果

rpc-core 可以独立执行单元测试,不需要反向依赖 rpc-transport-netty,避免 Maven 模块循环依赖,同时修复当前 CI 的单测红叉。

@xiaoyumuxi
xiaoyumuxi merged commit 9c9fc35 into main Sep 14, 2026
1 of 2 checks passed
@xiaoyumuxi
xiaoyumuxi deleted the fix/ci-core-proxy-init branch September 14, 2026 07:12
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.

1 participant