Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
37d7d15
PECOBLR-1121 Patch Arrow to circumvent JVM args issue.
tejassp-db Dec 16, 2025
3f41d73
PECOBLR-1121 Tests to validate Arrow patch across JVM versions.
tejassp-db Dec 16, 2025
ffd6c1c
PECOBLR-1121 Use Arrow patch as fallback.
tejassp-db Dec 18, 2025
2e88cd7
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 19, 2025
a78a597
PECOBLR-1121 Simplify patch code.
tejassp-db Dec 19, 2025
4efaf21
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 19, 2025
1654f74
PECOBLR-1121 Minor refactor.
tejassp-db Dec 22, 2025
c5b7620
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 22, 2025
9d028d6
PECOBLR-1121 Add unit tests for DatabricksArrowBuf.
tejassp-db Dec 22, 2025
30926b2
PECOBLR-1121 Formatting.
tejassp-db Dec 23, 2025
34c7859
PECOBLR-1121 Add toolchain version in pom.xml.
tejassp-db Dec 23, 2025
42422f1
PECOBLR-1121 Fix todos and fixmes.
tejassp-db Dec 23, 2025
ba2f85d
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 23, 2025
3e30c75
Merge branch 'PECOBLR-1121/arrow-patch/stack-2' into PECOBLR-1121/arr…
tejassp-db Dec 23, 2025
c06b7e5
PECOBLR-1121 Add unit tests for all arrow patched classes.
tejassp-db Dec 23, 2025
e50fd34
PECOBLR-1121 format code
tejassp-db Dec 26, 2025
c308183
PECOBLR-1121 JMH benchmark for Arrow parsing.
tejassp-db Dec 26, 2025
2133083
PECOBLR-1121 Convert to multi module project.
tejassp-db Dec 26, 2025
b5829f4
PECOBLR-1121 Tests for dependency shading.
tejassp-db Dec 29, 2025
e0e0af6
PECOBLR-1121 Add tests for all data types.
tejassp-db Dec 30, 2025
36c2d3d
PECOBLR-1121 Fix derive buffer
tejassp-db Dec 30, 2025
0383b7b
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 30, 2025
dcdc49a
PECOBLR-1121 Patch DecimalUtility.
tejassp-db Dec 30, 2025
47e9ec3
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Dec 30, 2025
180bfe5
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Dec 30, 2025
c1f75ca
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Dec 30, 2025
ecd629a
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Dec 30, 2025
44328bc
PECOBLR-1121 Add tests for more types.
tejassp-db Dec 31, 2025
05478d3
PECOBLR-1121 Don't fail on missing toolchains.
tejassp-db Dec 31, 2025
4890feb
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Dec 31, 2025
1fefb67
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Dec 31, 2025
4af94cb
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Dec 31, 2025
c650270
PECOBLR-1121 Fix tests and add Decimal256 test.
tejassp-db Dec 31, 2025
883506b
PECOBLR-1121 Add more Arrow type tests.
tejassp-db Jan 1, 2026
7c44728
PECOBLR-1121 Add Apache 2 compliant changes.
tejassp-db Jan 1, 2026
44271f9
PECOBLR-1121 Suppress stack trace print on Arrow class init failure.
tejassp-db Jan 1, 2026
e87cac4
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 1, 2026
06ef168
PECOBLR-1121 Rename uber artifact to databricks-jdbc
tejassp-db Jan 2, 2026
c309a03
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 2, 2026
a4fff9c
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 2, 2026
df79f87
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 2, 2026
b7390ad
PECOBLR-1121 Clean up pom before publishing.
tejassp-db Jan 2, 2026
1fe15fb
Merge branch 'main' into PECOBLR-1121/arrow-patch/stack-0
tejassp-db Jan 5, 2026
c77b4f8
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
1879285
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
49aa025
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
991ff21
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
269c517
PECOBLR-1121 Fix dependency of tests.
tejassp-db Jan 5, 2026
1cddb50
PECOBLR-1121 Fix TODOs.
tejassp-db Jan 5, 2026
06762bb
PECOBLR-1121 Show cause of RootAllocator load failure.
tejassp-db Jan 5, 2026
0709396
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
663796c
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
244a8be
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
e2bec9e
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 5, 2026
dfffe58
PECOBLR-1503 Add memory stress test for DatabricksBufferAllocator
tejassp-db Jan 13, 2026
237829d
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 13, 2026
d08f6eb
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 13, 2026
ef3cf30
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 13, 2026
768a387
PECOBLR-1504 Update Github actions for multi module maven.
tejassp-db Jan 14, 2026
0ddcf43
PECOBLR-1504 Fix slt workflow
tejassp-db Jan 14, 2026
08b97b2
PECOBLR-1121 Update query to not return data.
tejassp-db Jan 16, 2026
0f60c04
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 16, 2026
5aa81d5
PECOBLR-1121 Update credentails env names.
tejassp-db Jan 16, 2026
5b6a17c
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 16, 2026
0f0a74e
PECOBLR-1121 Move profile from parent -> jdbc-core.
tejassp-db Jan 16, 2026
a6779c8
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 16, 2026
436e9a1
PECOBLR-1121 Fix Github workflows.
tejassp-db Jan 16, 2026
fa4d26d
PECOBLR-1121 Fix Github workflow.
tejassp-db Jan 16, 2026
cd0f42c
PECOBLR-1121 Remove TODO
tejassp-db Jan 16, 2026
120ecca
PECOBLR-1121 Inhertit version number from parent pom
tejassp-db Jan 16, 2026
ae6d865
PECOBLR-1121 Fix tests.
tejassp-db Jan 19, 2026
f00607f
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 19, 2026
5febf7c
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 19, 2026
6c99771
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 19, 2026
5b5a038
PECOBLR-1121 Move spotless plugin to project root.
tejassp-db Jan 19, 2026
2289bb8
PECOBLR-1121 Increase test heap size.
tejassp-db Jan 19, 2026
44925ff
PECOBLR-1121 Reformat code.
tejassp-db Jan 19, 2026
2e0c171
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 19, 2026
271c406
PECOBLR-1121 Add manual triggers for Github workflows.
tejassp-db Jan 21, 2026
5d625d3
PECOBLR-1121 Move properties and plugin to parent pom.
tejassp-db Jan 21, 2026
ac6f3a3
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 21, 2026
9431b59
PECOBLR-1121 Setup maven toolchain on Github actions.
tejassp-db Jan 21, 2026
0015997
PECOBLR-1121 Fix maven toolchain on Github actions.
tejassp-db Jan 21, 2026
19a0aaf
PECOBLR-1121 Add error message to assertion.
tejassp-db Jan 21, 2026
c568979
PECOBLR-1121 Fix install of maven artifacts for test.
tejassp-db Jan 21, 2026
d084399
PECOBLR-1121 Fix failing test.
tejassp-db Jan 21, 2026
3613c05
PECOBLR-1121 Remove CVE download in packaging tests.
tejassp-db Jan 21, 2026
a3fd938
PECOBLR-1121 Remove instance of assert on init failure.
tejassp-db Jan 21, 2026
701946a
Revert "PECOBLR-1121 Add manual triggers for Github workflows."
tejassp-db Jan 21, 2026
a59b558
PECOBLR-1121 Allow manual trigger on prIntegrationTests.yml
tejassp-db Jan 21, 2026
17dbf49
PECOBLR-1121 Fix pom for release.
tejassp-db Jan 22, 2026
9ad5ba5
PECOBLR-1121 Fix uber and thin release.
tejassp-db Jan 22, 2026
8e5c589
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 22, 2026
8ee6fbe
PECOBLR-1121 Add log lines to patched Arrow classes.
tejassp-db Jan 23, 2026
4b34de5
PECOBLR-1121 Formatting.
tejassp-db Jan 23, 2026
402d062
PECOBLR-1121 Fix incorrect check of RootAllocator.
tejassp-db Jan 23, 2026
c66c33a
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
b8abd5a
PECOBLR-1121 Tests for different allocator types in Arrow.
tejassp-db Jan 23, 2026
cb44016
PECOBLR-1121 Separate jvm for allocator manager tests.
tejassp-db Jan 23, 2026
215156a
PECOBLR-1121 Pull static initializer into separate function.
tejassp-db Jan 23, 2026
80aeb03
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
970dc8c
PECOBLR-1121 Remove separate profile for alllocation manager tests.
tejassp-db Jan 23, 2026
e3f50e7
PECOBLR-1121 Fix tests.
tejassp-db Jan 23, 2026
6b675ea
PECOBLR-1121 Test only DatabricksBufferAllocator.
tejassp-db Jan 23, 2026
518a459
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
333c0eb
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
3503d72
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
833c204
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
27ca627
PECOBLR-1121 Fix pom comments.
tejassp-db Jan 23, 2026
0fe94c8
PECOBLR-1121 Test allocator manager.
tejassp-db Jan 23, 2026
4dbc94c
PECOBLR-1121 Remove workflow dispatch.
tejassp-db Jan 23, 2026
4f12bed
PECOBLR-1121 Move copy of java doc to release profile.
tejassp-db Jan 23, 2026
6927302
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 23, 2026
2aa6db8
PECOBLR-1121 Remove gpg signing for local maven install.
tejassp-db Jan 23, 2026
3654553
Merge branch 'main' into PECOBLR-1121/arrow-patch/stack-0
tejassp-db Jan 30, 2026
70b894d
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Jan 30, 2026
615b43a
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Jan 30, 2026
b54ce0c
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Jan 30, 2026
17bf6ba
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Jan 30, 2026
b213383
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Jan 30, 2026
1da2fa1
PECOBLR-1121 Fix tests.
tejassp-db Feb 3, 2026
b12d348
PECOBLR-1121 Fix tests.
tejassp-db Feb 3, 2026
a472980
PECOBLR-1121 Split tests into smaller files.
tejassp-db Feb 3, 2026
ebd0925
PECOBLR-1121 Add a Databricks specific NOOP ReferenceManager.
tejassp-db Feb 4, 2026
185215d
PECOBLR-1121 Fix method which might trigger class loading failures.
tejassp-db Feb 4, 2026
3c56772
PECOBLR-1121 Remove duplicated id logic.
tejassp-db Feb 4, 2026
feb8aa0
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
c11c586
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
fe13bb8
PECOBLR-1121 Change tests to run only in JVM 16+ with nio reflection …
tejassp-db Feb 4, 2026
6bc997c
PECOBLR-1121 add DatabricksReferenceManagerNOOPTest.
tejassp-db Feb 4, 2026
bbb1e75
PECOBLR-1121 Formatting.
tejassp-db Feb 4, 2026
cd65aa8
PECOBLR-1121 Use Arrow chunk file with all types.
tejassp-db Feb 4, 2026
30b1068
PECOBLR-1121 Formatting.
tejassp-db Feb 4, 2026
9041c31
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
d5e5be7
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
7007abe
PECOBLR-1121 Benchmark with all Arrow types.
tejassp-db Feb 4, 2026
0887df1
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
86a2101
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
ebb0b60
PECOBLR-1121 Use try-with-resources in tests
tejassp-db Feb 4, 2026
618b912
PECOBLR-1121 Add tests for empty buffer.
tejassp-db Feb 4, 2026
24d850f
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
7a5f8ca
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
8b3b065
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Feb 4, 2026
b6ce2b6
PECOBLR-1121 Fix modification notice.
tejassp-db Feb 4, 2026
ef6413c
PECOBLR-1121 Fix warnings
tejassp-db Feb 6, 2026
ff2bbd5
PECOBLR-1121 Revert thin JAR release to manual trigger.
tejassp-db Feb 12, 2026
2a7cc09
[PECOBLR-1729] Add telemetry for Arrow patch. (#1190)
tejassp-db Mar 2, 2026
72cb791
Merge branch 'main' into PECOBLR-1121/arrow-patch/stack-0
tejassp-db Mar 2, 2026
4e4441f
Merge branch 'PECOBLR-1121/arrow-patch/stack-0' into PECOBLR-1121/arr…
tejassp-db Mar 2, 2026
fe45d57
Merge branch 'PECOBLR-1121/arrow-patch/stack-1' into PECOBLR-1121/arr…
tejassp-db Mar 2, 2026
d026b2c
Merge branch 'PECOBLR-1121/arrow-patch/stack-3' into PECOBLR-1121/arr…
tejassp-db Mar 2, 2026
7318e61
Merge branch 'PECOBLR-1121/arrow-patch/stack-4' into PECOBLR-1121/arr…
tejassp-db Mar 2, 2026
cb7ce9c
PECOBLR-1121 Bump up version.
tejassp-db Mar 2, 2026
6ef5e96
Merge branch 'PECOBLR-1121/arrow-patch/stack-5' into PECOBLR-1121/arr…
tejassp-db Mar 2, 2026
b227226
PECOBLR-1121 Reduce test memory consumption.
tejassp-db Mar 2, 2026
8ea3ff9
PECOBLR-1121 Update Readme for multi-module project
tejassp-db Mar 2, 2026
ebf707c
PECOBLR-1121 Fix memory test
tejassp-db Mar 2, 2026
d16c18e
PECOBLR-1121 Use deepEquals for comparison in tests
tejassp-db Mar 2, 2026
01c8478
PECOBLR-1121 exclude DatabricksArrowBuf from test coverage
tejassp-db Mar 2, 2026
fb0e8e1
Merge branch 'main' into PECOBLR-1121/arrow-patch/stack-6
tejassp-db Mar 2, 2026
6060577
PECOBLR-1121 Add to next change log
tejassp-db Mar 2, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/bugCatcher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
restore-keys: ${{ runner.os }}-m2

- name: Run Integration Tests
run: mvn -B test -Dtest=*e2e/OAuthTests*
run: mvn -pl jdbc-core -B test -Dtest='*e2e/OAuthTests*'
env:
DATABRICKS_HOST: ${{ secrets.JDBC_PAT_TEST_HOST_NAME }}
DATABRICKS_HTTP_PATH: ${{ secrets.JDBC_PAT_TEST_HTTP_PATH }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/concurrencyExecutionTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
restore-keys: ${{ runner.os }}-m2

- name: Run Concurrency Execution Tests
run: mvn -B test -Dtest=com.databricks.jdbc.integration.e2e.ConcurrentExecutionTests -DargLine="-ea"
run: mvn -pl jdbc-core -B test -Dtest=com.databricks.jdbc.integration.e2e.ConcurrentExecutionTests -DargLine="-ea"
env:
DATABRICKS_TOKEN: ${{ secrets.JDBC_PAT_TEST_TOKEN }}
DATABRICKS_USER: ${{ secrets.DATABRICKS_USER }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/coverageReport.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
${{ runner.os }}-m2-

- name: Run tests with coverage
run: mvn clean test jacoco:report
run: mvn -pl jdbc-core clean test -Dgroups='!Jvm17PlusAndArrowToNioReflectionDisabled' jacoco:report

- name: Check for coverage override
id: override
Expand All @@ -53,7 +53,7 @@ jobs:
- name: Check coverage percentage
if: steps.override.outputs.override == 'false'
run: |
COVERAGE_FILE="target/site/jacoco/jacoco.xml"
COVERAGE_FILE="jdbc-core/target/site/jacoco/jacoco.xml"
if [ ! -f "$COVERAGE_FILE" ]; then
echo "ERROR: Coverage file not found at $COVERAGE_FILE"
exit 1
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/loggingTesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ jobs:
- name: Find JAR file
shell: bash
run: |
# Find the main JAR file dynamically (fat JAR, not thin, not tests)
MAIN_JAR=$(find target -maxdepth 1 -name "databricks-jdbc-*.jar" \
# Find the main JAR file dynamically (uber JAR from assembly-uber module)
MAIN_JAR=$(find assembly-uber/target -maxdepth 1 -name "databricks-jdbc-*.jar" \
-not -name "*-thin.jar" \
-not -name "*-tests.jar" | head -1)
if [ -z "$MAIN_JAR" ]; then
echo "ERROR: Could not find main JAR file in target directory"
ls -la target/
echo "ERROR: Could not find main JAR file in assembly-uber/target directory"
ls -la assembly-uber/target/
exit 1
fi
echo "Using JAR file: $MAIN_JAR"
Expand Down Expand Up @@ -88,18 +88,18 @@ jobs:
- name: Clean & Compile LoggingTest
shell: bash
run: |
rm -rf target/test-classes
mkdir -p target/test-classes
rm -rf jdbc-core/target/test-classes
mkdir -p jdbc-core/target/test-classes

echo "Using JAR file: $MAIN_JAR"

javac \
-cp "$MAIN_JAR" \
-d target/test-classes \
src/test/java/com/databricks/client/jdbc/LoggingTest.java
-d jdbc-core/target/test-classes \
jdbc-core/src/test/java/com/databricks/client/jdbc/LoggingTest.java

echo "==== Checking compiled classes ===="
find target/test-classes -type f
find jdbc-core/target/test-classes -type f

- name: Run LoggingTest
shell: bash
Expand All @@ -110,7 +110,7 @@ jobs:
echo "Using classpath separator: '$SEP'"
echo "Using JAR file: $MAIN_JAR"

CP="target/test-classes${SEP}$MAIN_JAR"
CP="jdbc-core/target/test-classes${SEP}$MAIN_JAR"

java \
--add-opens=java.base/java.nio=ALL-UNNAMED \
Expand Down
118 changes: 112 additions & 6 deletions .github/workflows/prCheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,21 +76,51 @@ jobs:
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2

- name: Set up Maven Toolchains
shell: bash
run: |
mkdir -p ~/.m2
cat > ~/.m2/toolchains.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>${{ matrix.java-version }}</version>
</provides>
<configuration>
<jdkHome>$JAVA_HOME</jdkHome>
</configuration>
</toolchain>
</toolchains>
EOF

- name: Check Arrow Patch Tests
shell: bash
if: matrix.java-version >= 17
run: mvn -Pjdk${{ matrix.java-version }}-NioNotOpen -pl jdbc-core test -Dgroups='Jvm17PlusAndArrowToNioReflectionDisabled'

- name: Check Arrow Allocator Manager Tests
shell: bash
if: matrix.java-version >= 17
run: mvn -Pjdk${{ matrix.java-version }}-NioNotOpen -pl jdbc-core test -Dgroups='Jvm17PlusAndArrowToNioReflectionDisabled' -Dtest="ArrowBufferAllocatorNettyManagerTest,ArrowBufferAllocatorUnsafeManagerTest,ArrowBufferAllocatorUnknownManagerTest" -DforkCount=1 -DreuseForks=false

- name: Check Arrow Memory Tests
shell: bash
run: mvn -Plow-memory -pl jdbc-core test -Dtest='DatabricksArrowPatchMemoryUsageTest'

- name: Check Unit Tests
shell: bash
run: mvn test -Dtest='!**/integration/**,!**/DatabricksDriverExamples.java,!**/ProxyTest.java,!**/LoggingTest.java,!**/SSLTest.java'
run: mvn -pl jdbc-core clean test -Dgroups='!Jvm17PlusAndArrowToNioReflectionDisabled' jacoco:report

- name: Install xmllint
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libxml2-utils

- name: JaCoCo report
run: mvn --batch-mode --errors jacoco:report --file pom.xml

- name: Extract codeCov percentage
shell: bash
run: |
COVERAGE_FILE="target/site/jacoco/jacoco.xml"
COVERAGE_FILE="jdbc-core/target/site/jacoco/jacoco.xml"
COVERED=$(xmllint --xpath "string(//report/counter[@type='INSTRUCTION']/@covered)" "$COVERAGE_FILE")
MISSED=$(xmllint --xpath "string(//report/counter[@type='INSTRUCTION']/@missed)" "$COVERAGE_FILE")
TOTAL=$((COVERED + MISSED))
Expand All @@ -114,4 +144,80 @@ jobs:
exit 1
else
echo "Coverage is equal to or greater than 85%"
fi
fi

packaging-tests:
strategy:
fail-fast: false
matrix:
java-version: [ 17 ]
github-runner: [ linux-ubuntu-latest, windows-server-latest ]

runs-on:
group: databricks-protected-runner-group
labels: ${{ matrix.github-runner }}

steps:
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'adopt'

- name: Enable long paths
if: runner.os == 'Windows'
run: git config --system core.longpaths true

- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}

- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2

- name: Set up Maven Toolchains
shell: bash
run: |
mkdir -p ~/.m2
cat > ~/.m2/toolchains.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<toolchains>
<toolchain>
<type>jdk</type>
<provides>
<version>${{ matrix.java-version }}</version>
</provides>
<configuration>
<jdkHome>$JAVA_HOME</jdkHome>
</configuration>
</toolchain>
</toolchains>
EOF

- name: Install JDBC artifacts into maven local
shell: bash
run: mvn -B -pl jdbc-core,assembly-uber,assembly-thin install -DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -Ddependency-check.skip=true

- name: Check Uber Jar Packaging
shell: bash
run: mvn -pl test-assembly-uber test
env:
DATABRICKS_HOST: ${{ secrets.JDBC_PAT_TEST_HOST_NAME }}
DATABRICKS_HTTP_PATH: ${{ secrets.JDBC_PAT_TEST_HTTP_PATH }}
DATABRICKS_USER: ${{ secrets.DATABRICKS_USER }}
DATABRICKS_TOKEN: ${{ secrets.JDBC_PAT_TEST_TOKEN }}

- name: Check Thin Jar Packaging
shell: bash
run: mvn -pl test-assembly-thin test
env:
DATABRICKS_HOST: ${{ secrets.JDBC_PAT_TEST_HOST_NAME }}
DATABRICKS_HTTP_PATH: ${{ secrets.JDBC_PAT_TEST_HTTP_PATH }}
DATABRICKS_USER: ${{ secrets.DATABRICKS_USER }}
DATABRICKS_TOKEN: ${{ secrets.JDBC_PAT_TEST_TOKEN }}
6 changes: 5 additions & 1 deletion .github/workflows/prCheckJDK8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,8 @@ jobs:
restore-keys: ${{ runner.os }}-jdk8-m2

- name: Run Unit Tests
run: mvn clean test
run: mvn -pl jdbc-core clean test -Dgroups='!Jvm17PlusAndArrowToNioReflectionDisabled'

- name: Check Arrow Memory Tests
shell: bash
run: mvn -Plow-memory -pl jdbc-core test -Dtest='DatabricksArrowPatchMemoryUsageTest'
4 changes: 2 additions & 2 deletions .github/workflows/prIntegrationTests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ jobs:
include:
# SQL_EXEC mode: Tests SEA client behavior
# Note: CircuitBreakerIntegrationTests requires THRIFT_SERVER mode (tested in second matrix entry)
- test-command: mvn -B compile test -Dtest=*IntegrationTests,!M2MPrivateKeyCredentialsIntegrationTests,!M2MAuthIntegrationTests,!CircuitBreakerIntegrationTests,!ThriftCloudFetchFakeIntegrationTests
- test-command: mvn -pl jdbc-core -B compile test -Dtest=*IntegrationTests,!M2MPrivateKeyCredentialsIntegrationTests,!M2MAuthIntegrationTests,!CircuitBreakerIntegrationTests,!ThriftCloudFetchFakeIntegrationTests
fake-service-type: 'SQL_EXEC'
# THRIFT_SERVER mode: Tests Thrift client behavior and circuit breaker fallback
- test-command: mvn -B compile test -Dtest=*IntegrationTests,!M2MPrivateKeyCredentialsIntegrationTests,!SqlExecApiHybridResultsIntegrationTests,!DBFSVolumeIntegrationTests,!M2MAuthIntegrationTests,!UCVolumeIntegrationTests,!SqlExecApiIntegrationTests
- test-command: mvn -pl jdbc-core -B compile test -Dtest=*IntegrationTests,!M2MPrivateKeyCredentialsIntegrationTests,!SqlExecApiHybridResultsIntegrationTests,!DBFSVolumeIntegrationTests,!M2MAuthIntegrationTests,!UCVolumeIntegrationTests,!SqlExecApiIntegrationTests
fake-service-type: 'THRIFT_SERVER'
steps:
- name: Checkout PR
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/proxyTesting.yml
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ jobs:
################################################################
- name: Run ProxyTest
run: |
mvn test -Dtest=**/ProxyTest.java
mvn -pl jdbc-core test -Dtest=**/ProxyTest.java

################################################################
# 14) Cleanup
Expand Down
117 changes: 21 additions & 96 deletions .github/workflows/release-thin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,111 +31,37 @@ jobs:

- name: Set up Java for publishing to Maven Central Repository
uses: actions/setup-java@v4
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
with:
java-version: 11
distribution: "adopt"
server-id: central
distribution: "adopt"
server-username: MAVEN_CENTRAL_USERNAME
server-password: MAVEN_CENTRAL_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE

- name: Configure GPG
# Step 1: Build and install dependencies to local Maven repository
# This builds jdbc-core (and parent) without publishing them.
# The -am flag builds all dependencies needed by assembly-thin.
# We use -Prelease here to generate sources/javadoc JARs for jdbc-core,
# which assembly-thin needs for its own sources/javadoc artifacts.
# GPG signing is skipped since we're only installing locally, not publishing.
- name: Build dependencies
run: |
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
echo "pinentry-mode loopback" >> ~/.gnupg/gpg.conf
gpg-connect-agent reloadagent /bye
mvn -Prelease clean install --batch-mode -pl jdbc-core -am -Dgpg.skip=true

- name: Build thin JAR with sources and javadocs
# Step 2: Deploy only the thin JAR module to Maven Central
# We don't use -am here to avoid the central-publishing-maven-plugin
# from collecting parent/jdbc-core artifacts into the deployment bundle.
# The jdbc-core dependency is already available from Step 1.
- name: Publish thin JAR to Maven Central
run: |
# Build main artifacts including sources and javadocs
mvn -B -DskipTests package source:jar javadoc:jar

- name: Sign all thin JAR artifacts
run: |
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')

# Sign thin JAR
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback \
--armor --detach-sign "target/databricks-jdbc-${VERSION}-thin.jar"

# Sign sources JAR
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback \
--armor --detach-sign "target/databricks-jdbc-${VERSION}-sources.jar"

# Sign javadoc JAR
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback \
--armor --detach-sign "target/databricks-jdbc-${VERSION}-javadoc.jar"
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}

- name: Verify all required artifacts exist
run: |
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')
test -f "target/databricks-jdbc-${VERSION}-thin.jar"
test -f "target/databricks-jdbc-${VERSION}-thin.jar.asc"
test -f "target/databricks-jdbc-${VERSION}-sources.jar"
test -f "target/databricks-jdbc-${VERSION}-sources.jar.asc"
test -f "target/databricks-jdbc-${VERSION}-javadoc.jar"
test -f "target/databricks-jdbc-${VERSION}-javadoc.jar.asc"

- name: Publish Thin JAR as Separate Artifact to Maven Central
run: |
VERSION=$(grep -m1 '<version>' pom.xml | sed 's/.*<version>\(.*\)<\/version>.*/\1/')

echo "Creating deployment bundle for thin JAR..."

# Create staging directory
mkdir -p target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}

# Copy thin JAR and its signature
cp "target/databricks-jdbc-${VERSION}-thin.jar" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}.jar
cp "target/databricks-jdbc-${VERSION}-thin.jar.asc" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}.jar.asc

