Skip to content

[Java] Release v1.1.0#226

Merged
teodordelibasic-db merged 1 commit intomainfrom
java/release-v1.1.0
Apr 22, 2026
Merged

[Java] Release v1.1.0#226
teodordelibasic-db merged 1 commit intomainfrom
java/release-v1.1.0

Conversation

@teodordelibasic-db
Copy link
Copy Markdown
Contributor

What changes are proposed in this pull request?

Release v1.1.0

Major Changes

  • License: Migrated from the Databricks License to the Apache License 2.0

New Features and Improvements

  • Arrow Flight Support (Experimental): Added support for ingesting Apache Arrow VectorSchemaRoot batches via Arrow Flight protocol
    • Note: Arrow Flight is not yet supported by default from the Zerobus server side.
    • New ZerobusArrowStream class with ingestBatch(), waitForOffset(), flush(), close(), getUnackedBatches() methods
    • New ArrowStreamConfigurationOptions for configuring Arrow streams (max inflight batches, recovery, timeouts, IPC compression)
    • Configurable IPC compression via ArrowStreamConfigurationOptions.setIpcCompression() (supports LZ4_FRAME and ZSTD)
    • New createArrowStream() and recreateArrowStream() methods on ZerobusSdk
    • Accepts VectorSchemaRoot directly via ingestBatch() (IPC serialization handled internally)
    • Arrow is opt-in: add arrow-vector and arrow-memory-netty as dependencies (provided scope, >= 15.0.0)

Bug Fixes

  • Classloader Isolation Compatibility: Fixed NoClassDefFoundError when using the SDK inside Spring Boot. JNI class references are now cached as GlobalRefs during JNI_OnLoad, so native daemon threads no longer rely on FindClass through the system classloader.
  • Fixed proto generation tool to skip reserved field numbers 19000-19999 for tables with more than 19000 columns

Internal Changes

  • Added arrow-vector 17.0.0 as provided dependency for Arrow Flight support
  • Added arrow-memory-netty 17.0.0 as test dependency for integration tests
  • Uses existing JNI Arrow Flight bindings from Rust SDK (nativeCreateArrowStream, nativeIngestBatch, etc.)

API Changes

  • Added createArrowStream(String tableName, Schema schema, String clientId, String clientSecret) to ZerobusSdk
  • Added createArrowStream(String tableName, Schema schema, String clientId, String clientSecret, ArrowStreamConfigurationOptions options) to ZerobusSdk
  • Added recreateArrowStream(ZerobusArrowStream closedStream) to ZerobusSdk
  • Added ZerobusArrowStream class with methods: ingestBatch(), waitForOffset(), flush(), close(), getUnackedBatches(), isClosed(), getTableName(), getOptions()
  • Added ArrowStreamConfigurationOptions class with fields: maxInflightBatches, recovery, recoveryTimeoutMs, recoveryBackoffMs, recoveryRetries, serverLackOfAckTimeoutMs, flushTimeoutMs, connectionTimeoutMs, ipcCompression
  • Added IPCCompressionType enum with values: NONE, LZ4_FRAME, ZSTD
  • Added optional dependency: org.apache.arrow:arrow-vector >= 15.0.0 (provided scope)

How is this tested?

N/A

@teodordelibasic-db teodordelibasic-db self-assigned this Apr 22, 2026
@teodordelibasic-db teodordelibasic-db force-pushed the java/release-v1.1.0 branch 2 times, most recently from 8069f28 to b7e5158 Compare April 22, 2026 11:42
Signed-off-by: teodordelibasic-db <teodor.delibasic@databricks.com>
Copy link
Copy Markdown
Contributor

@danilonajkov-db danilonajkov-db left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks!

@teodordelibasic-db teodordelibasic-db added this pull request to the merge queue Apr 22, 2026
Merged via the queue into main with commit 62d6921 Apr 22, 2026
15 checks passed
@teodordelibasic-db teodordelibasic-db deleted the java/release-v1.1.0 branch April 22, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants