feat(java): add async client and interface with CompletableFuture support#316
Merged
jackye1995 merged 1 commit intolance-format:mainfrom Mar 13, 2026
Merged
Conversation
…port Add two new Java modules for async operations: 1. lance-namespace-async-client - Generated using OpenAPI with library=native,asyncNative=true - Uses Java 11+ native java.net.http.HttpClient - All API methods return CompletableFuture<T> 2. lance-namespace-core-async - LanceNamespaceAsync interface mirroring LanceNamespace - All methods return CompletableFuture<T> - Includes async error classes Key changes: - Add async-client-pom.xml (copied after codegen like Rust pattern) - Update Makefile with async client targets - Update checkstyle-suppressions.xml for async client - Update java-publish.yml to include async modules 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
LuQQiu
approved these changes
Mar 13, 2026
1 task
jackye1995
added a commit
that referenced
this pull request
Mar 13, 2026
## Summary Add version bump entries for the new async Java modules introduced in #316: - `java/async-client-pom.xml` - Template pom.xml for async client - `java/lance-namespace-core-async/pom.xml` - Async core module This ensures version bumps will include these new modules. ## Test plan - [x] Verified entries follow existing pattern in `.bumpversion.toml` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
XuQianJin-Stars
pushed a commit
to XuQianJin-Stars/lance-namespace
that referenced
this pull request
Mar 16, 2026
…port (lance-format#316) ## Summary Add two new Java modules for async operations using Java 11+ native HttpClient: - **lance-namespace-async-client**: Generated async HTTP client using `library=native,asyncNative=true` - Uses Java 11+ `java.net.http.HttpClient` - All API methods return `CompletableFuture<T>` - **lance-namespace-core-async**: Async version of LanceNamespace interface - `LanceNamespaceAsync` interface mirroring `LanceNamespace` - All methods return `CompletableFuture<T>` - Includes async error classes ### Key Changes - Add `async-client-pom.xml` (copied after codegen, following Rust's pattern) - Update Makefile with async client targets - Update `checkstyle-suppressions.xml` for async client - Update `java-publish.yml` to include async modules in Maven Central check ### Usage ```java // Sync (existing) LanceNamespace ns = LanceNamespace.connect("rest", props, allocator); ListTablesResponse response = ns.listTables(request); // Async (new) LanceNamespaceAsync ns = LanceNamespaceAsync.connect("rest", props, allocator); CompletableFuture<ListTablesResponse> future = ns.listTables(request); ``` ### Maven Dependencies ```xml <!-- Async interface (Java 11+) --> <dependency> <groupId>org.lance</groupId> <artifactId>lance-namespace-core-async</artifactId> <version>${version}</version> </dependency> <!-- Async client (Java 11+) --> <dependency> <groupId>org.lance</groupId> <artifactId>lance-namespace-async-client</artifactId> <version>${version}</version> </dependency> ``` ## Test plan - [x] `make check` passes (checkstyle + spotless) - [x] `make build` passes (all modules compile) - [x] CI workflows updated to include new modules 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
XuQianJin-Stars
pushed a commit
to XuQianJin-Stars/lance-namespace
that referenced
this pull request
Mar 16, 2026
## Summary Add version bump entries for the new async Java modules introduced in lance-format#316: - `java/async-client-pom.xml` - Template pom.xml for async client - `java/lance-namespace-core-async/pom.xml` - Async core module This ensures version bumps will include these new modules. ## Test plan - [x] Verified entries follow existing pattern in `.bumpversion.toml` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add two new Java modules for async operations using Java 11+ native HttpClient:
lance-namespace-async-client: Generated async HTTP client using
library=native,asyncNative=truejava.net.http.HttpClientCompletableFuture<T>lance-namespace-core-async: Async version of LanceNamespace interface
LanceNamespaceAsyncinterface mirroringLanceNamespaceCompletableFuture<T>Key Changes
async-client-pom.xml(copied after codegen, following Rust's pattern)checkstyle-suppressions.xmlfor async clientjava-publish.ymlto include async modules in Maven Central checkUsage
Maven Dependencies
Test plan
make checkpasses (checkstyle + spotless)make buildpasses (all modules compile)🤖 Generated with Claude Code