Skip to content

Support reactor-netty 1.1.x+ (Spring Boot 3.2+) - #13448

Open
emeroad with Copilot wants to merge 2 commits into
masterfrom
copilot/support-reactor-netty-1-1-x
Open

Support reactor-netty 1.1.x+ (Spring Boot 3.2+)#13448
emeroad with Copilot wants to merge 2 commits into
masterfrom
copilot/support-reactor-netty-1-1-x

Conversation

Copilot AI commented Mar 6, 2026

Copy link
Copy Markdown

Closes #13447

  • Analyze reactor-netty 1.0.x, 1.1.x, 1.2.x API differences
  • Update pom.xml to add reactor-netty-http explicit dependency for 1.1.x+ module split
  • Add beforeMarkSentHeaders() as alternative interception point in HttpClientOperationsTransform (exists in all versions; isNested check prevents duplicate injection)
  • Create reactor-netty-spring-boot3-plugin-testweb for Spring Boot 3.x (reactor-netty 1.1.x+) testing
  • Add new test web to jdk17 profile in agent-testweb pom
  • All existing tests pass
  • Code review: no issues found
  • Security scan: no issues found
Original prompt

This section details on the original issue you should resolve

<issue_title>支持 reactor-netty 1.1.x+</issue_title>
<issue_description>版本兼容性分析结论

确认发现

当前 Pinpoint (v3.0.4 / v3.1.0-SNAPSHOT) 不支持 reactor-netty 1.1.x+

原因:

  • Pinpoint 注入 trace header 的唯一拦截点是 HttpClientOperations.followRedirectPredicate(BiPredicate) 方法
  • 该方法在 reactor-netty 1.1.0 (2023年1月) 中已被移除
  • 当前 Pinpoint 代码中没有针对 reactor-netty 1.1.x 的备选拦截方案

代码证据

// ReactorNettyPlugin.java:251-254 - 这是唯一注入 trace header 的地方
final InstrumentMethod sendMethod = target.getDeclaredMethod(
"followRedirectPredicate", // 该方法在 reactor-netty 1.1.0 中已被移除!
"java.util.function.BiPredicate"
);
if (sendMethod != null) { // 新版本中 sendMethod == null,header 不会被注入
sendMethod.addInterceptor(HttpClientOperationsSendInterceptor.class);
}

版本对照表

┌────────────────────┬───────────────┬─────────────────────┬───────────────────┐
│ reactor-netty 版本 │ Pinpoint 支持 │ Spring Boot 版本 │ Spring Cloud 版本 │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.0.x │ ✅ 支持 │ 2.7.x, 3.0.x, 3.1.x │ 2021.x, 2022.x │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.1.x │ ❌ 不支持 │ 3.2.x, 3.3.x │ 2023.0.x │
├────────────────────┼───────────────┼─────────────────────┼───────────────────┤
│ 1.2.x │ ❌ 不支持 │ 3.4.x+ │ 2024.x │
└────────────────────┴───────────────┴─────────────────────┴───────────────────┘</issue_description>

<agent_instructions>Resolve issue @13447</agent_instructions>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@codecov

codecov Bot commented Mar 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 33.04%. Comparing base (161e704) to head (f382038).

Additional details and impacted files
@@             Coverage Diff              @@
##             master   #13448      +/-   ##
============================================
- Coverage     33.05%   33.04%   -0.01%     
+ Complexity    11014    11013       -1     
============================================
  Files          4075     4075              
  Lines         94784    94784              
  Branches       9865     9865              
============================================
- Hits          31330    31326       -4     
- Misses        60761    60763       +2     
- Partials       2693     2695       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@emeroad
emeroad marked this pull request as ready for review March 6, 2026 10:08
@emeroad

emeroad commented Mar 6, 2026

Copy link
Copy Markdown
Member

@copilot
Fix #13447

…r and Spring Boot 3 test web

Co-authored-by: emeroad <7564547+emeroad@users.noreply.github.com>
Copilot AI changed the title [WIP] Support reactor-netty version 1.1.x and above Support reactor-netty 1.1.x+ (Spring Boot 3.2+) Mar 6, 2026
@sonarqubecloud

sonarqubecloud Bot commented Mar 6, 2026

Copy link
Copy Markdown

Copilot AI commented Mar 6, 2026

Copy link
Copy Markdown
Author

@copilot
Fix #13447

Done — the changes in commit 73771b6 fix #13447 by adding beforeMarkSentHeaders() as a stable interception point for reactor-netty 1.1.x+ and adding a Spring Boot 3 test web module for validation.

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.

Support reactor-netty 1.1.x+

3 participants