[ISSUE #9326]♻️Inject remoting command factories into client owners - #9331
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (20)
Walkthrough
ChangesRemoting factory propagation
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested labels: Suggested reviewers: Poem
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
🔊@mxsm 🚀Thanks for your contribution🎉! 💡CodeRabbit(AI) will review your code first🔥! Note 🚨The code review suggestions from CodeRabbit are to be used as a reference only, and the PR submitter can decide whether to make changes based on their own judgment. Ultimately, the project management personnel will conduct the final code review💥. |
Which Issue(s) This PR Fixes(Closes)
Brief Description
Resolve remoting command defaults once at
ClientRuntimeconstruction and inject the resulting immutableRemotingCommandFactorythroughClientPool,MQClientInstance,MQClientAPIImpl, andClientRemotingProcessor.Client request builders and callback responses now use their owning factory. Explicit factories can isolate embedded client runtimes by version and serialization type, and factory defaults participate in pooled-client identity. The compatibility constructor still captures application defaults, while invalid process configuration now fails at runtime construction before pool admission.
Regression coverage verifies independent JSON and ROCKETMQ owners, outbound request defaults, callback response defaults, pool identity, and startup fail-fast behavior. Request codes, flags, bodies, headers, opaque values, and wire encodings are otherwise unchanged.
How Did You Test This Change?
cargo test -p rocketmq-protocol --test remoting_command_defaultscargo test -p rocketmq-protocol protocol::remoting_command::tests --libcargo test -p rocketmq-protocol --test remoting_wire_goldencargo test -p rocketmq-protocol --test request_header_java_compatibilitycargo test -p rocketmq-transport --features test-support --test protocol_compatibilitycargo test -p rocketmq-client-rust --lib --all-features(1,063 passed)cargo test -p rocketmq-client-rust --test remoting_defaults_startup --all-featurescargo test -p rocketmq-client-rust --all-features -- --skip capability_files_stay_within_the_reviewed_split_limits --skip every_client_cargo_target_declares_a_recursion_limit(passed; the unfiltered checks report two pre-existingorigin/mainboundary violations inconsumer.rs/producer/lifecycle.rsand a missing recursion-limit declaration innameserver_dns_discovery.rs)cargo clippy -p rocketmq-protocol -p rocketmq-client-rust --no-deps --all-targets --all-features -- -D warningscargo clippy --workspace --no-deps --all-targets --all-features -- -D warningscargo fmt -p <package> -- --checkfor all 28 root workspace packages (the aggregatecargo fmt --all -- --checkhits Windows OS error 206)cargo +nightly-2026-07-05 check --locked --all-targets --all-featuresinfuzz/cargo fmt -p rocketmq-example -- --checkandcargo clippy --all-targets -- -D warningsinrocketmq-example/RUST_MIN_STACK=16777216 cargo test --locked --workspace --all-featurespassed (the default Windows test stack overflows in two existing connector tests).\scripts\runtime-audit.ps1 -SkipBaseline -EnforceBoundaryBaselinecheck-error-hygiene.ps1reports the same two pre-existing findings on this branch andorigin/main: source stringification inrocketmq-store-localand sensitiveDebugderivation in the dashboard backend.Summary by CodeRabbit
New Features
Bug Fixes
Tests