feat(java): add async API parity with blocking client#2718
feat(java): add async API parity with blocking client#2718atharvalade wants to merge 1 commit intoapache:masterfrom
Conversation
Codecov Report❌ Patch coverage is ❌ Your patch check has failed because the patch coverage (10.63%) is below the target coverage (50.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #2718 +/- ##
============================================
- Coverage 68.32% 68.14% -0.18%
- Complexity 656 664 +8
============================================
Files 741 748 +7
Lines 62158 62346 +188
Branches 58571 58574 +3
============================================
+ Hits 42468 42488 +20
- Misses 17583 17751 +168
Partials 2107 2107
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
foreign/java/java-sdk/src/main/java/org/apache/iggy/client/async/ConsumerOffsetsClient.java
Show resolved
Hide resolved
|
Hi @atharvalade, thanks for the PR. It looks like some C# changes have accidentally slipped into this PR. Would you mind tidying up the diff so it only shows the Java updates? Once that's sorted, I'll start the review. |
Adds 17 missing async methods across System, PersonalAccessTokens, Partitions, ConsumerOffsets, and ConsumerGroups clients. Fixes apache#2716
94bc301 to
979b2d8
Compare
Hi @mmodzelewski, thanks for catching that! I've rebased the branch onto the latest upstream master and removed the stray C# commit. |
|
It's probably a better idea we add some UT to the change, or even better if ingestion test can be added too. Otherwise our coverage is likely adversely impacted |
Which issue does this PR close?
Closes #2716
Rationale
The async TCP client was missing 17 methods that existed in the blocking client, limiting its usability for async workflows.
What changed?
The async TCP client only exposed 5 of 9 sub-client interfaces (Messages, ConsumerGroups, Streams, Topics, Users), and ConsumerGroupsClient had only 2 of 6 methods. This left 17 methods unavailable for async operations.
Added 4 new async client interfaces (SystemClient, PersonalAccessTokensClient, PartitionsClient, ConsumerOffsetsClient) with full TCP implementations, and extended ConsumerGroupsClient with 4 missing methods (get, getAll, create, delete). All async methods follow the existing pattern using CompletableFuture and match the blocking client API exactly.
Local Execution
AI Usage