Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 33 additions & 11 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,47 @@ on:
types: [checks_requested]

jobs:
tests-ubuntu:
uses: ./.github/workflows/test.yml
strategy:
fail-fast: false
matrix:
javaVersion: ['11', '17', '21']
with:
os: linux-ubuntu-latest
javaVersion: ${{ matrix.javaVersion }}

tests-windows:
uses: ./.github/workflows/test.yml
strategy:
fail-fast: false
matrix:
javaVersion: ['11', '17', '21']
with:
os: windows-server-latest
javaVersion: ${{ matrix.javaVersion }}

fmt:
runs-on:
group: databricks-protected-runner-group
labels: linux-ubuntu-latest
steps:
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Cache Maven packages
uses: actions/cache@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
java-version: 11
distribution: 'temurin'
cache: 'maven'

- name: Check formatting
run: mvn --errors spotless:check
run: mvn spotless:check

- name: Fail on formatting differences
if: failure()
run: |
echo "Code formatting issues detected. Run 'mvn spotless:apply' to fix."
exit 1
48 changes: 48 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Test Workflow

on:
workflow_call:
inputs:
os:
required: true
type: string
javaVersion:
required: true
type: string

jobs:
test:
strategy:
fail-fast: false
runs-on:
group: databricks-protected-runner-group
labels: ${{ inputs.os }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Unshallow
run: git fetch --prune --unshallow

- name: Set up JDK ${{ inputs.javaVersion }}
uses: actions/setup-java@v4
with:
java-version: ${{ inputs.javaVersion }}
distribution: 'temurin'
cache: 'maven'

- name: Build with Maven
run: mvn clean compile

- name: Run tests
run: mvn test

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-${{ inputs.os }}-java-${{ inputs.javaVersion }}
path: |
target/surefire-reports/
target/test-classes/
retention-days: 7
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Version changelog

## Release v0.1.0

Initial release of the Databricks Zerobus Ingest SDK for Java.

### API Changes

- Added `ZerobusSdk` class for creating ingestion streams
- Added `ZerobusStream` class for managing stateful gRPC streams
- Added `RecordAcknowledgment` for blocking until record acknowledgment
- Added `TableProperties` for configuring table schema and name
- Added `StreamConfigurationOptions` for stream behavior configuration
- Added `ZerobusException` and `NonRetriableException` for error handling
- Added `StreamState` enum for tracking stream lifecycle
- Added utility methods in `ZerobusSdkStubUtils` for gRPC stub management
- Support for Java 8 and higher
Loading