This is an automated email from the ASF dual-hosted git repository.
mmodzelewski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new 968a23e20 chore(java): start 0.9.1-SNAPSHOT and document the 0.9.0 SDK
(#4247)
968a23e20 is described below
commit 968a23e2000219f8740beb3d2ba8347b67f27939
Author: Maciej Modzelewski <[email protected]>
AuthorDate: Mon Sep 21 10:45:16 2026 +0200
chore(java): start 0.9.1-SNAPSHOT and document the 0.9.0 SDK (#4247)
The Java SDK 0.9.0 is on Maven Central, but the README still pointed
readers at 0.9.0-SNAPSHOT and the build still carried the released
version.
The README now names 0.9.0 as the dependency and moves the snapshot
section to 0.9.1-SNAPSHOT, which the build version follows. The
Quick Start drops the pre-release upgrade warning and describes what
the TCP client builder does instead.
---
foreign/java/README.md | 32 +++++++++++++-------------------
foreign/java/gradle.properties | 2 +-
2 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/foreign/java/README.md b/foreign/java/README.md
index f64f75615..33896cbcc 100644
--- a/foreign/java/README.md
+++ b/foreign/java/README.md
@@ -14,14 +14,14 @@ _This is part of the Apache Iggy monorepo. For the main
project, see the [root r
## Installation
-These examples target server **0.9.0**. The released `0.8.0` artifact uses the
older TCP protocol. Use `0.9.0-SNAPSHOT` for the pre-release SDK, with the ASF
repository configured under [Snapshot Versions](#snapshot-versions), or build
the SDK and server from the same checkout. Java 17 or newer is required.
+These examples target server **0.9.0**. SDK `0.9.0` is on Maven Central and
works with server `0.9.0`. The older `0.8.0` artifact speaks the previous TCP
protocol and does not work with server `0.9.0`. Java 17 or newer is required.
Add the dependency to your project:
**Gradle:**
```gradle
-implementation 'org.apache.iggy:iggy:0.9.0-SNAPSHOT'
+implementation 'org.apache.iggy:iggy:0.9.0'
```
**Maven:**
@@ -30,15 +30,15 @@ implementation 'org.apache.iggy:iggy:0.9.0-SNAPSHOT'
<dependency>
<groupId>org.apache.iggy</groupId>
<artifactId>iggy</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.9.0</version>
</dependency>
```
-Check [Maven
Central](https://central.sonatype.com/artifact/org.apache.iggy/iggy) for
`0.9.0` release availability.
+See [Maven
Central](https://central.sonatype.com/artifact/org.apache.iggy/iggy) for all
published versions.
### Snapshot Versions
-Snapshot versions are also available through the ASF snapshot repository:
+Development builds of the next release carry the version `0.9.1-SNAPSHOT`. Get
them from the ASF snapshot repository:
**Gradle:**
@@ -51,7 +51,7 @@ repositories {
}
dependencies {
- implementation 'org.apache.iggy:iggy:0.9.0-SNAPSHOT'
+ implementation 'org.apache.iggy:iggy:0.9.1-SNAPSHOT'
}
```
@@ -72,20 +72,14 @@ dependencies {
<dependency>
<groupId>org.apache.iggy</groupId>
<artifactId>iggy</artifactId>
- <version>0.9.0-SNAPSHOT</version>
+ <version>0.9.1-SNAPSHOT</version>
</dependency>
</dependencies>
```
## Quick Start
-Cluster auto-commit polling over TCP/TLS keeps group membership on the
-coordinator and uses separate connections to partition primaries. It requires
-server support for binary commands 14, 103 and 104. Pause binary auto-commit
-consumers for the whole upgrade: upgrade every server first, then the SDKs,
-and restart consumers so they rejoin their groups. Older SDKs can lose
membership
-when a backup refuses an offset commit; the new SDK does not fall back to
legacy
-polling. Use `Iggy.tcpClientBuilder()` to get this routing and session
management.
+`Iggy.tcpClientBuilder()` handles the routing and the session for you. Over
TCP and TCP/TLS, the client keeps the consumer group membership on the
coordinator. It polls each partition through a separate connection to the
primary of that partition.
Start the server with the [example
prerequisites](../../examples/java/#running-examples) and matching credentials.
The following snippets show alternative clients. Close a blocking client with
`close()` or an async client with `close().join()` when finished.
@@ -231,7 +225,7 @@ callback stalls every client that shares the group.
```java
// Get SDK version
-String version = Iggy.version(); // e.g., "0.9.0-SNAPSHOT"
+String version = Iggy.version(); // e.g., "0.9.0"
// Get detailed version info
IggyVersion info = Iggy.versionInfo();
@@ -243,7 +237,7 @@ info.getUserAgent(); // User-Agent string for HTTP
## Exception Handling
-The SDK's custom exception types inherit from `IggyException`. Joining a
failed future can wrap the cause in `CompletionException`; the HTTP client's
`close()` method declares `IOException`. Handle those boundaries as well as
specific SDK errors.
+The SDK's custom exception types inherit from `IggyException`. When you join a
failed future, the cause can come back inside a `CompletionException`. The HTTP
client's `close()` method declares `IOException`. Handle these two boundaries
as well as the specific SDK errors.
## Examples
@@ -278,7 +272,7 @@ The wrapper script will:
No manual Gradle installation is required.
-**Note:** Only the Unix shell wrapper (`gradlew`) is provided. Windows users
should use WSL, Git Bash, or install Gradle manually.
+**Note:** Only the Unix shell wrapper (`gradlew`) is provided. On Windows, use
WSL or Git Bash, or install Gradle manually.
## Contributing
@@ -286,6 +280,6 @@ Before opening a pull request:
1. **Format code:** `./gradlew spotlessApply`
2. **Validate build:** `./gradlew check`
-3. **Use AssertJ for assertions:** Tests should use
[AssertJ](https://assertj.github.io/doc/) (`assertThat(...)`) instead of JUnit
assertions.
+3. **Use AssertJ for assertions:** Write test assertions with
[AssertJ](https://assertj.github.io/doc/) (`assertThat(...)`) instead of JUnit
assertions.
-This ensures code style compliance and that all tests and checkstyle
validations pass.
+These steps keep the code style compliant and make sure that all tests and
checkstyle validations pass.
diff --git a/foreign/java/gradle.properties b/foreign/java/gradle.properties
index 45031112e..d6e8e6b14 100644
--- a/foreign/java/gradle.properties
+++ b/foreign/java/gradle.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-version=0.9.0
+version=0.9.1-SNAPSHOT
group=org.apache.iggy