# Copy sources JAR and its signature
cp "target/databricks-jdbc-${VERSION}-sources.jar" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}-sources.jar
cp "target/databricks-jdbc-${VERSION}-sources.jar.asc" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}-sources.jar.asc

# Copy javadoc JAR and its signature
cp "target/databricks-jdbc-${VERSION}-javadoc.jar" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}-javadoc.jar
cp "target/databricks-jdbc-${VERSION}-javadoc.jar.asc" \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}-javadoc.jar.asc

# Copy POM and sign it
cp thin_public_pom.xml target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}.pom
echo "$GPG_PASSPHRASE" | gpg --batch --yes --passphrase-fd 0 --pinentry-mode loopback \
--armor --detach-sign \
target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}/databricks-jdbc-thin-${VERSION}.pom

# Generate checksums for all files
cd target/thin-staging/com/databricks/databricks-jdbc-thin/${VERSION}
for file in databricks-jdbc-thin-*; do
md5sum "$file" | awk '{print $1}' > "${file}.md5"
sha1sum "$file" | awk '{print $1}' > "${file}.sha1"
done
cd $GITHUB_WORKSPACE

# Create bundle ZIP
cd target/thin-staging
zip -r ../central-thin-bundle.zip com/
cd $GITHUB_WORKSPACE

echo "Uploading bundle to Maven Central Portal..."

# Upload to new Maven Central Portal
curl -X POST \
-u "$MAVEN_CENTRAL_USERNAME:$MAVEN_CENTRAL_PASSWORD" \
-F "bundle=@target/central-thin-bundle.zip" \
-F "publishingType=AUTOMATIC" \
-w "\nHTTP_STATUS:%{http_code}\n" \
https://central.sonatype.com/api/v1/publisher/upload

echo "Thin JAR published successfully!"
mvn -Prelease deploy --batch-mode -pl assembly-thin \
-Dnvd.api.key=${{ secrets.NVD_API_KEY }} \
-Dossindex.username=${{ secrets.OSSINDEX_USERNAME }} \
-Dossindex.password=${{ secrets.OSSINDEX_PASSWORD }}
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
Expand Down Expand Up @@ -174,5 +100,4 @@ jobs:
with:
tag_name: ${{ steps.get_tag.outputs.tag }}
files: |
target/*-thin.jar

assembly-thin/target/databricks-jdbc-thin-*.jar
Loading
Loading