merlimat opened a new pull request, #25695:
URL: https://github.com/apache/pulsar/pull/25695

   ## Summary
   
   Pin the V5 → v4 contract for the remaining low-risk plumbing knobs the audit 
flagged as untested. Each setter is a one-line forwarder to the underlying v4 
config; without these tests, a regression that broke the mapping would ship 
silently.
   
   | Test class | Tests | What it covers |
   |---|---|---|
   | `V5ClientBuilderConfigTest` | 4 | `listenerName`, `description`, 
`memoryLimit`, `openTelemetry` — each propagates from the V5 builder to the 
wrapped v4 `ClientConfigurationData` (verified via reflection on 
`PulsarClientV5#v4Client` + `getConfiguration()`) |
   | `V5ClientLifecycleTest` | 3 | `closeAsync()` flips the v4 client to 
closed; `shutdown()` delegates to v4 without throwing (idempotent); 
`newTransactionAsync()` resolves to a Transaction in OPEN state |
   | `V5ConsumerSubscriptionPropertiesTest` | 2 | `subscriptionProperties(Map)` 
propagates to every per-segment v4 `ConsumerConfigurationData` (single-segment 
+ 3-segment topics) |
   | `V5MessageReplicationClustersTest` | 1 | 
`MessageBuilder.replicationClusters(List)` lands in the v4 message metadata. 
Verified by sending via V5, receiving via V5, and reflecting through the 
`MessageV5` wrapper to call `MessageImpl.getReplicateTo()` on the underlying v4 
message |
   
   **Note on `shutdown()`**: v4's `shutdown()` is the "fast" path — it stops 
executors and releases connections but deliberately does not flip the client's 
state to `Closed`, so `isClosed()` can still return `false` afterwards. The 
contract for V5 here is just "delegate to v4 without throwing"; observable 
post-shutdown behaviour is v4's responsibility and is exercised by the v4 test 
suite.
   
   ## Test plan
   
   - [x] All 10 new tests pass.
   - [x] Full V5 broker test suite green (143/143).
   - [x] `pulsar-broker` checkstyle clean.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to