Releases: oxia-db/oxia-client-java
v0.7.5
Oxia Java Client v0.7.5 Release Notes
Released: April 8, 2026
Highlights
This release includes a major build system migration from Maven to Gradle, a switch to LightProto for zero-allocation protobuf serialization, structured logging, and several perf client improvements.
What's Changed
Build & Infrastructure
- Switch build from Maven to Gradle 9.4 (#261)
- Use gradle/actions/setup-gradle for proper build caching (#265)
- Remove testcontainers module (#262)
- Add least-privilege permissions to GitHub Actions workflows (#270)
- Fix javadoc CI: checkout before setup-java with Gradle cache (#263)
- Fix javadoc publish by switching from PAT to deploy key (#268)
- Configure javadoc task to match Maven plugin defaults (#269)
- Upgrade Shadow plugin to 9.4.1 (#282)
Performance & Serialization
- Switch from standard protobuf to LightProto — zero-allocation serialization (#264)
- Upgrade LightProto to 0.6.3 (#272), then 0.6.6 (#277)
- Flush batch immediately when queue is empty — reduces latency under low throughput (#275)
Logging
Perf Client
- Add shell script to run perf client from console (#271)
- Fix oxia-perf not exiting on CTRL-C (#278)
- Disable OTel exporters by default in perf client (#279)
- Suppress noisy startup warnings in perf client (#280)
- Configure perf client with ZGC and tuned JVM settings (#281)
Security & Dependencies
- Fix Dependabot security alerts by upgrading vulnerable dependencies (#266)
- Upgrade guava and force safe versions for SpotBugs transitive deps (#267)
- Fix CVE-2025-67030: force plexus-utils to 4.0.3 (#274)
Full Changelog: v0.7.4...v0.7.5
v0.7.4
Oxia Java Client v0.7.4 Release Notes
Released: January 29, 2026
Maintenance release updating copyright headers to 2026 across all modules. If upgrading from v0.7.2 or earlier, see the v0.7.3 release notes for the feature changes included in that release.
Changes
- Updated copyright year to 2026 — Updated
Copyright © 2022-2025toCopyright © 2022-2026across all modulepom.xmlfiles (client-api,client,client-it,perf,perf-ycsb,testcontainers).
Full changelog: v0.7.3...v0.7.4
v0.7.3
Oxia Java Client v0.7.3 Release Notes
Released: January 29, 2026
This release adds the ability to override version IDs and modification counts on put operations, upgrades OpenTelemetry dependencies, and updates the test framework.
New Feature
Override Version ID and Modification Count (#252)
Put operations now accept two new options — OptionOverrideVersionId and OptionOverrideModificationsCount — that allow callers to explicitly set the version ID and modification count stored with a key. This is useful for data migration and replication scenarios where records need to preserve their original versioning metadata rather than having the server assign new values.
New proto fields override_version_id and override_modifications_count were added to PutRequest, and the client extracts them from the PutOption varargs passed to put() calls.
Dependencies
- OpenTelemetry upgrade (#250) — Updated OpenTelemetry SDK to 1.56.0 and semantic conventions to 1.37.0.
- AssertJ upgrade (#251) — Bumped
assertj-corefrom 3.24.1 to 3.27.7.
Contributors
@merlimat, @mattisonchao, @dependabot
Full changelog: v0.7.2...v0.7.3
v0.7.2
Oxia Java Client v0.7.2 Release Notes
Released: December 5, 2025
Patch release fixing a build issue and a notification reliability bug.
Bug Fixes
- Notification loss on stub resolution failure (#247) — When
getStub()returned an error inShardNotificationReceiver, the notification stream could not recover, permanently dropping change notifications for that shard. The fix wraps stub resolution in a try-catch and schedules an automatic retry viaonError(), ensuring transient connection failures don't cause permanent notification loss. - Lombok annotation processor missing (#246) — Added the Lombok annotation processor to the Maven build configuration to prevent compilation errors in environments where it wasn't automatically discovered.
Contributors
Full changelog: v0.7.1...v0.7.2
v0.7.1
Oxia Java Client v0.7.1 Release Notes
Released: November 11, 2025
Patch release fixing gRPC message size limits, session recovery, and excessive reconnection logging. Also updates project governance with a code of conduct and standardized copyright headers.
Bug Fixes
- gRPC max message size mismatch (#242) — The Java client's maximum inbound/outbound message sizes didn't match the Oxia server defaults, causing large values to be writable but unreadable. The client now uses the same limits as the server (100 MB), resolving oxia#749.
- Unrecoverable session-not-found exception (#243) — A malformed URI (
"//") during keep-alive requests triggered aURISyntaxExceptioninDnsNameResolver, leaving theCompletableFuturepermanently incomplete and the session hung. The fix wraps the operation in defensive error handling so session recovery can proceed.
Improvements
- Removed reflection-based custom backoff (#241) — The custom reconnection backoff used reflection to override gRPC internals, which generated excessive log output during reconnection storms. Replaced with standard gRPC backoff behavior.
Project
- Code of Conduct (#239) — Added a community code of conduct document.
- Copyright headers (#240) — Standardized copyright notice to "The Oxia Authors" across all source files.
Contributors
Full changelog: v0.7.0...v0.7.1
v0.7.0
Oxia Java Client v0.7.0 Release Notes
Released: October 7, 2025
This release focuses on API polish and documentation ahead of a stable 1.0. It includes breaking API changes — client options have been reorganized into a dedicated package, GetResult is now a record, the Authentication interface has been simplified, and @NonNull annotations have been removed from public APIs.
Breaking Changes
Client options refactored to separate package (#234)
All client configuration classes have been moved into their own package for better API organization. Imports will need to be updated when upgrading.
GetResult converted to a record (#233)
GetResult is now a Java record for consistency with other returned types in the API. This provides automatic equals(), hashCode(), and toString() implementations. The public accessor methods remain the same, but code relying on the class structure (e.g., subclassing) will need updating.
Simplified Authentication interface (#237)
The separate EncodedAuthenticationParameterSupport interface has been merged into the base Authentication interface. A new configure(String encodedAuthParamString) method is now part of Authentication directly, eliminating the need for instanceof checks in AuthenticationFactory. Authentication plugin implementations only need to implement one interface now.
Removed @NonNull annotations from public APIs (#231)
The @NonNull annotations were interfering with Javadoc generation and have been removed from all public API signatures. Nullability contracts remain the same; only the annotations are gone.
Documentation
- Complete Javadoc coverage (#225, #232, #236) — Fixed Javadoc errors and completed documentation across all public APIs.
- Published Javadocs to Oxia website (#226, #227, #230) — Javadocs are now automatically published to the Oxia project website with deterministic output (timestamps omitted).
Build & Dependencies
- gRPC upgraded to 1.75.0 (#228)
- Spotless updated for Java 25 compatibility (#229)
- Removed unused checks (#235)
Contributors
Full changelog: v0.6.0...v0.7.0
v0.6.2
What's Changed
- feat: downgrade the protobuf version to 3.25.8 by @mattisonchao in #223
- upgrade project version to 0.6.2 by @mattisonchao in #224
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- Bump com.google.protobuf:protobuf-java from 3.24.0 to 3.25.5 in /client in the maven group across 1 directory by @dependabot[bot] in #214
- Removed pulsar-metadatastore-oxia module by @merlimat in #216
- Bump com.google.protobuf:protobuf-java from 3.25.5 to 4.31.1 in /client in the maven group across 1 directory by @dependabot[bot] in #215
- Update commons-compress to 1.26 by @merlimat in #217
- Removed grpc-protobuf dependency from client-api module by @merlimat in #218
- Update commons-lang3 to 3.18 by @merlimat in #219
- fix(session): fix client keep SessionNotFound if server return ok without response by @mattisonchao in #220
- feat: upgrade the project version to 0.6.1 by @mattisonchao in #222
Full Changelog: v0.6.0...v0.6.1
v0.6.0
v0.5.1
What's Changed
- fix: range scan more than one onError callback by @mattisonchao in #205
- feat: avoid printing unexpected messages by @mattisonchao in #206
- feat: support
IncludeValuefor get operation by @mattisonchao in #207 - Keep client.proto in sync with reference version by @merlimat in #209
- Support secondary index on point get operation by @merlimat in #210
- Added support for getSequenceUpdates() by @merlimat in #211
Full Changelog: v0.5.0...v0.5.1