From 21330832021ce975dc009d8edb820576b77132ac Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 26 Dec 2025 12:39:58 +0530 Subject: [PATCH 01/16] PECOBLR-1121 Convert to multi module project. Convert the code to muli module project. - Cleaner separation of JAR generation for Uber jar and normal/thin JAR with some patched Arrow changes. - Test modules with tests for shaded jars. --- assembly-thin/pom.xml | 102 +++ assembly-thin/src/main/resources/README.md | 1 + assembly-uber/pom.xml | 154 +++++ assembly-uber/src/main/resources/README.md | 1 + jdbc-core/pom.xml | 498 ++++++++++++++ jdbc-core/src | 1 + pom.xml | 630 +----------------- test-assembly-thin/pom.xml | 35 + .../databricks/jdbc/TestThinPackaging.java | 87 +++ test-assembly-uber/pom.xml | 34 + .../databricks/jdbc/TestUberPackaging.java | 87 +++ 11 files changed, 1033 insertions(+), 597 deletions(-) create mode 100644 assembly-thin/pom.xml create mode 100644 assembly-thin/src/main/resources/README.md create mode 100644 assembly-uber/pom.xml create mode 100644 assembly-uber/src/main/resources/README.md create mode 100644 jdbc-core/pom.xml create mode 120000 jdbc-core/src create mode 100644 test-assembly-thin/pom.xml create mode 100644 test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java create mode 100644 test-assembly-uber/pom.xml create mode 100644 test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java diff --git a/assembly-thin/pom.xml b/assembly-thin/pom.xml new file mode 100644 index 0000000000..a6ed38bef2 --- /dev/null +++ b/assembly-thin/pom.xml @@ -0,0 +1,102 @@ + + + 4.0.0 + + + com.databricks + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + + + com.databricks + databricks-jdbc-thin + 3.1.0-arrow-patched-SNAPSHOT + jar + Thin + + + + com.databricks + databricks-jdbc-core + 3.1.0-arrow-patched-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.0 + + + shade and package jars + package + + shade + + + + true + + + true + + + false + + + true + + + + org.apache.arrow:* + com.databricks:databricks-jdbc-core + + + + + org.apache.arrow + + com.databricks.internal.apache.arrow + + + + + + *:* + + META-INF/*.DSA + META-INF/*.RSA + META-INF/*.SF + META-INF/DEPENDENCIES + META-INF/LICENSE.txt + META-INF/versions/** + + + + + + + com.databricks.client.jdbc.Driver + + + + ${project.artifactId} + + + ${project.version} + + + + + + + + + + + \ No newline at end of file diff --git a/assembly-thin/src/main/resources/README.md b/assembly-thin/src/main/resources/README.md new file mode 100644 index 0000000000..506fc8b4c7 --- /dev/null +++ b/assembly-thin/src/main/resources/README.md @@ -0,0 +1 @@ +Shading Arrow in the driver. \ No newline at end of file diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml new file mode 100644 index 0000000000..f25e445b17 --- /dev/null +++ b/assembly-uber/pom.xml @@ -0,0 +1,154 @@ + + + 4.0.0 + + + com.databricks + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + + + com.databricks + databricks-jdbc + jar + Uber + + JDBC databricks driver Uber jar. + + + + + com.databricks + databricks-jdbc-core + 3.1.0-arrow-patched-SNAPSHOT + + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.0 + + + org.apache.logging.log4j + log4j-transform-maven-shade-plugin-extensions + 0.1.0 + + + + + shade and package jars + package + + shade + + + + false + + + codegen + com.databricks.internal.codegen + + + com.databricks.sdk + com.databricks.internal.sdk + + + com.fasterxml + com.databricks.internal.fasterxml + + + com.google + com.databricks.internal.google + + + com.nimbusds + com.databricks.internal.nimbusds + + + io + com.databricks.internal.io + + + net.jpountz + com.databricks.internal.jpountz + + + org.apache + com.databricks.internal.apache + + + org.bouncycastle + com.databricks.internal.bouncycastle + + + org.checkerframework + com.databricks.internal.checkerframework + + + org.ini4j + com.databricks.internal.ini4j + + + org.json + com.databricks.internal.json + + + org.locationtech.jts + com.databricks.internal.jts + + + org.osgi + com.databricks.internal.osgi + + + org.slf4j + com.databricks.internal.slf4j + + + + + *:* + + META-INF/*.DSA + META-INF/*.RSA + META-INF/*.SF + META-INF/DEPENDENCIES + META-INF/LICENSE.txt + META-INF/versions/** + + + + *:* + + edu/** + javax/** + jakarta/** + net/jcip/** + + + + + + + com.databricks.client.jdbc.Driver + + ${project.artifactId} + ${project.version} + + + + + + + + + + + + \ No newline at end of file diff --git a/assembly-uber/src/main/resources/README.md b/assembly-uber/src/main/resources/README.md new file mode 100644 index 0000000000..f8e46b4805 --- /dev/null +++ b/assembly-uber/src/main/resources/README.md @@ -0,0 +1 @@ +Shaded version of the driver. \ No newline at end of file diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml new file mode 100644 index 0000000000..85a356d525 --- /dev/null +++ b/jdbc-core/pom.xml @@ -0,0 +1,498 @@ + + + 4.0.0 + + + com.databricks + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + + + com.databricks + databricks-jdbc-core + 3.1.0-arrow-patched-SNAPSHOT + jar + Databricks JDBC Driver + Databricks JDBC Driver. + https://github.com/databricks/databricks-jdbc + + + Apache License, Version 2.0 + https://github.com/databricks/databricks-jdbc/blob/main/LICENSE + + + + + Databricks JDBC Team + eng-oss-sql-driver@databricks.com + Databricks + https://www.databricks.com + + + + scm:git:https://github.com/databricks/databricks-jdbc.git + scm:git:https://github.com/databricks/databricks-jdbc.git + https://github.com/databricks/databricks-jdbc + + + GitHub Issues + https://github.com/databricks/databricks-jdbc/issues + + + + local-test-repo + file://${project.build.directory}/local-repo + + + + UTF-8 + UTF-8 + 18.3.0 + 3.18.0 + 11 + 11 + 5.2.0 + 2.18.3 + 2.22.1 + 2.0.13 + 33.0.0-jre + 3.0.1 + 2.13.2 + 2.9.2 + 4.5.14 + 2.10.1 + 2.14.0 + 0.69.0 + 3.1.2 + 0.3 + 1.8.1 + 0.19.0 + 1.3.5 + dbsql + dummy-token + 3.5.4 + 10.0.2 + 1.79 + 5.3.1 + 4.2.6.Final + 1.71.0 + 1.7.0 + 1.37 + + + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + com.google.code.gson + gson + ${gson.version} + + + + + + com.databricks + databricks-sdk-java + ${databricks-sdk.version} + + + org.apache.commons + commons-configuration2 + ${commons-configuration.version} + + + org.apache.arrow + arrow-memory-core + ${arrow.version} + + + org.apache.arrow + arrow-memory-unsafe + ${arrow.version} + + + org.apache.arrow + arrow-vector + ${arrow.version} + + + org.apache.arrow + arrow-memory-netty + ${arrow.version} + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + org.apache.thrift + libthrift + ${thrift.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + org.apache.logging.log4j + log4j-slf4j2-impl + ${log4j.version} + test + + + org.apache.logging.log4j + log4j-core + ${log4j.version} + test + + + org.apache.logging.log4j + log4j-api + ${log4j.version} + test + + + commons-io + commons-io + ${commons-io.version} + + + com.google.code.findbugs + annotations + ${google.findbugs.annotations.version} + + + com.google.guava + guava + ${google.guava.version} + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + test + + + com.nimbusds + nimbus-jose-jwt + ${nimbusjose.version} + + + org.bouncycastle + bcprov-jdk18on + ${bouncycastle.version} + + + org.bouncycastle + bcpkix-jdk18on + ${bouncycastle.version} + + + org.mockito + mockito-inline + ${mockito.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + org.immutables + value + ${immutables.value.version} + provided + + + net.hydromatic + sql-logic-test + ${sql-logic-test.version} + test + + + org.lz4 + lz4-java + ${lz4-compression.version} + + + + io.grpc + grpc-context + ${grpc.version} + + + + io.netty + netty-common + ${netty.version} + + + + io.netty + netty-buffer + ${netty.version} + + + jakarta.annotation + jakarta.annotation-api + ${annotation.version} + + + org.wiremock + wiremock + ${wiremock.version} + test + + + commons-fileupload + commons-fileupload + + + + + org.apache.httpcomponents.client5 + httpclient5 + ${async-httpclient.version} + + + org.apache.httpcomponents.core5 + httpcore5 + ${async-httpclient.version} + + + io.github.resilience4j + resilience4j-circuitbreaker + ${resilience4j.version} + + + io.github.resilience4j + resilience4j-core + ${resilience4j.version} + + + org.locationtech.jts + jts-core + 1.20.0 + + + + org.openjdk.jmh + jmh-core + ${jmh.version} + test + + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + test + + + + + + ${project.artifactId}-${project.version} + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + + com.databricks.client.jdbc.Driver + true + + + + + + attach-test-jar + + test-jar + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + **/DatabricksDriverExamples.java + **/integration/**/*.java + **/ErrorTypes.java + **/ErrorCodes.java + **/ProxyTest.java + **/LoggingTest.java + **/SSLTest.java + + + @{argLine} + --add-opens=java.base/java.nio=ALL-UNNAMED + -Dnet.bytebuddy.experimental=true + + + JDKLOGGER + ${project.basedir}/src/test/resources/logging.properties + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + java + + --add-opens=java.base/java.nio=ALL-UNNAMED + -classpath + + com.databricks.jdbc.sqllogictest.SLTMain + -e + ${slt.executor} + -p + ${slt.token} + + test + + + + org.apache.maven.plugins + maven-compiler-plugin + + + + org.immutables + value + ${immutables.value.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + + + + + + org.owasp + dependency-check-maven + 12.1.6 + + + HTML + JSON + + + 7 + ${nvd.api.key} + 10 + 4000 + true + ${ossindex.username} + ${ossindex.password} + + + + + check + + + + + + com.diffplug.spotless + spotless-maven-plugin + 2.39.0 + + + format + + apply + + compile + + + + + + 1.18.1 + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.11 + + + + prepare-agent + + + + report + prepare-package + + report + + + + + + **/*Constants* + **/*Exception* + **/CommandName* + **/DatabricksJdbcConstants* + **/DatabricksJdbcUrlParams* + **/Driver* + **/EnvironmentVariables* + **/model/** + **/thrift/generated/** + + + + + + + + diff --git a/jdbc-core/src b/jdbc-core/src new file mode 120000 index 0000000000..5cd551cf26 --- /dev/null +++ b/jdbc-core/src @@ -0,0 +1 @@ +../src \ No newline at end of file diff --git a/pom.xml b/pom.xml index a27e47204d..14f10ed3f4 100644 --- a/pom.xml +++ b/pom.xml @@ -3,13 +3,21 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.databricks - databricks-jdbc - - 3.0.6 - jar - Databricks JDBC Driver - Databricks JDBC Driver. + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + pom + Databricks JDBC Parent + Parent POM for Databricks JDBC Driver. https://github.com/databricks/databricks-jdbc + + + jdbc-core + assembly-thin + assembly-uber + test-assembly-thin + test-assembly-uber + + Apache License, Version 2.0 @@ -33,592 +41,13 @@ GitHub Issues https://github.com/databricks/databricks-jdbc/issues - - - local-test-repo - file://${project.build.directory}/local-repo - - + - UTF-8 - UTF-8 - 18.3.0 - 3.18.0 - 11 - 11 - 5.2.0 - 2.18.3 - 2.22.1 - 2.0.13 - 33.0.0-jre - 5.9.2 - 3.0.1 - 2.13.2 - 2.9.2 - 4.5.14 - 2.10.1 - 2.14.0 - 0.69.0 - 3.1.2 - 0.3 - 1.8.1 - 0.19.0 - 1.3.5 - dbsql - dummy-token - 3.5.4 - 10.0.2 - 1.79 - 5.3.1 - 4.2.6.Final - 1.71.0 - 1.7.0 3.2.0 - 1.37 + 3.1.0-arrow-patched-SNAPSHOT + 5.9.2 - - - - - org.apache.commons - commons-lang3 - ${commons-lang3.version} - - - - com.google.code.gson - gson - ${gson.version} - - - - - - com.databricks - databricks-sdk-java - ${databricks-sdk.version} - - - org.apache.commons - commons-configuration2 - ${commons-configuration.version} - - - org.apache.arrow - arrow-memory-core - ${arrow.version} - - - org.apache.arrow - arrow-memory-unsafe - ${arrow.version} - - - org.apache.arrow - arrow-vector - ${arrow.version} - - - org.apache.arrow - arrow-memory-netty - ${arrow.version} - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - org.apache.thrift - libthrift - ${thrift.version} - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.apache.logging.log4j - log4j-slf4j2-impl - ${log4j.version} - test - - - org.apache.logging.log4j - log4j-core - ${log4j.version} - test - - - org.apache.logging.log4j - log4j-api - ${log4j.version} - test - - - commons-io - commons-io - ${commons-io.version} - - - com.google.code.findbugs - annotations - ${google.findbugs.annotations.version} - - - com.google.guava - guava - ${google.guava.version} - - - org.junit.jupiter - junit-jupiter - ${junit.jupiter.version} - test - - - com.nimbusds - nimbus-jose-jwt - ${nimbusjose.version} - - - org.bouncycastle - bcprov-jdk18on - ${bouncycastle.version} - - - org.bouncycastle - bcpkix-jdk18on - ${bouncycastle.version} - - - org.mockito - mockito-inline - ${mockito.version} - test - - - org.mockito - mockito-junit-jupiter - ${mockito.version} - test - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - org.immutables - value - ${immutables.value.version} - provided - - - net.hydromatic - sql-logic-test - ${sql-logic-test.version} - test - - - org.lz4 - lz4-java - ${lz4-compression.version} - - - - io.grpc - grpc-context - ${grpc.version} - - - - io.netty - netty-common - ${netty.version} - - - - io.netty - netty-buffer - ${netty.version} - - - jakarta.annotation - jakarta.annotation-api - ${annotation.version} - - - org.wiremock - wiremock - ${wiremock.version} - test - - - commons-fileupload - commons-fileupload - - - - - org.apache.httpcomponents.client5 - httpclient5 - ${async-httpclient.version} - - - org.apache.httpcomponents.core5 - httpcore5 - ${async-httpclient.version} - - - io.github.resilience4j - resilience4j-circuitbreaker - ${resilience4j.version} - - - io.github.resilience4j - resilience4j-core - ${resilience4j.version} - - - org.locationtech.jts - jts-core - 1.20.0 - - - - org.openjdk.jmh - jmh-core - ${jmh.version} - test - - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh.version} - test - - - - - ${project.artifactId}-${project.version} - - - org.apache.maven.plugins - maven-jar-plugin - 3.3.0 - - - - com.databricks.client.jdbc.Driver - true - - - - - - attach-thin-jar - package - - jar - - - thin - - - - attach-test-jar - - test-jar - - - - - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - - **/DatabricksDriverExamples.java - **/integration/**/*.java - **/ErrorTypes.java - **/ErrorCodes.java - **/ProxyTest.java - **/LoggingTest.java - **/SSLTest.java - - - @{argLine} - --add-opens=java.base/java.nio=ALL-UNNAMED - -Dnet.bytebuddy.experimental=true - - - JDKLOGGER - ${project.basedir}/src/test/resources/logging.properties - - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - java - - --add-opens=java.base/java.nio=ALL-UNNAMED - -classpath - - com.databricks.jdbc.sqllogictest.SLTMain - -e - ${slt.executor} - -p - ${slt.token} - - test - - - - org.apache.maven.plugins - maven-compiler-plugin - - - - org.immutables - value - ${immutables.value.version} - - - org.openjdk.jmh - jmh-generator-annprocess - ${jmh.version} - - - - - - org.owasp - dependency-check-maven - 12.1.6 - - - HTML - JSON - - - 7 - ${nvd.api.key} - 10 - 4000 - true - ${ossindex.username} - ${ossindex.password} - - - - - check - - - - - - com.diffplug.spotless - spotless-maven-plugin - 2.39.0 - - - format - - apply - - compile - - - - - - 1.18.1 - - - - - - org.jacoco - jacoco-maven-plugin - 0.8.11 - - - - prepare-agent - - - - report - prepare-package - - report - - - - - - **/*Constants* - **/*Exception* - **/CommandName* - **/DatabricksJdbcConstants* - **/DatabricksJdbcUrlParams* - **/Driver* - **/EnvironmentVariables* - **/model/** - **/thrift/generated/** - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.5.0 - - - org.apache.logging.log4j - log4j-transform-maven-shade-plugin-extensions - 0.1.0 - - - - - shade and package jars - package - - shade - - - - false - - - codegen - com.databricks.internal.codegen - - - com.databricks.sdk - com.databricks.internal.sdk - - - com.fasterxml - com.databricks.internal.fasterxml - - - com.google - com.databricks.internal.google - - - com.nimbusds - com.databricks.internal.nimbusds - - - io - com.databricks.internal.io - - - net.jpountz - com.databricks.internal.jpountz - - - org.apache - com.databricks.internal.apache - - - org.bouncycastle - com.databricks.internal.bouncycastle - - - org.checkerframework - com.databricks.internal.checkerframework - - - org.ini4j - com.databricks.internal.ini4j - - - org.json - com.databricks.internal.json - - - org.locationtech.jts - com.databricks.internal.jts - - - org.osgi - com.databricks.internal.osgi - - - org.slf4j - com.databricks.internal.slf4j - - - - - *:* - - META-INF/*.DSA - META-INF/*.RSA - META-INF/*.SF - META-INF/DEPENDENCIES - META-INF/LICENSE.txt - META-INF/versions/** - - - - *:* - - edu/** - javax/** - jakarta/** - net/jcip/** - - - - - - - com.databricks.client.jdbc.Driver - - ${project.artifactId} - ${project.version} - - - - - - - - - - @@ -789,7 +218,7 @@ maven-surefire-plugin - @{argLine} + @@ -825,7 +254,8 @@ maven-surefire-plugin - @{argLine} -Darrow.memory.debug.allocator=true + + -Darrow.memory.debug.allocator=true @@ -861,9 +291,12 @@ maven-surefire-plugin + + + + - @{argLine} --add-opens=java.base/java.nio=ALL-UNNAMED - -Darrow.memory.debug.allocator=true + --add-opens=java.base/java.nio=ALL-UNNAMED -Darrow.memory.debug.allocator=true @@ -900,7 +333,8 @@ maven-surefire-plugin - @{argLine} -Darrow.memory.debug.allocator=true + + -Darrow.memory.debug.allocator=true @@ -936,9 +370,12 @@ maven-surefire-plugin + + + + - @{argLine} --add-opens=java.base/java.nio=ALL-UNNAMED - -Darrow.memory.debug.allocator=true + --add-opens=java.base/java.nio=ALL-UNNAMED -Darrow.memory.debug.allocator=true @@ -946,5 +383,4 @@ - - + \ No newline at end of file diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml new file mode 100644 index 0000000000..f15d3efb8c --- /dev/null +++ b/test-assembly-thin/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + com.databricks + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + + + com.databricks + test-databricks-jdbc-thin + jar + Test thin + + JDBC databricks driver. + + + + + com.databricks + databricks-jdbc-thin + 3.1.0-arrow-patched-SNAPSHOT + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + test + + + + \ No newline at end of file diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java new file mode 100644 index 0000000000..104bc42fd7 --- /dev/null +++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java @@ -0,0 +1,87 @@ +package com.databricks.jdbc; + +import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator; +import com.databricks.jdbc.common.DatabricksJdbcUrlParams; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Map; +import java.util.Optional; +import java.util.Properties; +import org.junit.jupiter.api.Test; + +/** Test artifacts are packaged properly. */ +public class TestThinPackaging { + @Test + public void testThinPackaging() { + // Test that the "arrow" package is relocated. + com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator = + ArrowBufferAllocator.getBufferAllocator(); + System.out.println(bufferAllocator.toString()); + + // TODO - add more of these classes to test. + } + + @Test + public void executeLargeQuery() throws SQLException { + try (Connection connection = + connect( + Map.of( + DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1", + DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"))) { + try (Statement statement = connection.createStatement()) { + final int limit = 1_000_000; + final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; + ResultSet result = statement.executeQuery(sql); + int totalRows = 0; + while (result.next()) { + if (totalRows % 100_000 == 0) { + System.out.println("Processed " + totalRows + " rows"); + } + totalRows++; + } + + System.out.println(totalRows + " rows processed"); + } + } + } + + private Connection connect(Map urlParams) throws SQLException { + Properties props = new Properties(); + props.setProperty("user", getDatabricksUser()); + props.setProperty("password", getDatabricksDogfoodToken()); + for (Map.Entry entry : urlParams.entrySet()) { + props.setProperty(entry.getKey(), entry.getValue().toString()); + } + + String url = getDogfoodJDBCUrl(); + + return new com.databricks.client.jdbc.Driver().connect(url, props); + } + + private String getDogfoodJDBCUrl() { + String template = + "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; + String host = getDatabricksDogfoodHost(); + String httpPath = getDatabricksDogfoodHTTPPath(); + + return String.format(template, host, httpPath); + } + + private String getDatabricksDogfoodHTTPPath() { + return System.getenv("DATABRICKS_DOGFOOD_HTTP_PATH"); + } + + private String getDatabricksDogfoodHost() { + return System.getenv("DATABRICKS_DOGFOOD_HOST"); + } + + private String getDatabricksUser() { + return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token"); + } + + private String getDatabricksDogfoodToken() { + return System.getenv("DATABRICKS_DOGFOOD_TOKEN"); + } +} diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml new file mode 100644 index 0000000000..16e2624227 --- /dev/null +++ b/test-assembly-uber/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + + com.databricks + databricks-jdbc-parent + 3.1.0-arrow-patched-SNAPSHOT + + + com.databricks + test-databricks-jdbc-uber + jar + Test Uber + + JDBC databricks driver. + + + + + com.databricks + databricks-jdbc-uber + 3.1.0-arrow-patched-SNAPSHOT + + + org.junit.jupiter + junit-jupiter + ${junit.jupiter.version} + test + + + \ No newline at end of file diff --git a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java new file mode 100644 index 0000000000..c6134a294b --- /dev/null +++ b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java @@ -0,0 +1,87 @@ +package com.databricks.jdbc; + +import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator; +import com.databricks.jdbc.common.DatabricksJdbcUrlParams; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Map; +import java.util.Optional; +import java.util.Properties; +import org.junit.jupiter.api.Test; + +/** Test artifacts are packaged properly. */ +public class TestUberPackaging { + @Test + public void testThinPackaging() { + // Test that the "arrow" package is relocated. + com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator = + ArrowBufferAllocator.getBufferAllocator(); + System.out.println(bufferAllocator.toString()); + + // TODO - add more of these classes to test. + } + + @Test + public void executeLargeQuery() throws SQLException { + try (Connection connection = + connect( + Map.of( + DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1", + DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"))) { + try (Statement statement = connection.createStatement()) { + final int limit = 1_000_000; + final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; + ResultSet result = statement.executeQuery(sql); + int totalRows = 0; + while (result.next()) { + if (totalRows % 100_000 == 0) { + System.out.println("Processed " + totalRows + " rows"); + } + totalRows++; + } + + System.out.println(totalRows + " rows processed"); + } + } + } + + private Connection connect(Map urlParams) throws SQLException { + Properties props = new Properties(); + props.setProperty("user", getDatabricksUser()); + props.setProperty("password", getDatabricksDogfoodToken()); + for (Map.Entry entry : urlParams.entrySet()) { + props.setProperty(entry.getKey(), entry.getValue().toString()); + } + + String url = getDogfoodJDBCUrl(); + + return new com.databricks.client.jdbc.Driver().connect(url, props); + } + + private String getDogfoodJDBCUrl() { + String template = + "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; + String host = getDatabricksDogfoodHost(); + String httpPath = getDatabricksDogfoodHTTPPath(); + + return String.format(template, host, httpPath); + } + + private String getDatabricksDogfoodHTTPPath() { + return System.getenv("DATABRICKS_DOGFOOD_HTTP_PATH"); + } + + private String getDatabricksDogfoodHost() { + return System.getenv("DATABRICKS_DOGFOOD_HOST"); + } + + private String getDatabricksUser() { + return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token"); + } + + private String getDatabricksDogfoodToken() { + return System.getenv("DATABRICKS_DOGFOOD_TOKEN"); + } +} From b5829f4a670a019b1ed0d388c74a2038502f0266 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:29:12 +0530 Subject: [PATCH 02/16] PECOBLR-1121 Tests for dependency shading. Tests to verify that all dependencies are shaded as expected. --- assembly-uber/pom.xml | 2 +- test-assembly-thin/pom.xml | 4 +- .../databricks/jdbc/TestThinPackaging.java | 132 +++++++++++++++-- test-assembly-uber/pom.xml | 4 +- .../databricks/jdbc/TestUberPackaging.java | 136 ++++++++++++++++-- 5 files changed, 252 insertions(+), 26 deletions(-) diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index f25e445b17..c288cfe1e9 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -11,7 +11,7 @@ com.databricks - databricks-jdbc + databricks-jdbc-uber jar Uber diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml index f15d3efb8c..d414e034ec 100644 --- a/test-assembly-thin/pom.xml +++ b/test-assembly-thin/pom.xml @@ -14,9 +14,7 @@ test-databricks-jdbc-thin jar Test thin - - JDBC databricks driver. - + Test JDBC databricks driver thin jar. diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java index 104bc42fd7..23d372bb71 100644 --- a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java +++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java @@ -2,34 +2,146 @@ import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator; import com.databricks.jdbc.common.DatabricksJdbcUrlParams; +import com.databricks.sdk.core.DatabricksConfig; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.collect.ImmutableList; +import com.google.flatbuffers.FlatBufferBuilder; +import com.google.gson.Gson; +import com.google.protobuf.ByteString; +import com.nimbusds.jose.JWSAlgorithm; +import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig; +import io.grpc.Context; +import io.netty.buffer.ByteBufAllocator; +import io.vavr.collection.List; +import java.io.ByteArrayInputStream; +import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.Properties; +import java.util.logging.Logger; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.core5.http.HttpStatus; +import org.apache.thrift.TException; +import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.json.JSONObject; import org.junit.jupiter.api.Test; +import org.locationtech.jts.geom.GeometryFactory; /** Test artifacts are packaged properly. */ public class TestThinPackaging { + /** Logger instance. */ + private static final Logger logger = Logger.getLogger(TestThinPackaging.class.getName()); + + /** Test packages are shaded as expected. */ @Test public void testThinPackaging() { - // Test that the "arrow" package is relocated. + // Test that Arrow packages is relocated. com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator = ArrowBufferAllocator.getBufferAllocator(); - System.out.println(bufferAllocator.toString()); + logger.info("Shaded buffer allocator " + bufferAllocator); + + // Test that jackson packages are not relocated. + ObjectMapper jacksonMapper = new ObjectMapper(); + logger.info("Jackson ObjectMapper: " + jacksonMapper); + + // Test that guava is not relocated. + ImmutableList guavaList = ImmutableList.of("test"); + logger.info("Guava ImmutableList: " + guavaList); + + // Test that protobuf is not relocated. + ByteString protoByteString = ByteString.copyFromUtf8("test"); + logger.info("Protobuf ByteString: " + protoByteString); + + // Test that commons-lang3 is not relocated. + String commonsResult = StringUtils.upperCase("test"); + logger.info("Commons-Lang3 result: " + commonsResult); + + // Test that commons-codec is not relocated. + byte[] commonsCodec = Base64.encodeBase64("test".getBytes()); + logger.info("Commons-Codec Base64: " + new String(commonsCodec)); + + // Test that commons-io is not relocated. + try { + String commonsIo = IOUtils.toString(new ByteArrayInputStream("test".getBytes()), "UTF-8"); + logger.info("Commons-IO result: " + commonsIo); + } catch (IOException e) { + throw new RuntimeException("Failed to test Commons-IO", e); + } + + // Test that httpclient5 is not relocated. + HttpClientBuilder httpClientBuilder = HttpClients.custom(); + logger.info("HttpClient5 builder: " + httpClientBuilder); + + // Test that httpcore5 is not relocated. + int httpStatus = HttpStatus.SC_OK; + logger.info("HttpCore5 status: " + httpStatus); + + // Test that thrift is not relocated. + TException thriftException = new TException("test"); + logger.info("Thrift TException: " + thriftException.getMessage()); - // TODO - add more of these classes to test. + // Test that gson is not relocated. + Gson gson = new Gson(); + logger.info("Gson: " + gson); + + // Test that flatbuffers is not relocated. + FlatBufferBuilder flatBuilder = new FlatBufferBuilder(); + logger.info("FlatBuffers: " + flatBuilder); + + // Test that netty is not relocated. + ByteBufAllocator nettyAllocator = ByteBufAllocator.DEFAULT; + logger.info("Netty ByteBufAllocator: " + nettyAllocator); + + // Test that grpc is not relocated. + Context grpcContext = Context.current(); + logger.info("gRPC Context: " + grpcContext); + + // Test that bouncycastle is not relocated. + BouncyCastleProvider bcProvider = new BouncyCastleProvider(); + logger.info("BouncyCastle Provider: " + bcProvider.getName()); + + // Test that resilience4j is not relocated. + CircuitBreakerConfig cbConfig = CircuitBreakerConfig.ofDefaults(); + logger.info("Resilience4j CircuitBreakerConfig: " + cbConfig); + + // Test that vavr is not relocated. + List vavrList = List.of("test"); + logger.info("Vavr List: " + vavrList); + + // Test that JTS is not relocated. + GeometryFactory jtsFactory = new GeometryFactory(); + logger.info("JTS GeometryFactory: " + jtsFactory); + + // Test that Databricks SDK is not relocated. + Class sdkClass = DatabricksConfig.class; + logger.info("Databricks SDK class: " + sdkClass.getName()); + + // Test that JSON is not relocated. + JSONObject jsonObject = new JSONObject().put("key", "value"); + logger.info("JSON object: " + jsonObject); + + // Test that Nimbus JOSE JWT is not relocated. + JWSAlgorithm jwsAlgorithm = JWSAlgorithm.HS256; + logger.info("Nimbus JWSAlgorithm: " + jwsAlgorithm); } + /** Test large query execution with Arrow result format works. */ @Test public void executeLargeQuery() throws SQLException { - try (Connection connection = - connect( - Map.of( - DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1", - DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"))) { + Map params = new HashMap<>(); + params.put(DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1"); + params.put(DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"); + + try (Connection connection = connect(params)) { try (Statement statement = connection.createStatement()) { final int limit = 1_000_000; final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; @@ -37,12 +149,12 @@ public void executeLargeQuery() throws SQLException { int totalRows = 0; while (result.next()) { if (totalRows % 100_000 == 0) { - System.out.println("Processed " + totalRows + " rows"); + logger.info("Processed " + totalRows + " rows"); } totalRows++; } - System.out.println(totalRows + " rows processed"); + logger.info("Total " + totalRows + " rows processed"); } } } diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml index 16e2624227..877fed2bc9 100644 --- a/test-assembly-uber/pom.xml +++ b/test-assembly-uber/pom.xml @@ -14,9 +14,7 @@ test-databricks-jdbc-uber jar Test Uber - - JDBC databricks driver. - + Test JDBC databricks driver uber jar. diff --git a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java index c6134a294b..abcb2c86d6 100644 --- a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java +++ b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java @@ -1,35 +1,153 @@ package com.databricks.jdbc; +import com.databricks.internal.apache.commons.codec.binary.Base64; +import com.databricks.internal.apache.commons.io.IOUtils; +import com.databricks.internal.apache.commons.lang3.StringUtils; +import com.databricks.internal.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import com.databricks.internal.apache.hc.client5.http.impl.classic.HttpClients; +import com.databricks.internal.apache.hc.core5.http.HttpStatus; +import com.databricks.internal.apache.thrift.TException; +import com.databricks.internal.bouncycastle.jce.provider.BouncyCastleProvider; +import com.databricks.internal.fasterxml.jackson.databind.ObjectMapper; +import com.databricks.internal.google.common.collect.ImmutableList; +import com.databricks.internal.google.flatbuffers.FlatBufferBuilder; +import com.databricks.internal.google.gson.Gson; +import com.databricks.internal.google.protobuf.ByteString; +import com.databricks.internal.io.github.resilience4j.circuitbreaker.CircuitBreakerConfig; +import com.databricks.internal.io.grpc.Context; +import com.databricks.internal.io.netty.buffer.ByteBufAllocator; +import com.databricks.internal.io.vavr.collection.List; +import com.databricks.internal.json.JSONObject; +import com.databricks.internal.jts.geom.GeometryFactory; +import com.databricks.internal.nimbusds.jose.JWSAlgorithm; +import com.databricks.internal.sdk.core.DatabricksConfig; import com.databricks.jdbc.api.impl.arrow.ArrowBufferAllocator; import com.databricks.jdbc.common.DatabricksJdbcUrlParams; +import java.io.ByteArrayInputStream; +import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.Properties; +import java.util.logging.Logger; import org.junit.jupiter.api.Test; /** Test artifacts are packaged properly. */ public class TestUberPackaging { + /** Logger instance. */ + private static final java.util.logging.Logger logger = + Logger.getLogger(TestUberPackaging.class.getName()); + + /** Test packages are shaded as expected. */ @Test public void testThinPackaging() { // Test that the "arrow" package is relocated. com.databricks.internal.apache.arrow.memory.BufferAllocator bufferAllocator = ArrowBufferAllocator.getBufferAllocator(); - System.out.println(bufferAllocator.toString()); + logger.info("Shaded buffer allocator " + bufferAllocator); + + // Test that jackson packages are relocated. + ObjectMapper jacksonMapper = new ObjectMapper(); + logger.info("Shaded Jackson ObjectMapper: " + jacksonMapper); + + // Test that guava is relocated. + ImmutableList guavaList = ImmutableList.of("test"); + logger.info("Shaded Guava ImmutableList: " + guavaList); + + // Test that protobuf is relocated. + ByteString protoByteString = ByteString.copyFromUtf8("test"); + logger.info("Shaded Protobuf ByteString: " + protoByteString); + + // Test that commons-lang3 is relocated. + String commonsResult = StringUtils.upperCase("test"); + logger.info("Shaded Commons-Lang3 result: " + commonsResult); + + // Test that commons-codec is relocated (org.apache.commons.codec -> + // com.databricks.internal.apache.commons.codec). + byte[] commonsCodec = Base64.encodeBase64("test".getBytes()); + logger.info("Shaded Commons-Codec Base64: " + new String(commonsCodec)); + + // Test that commons-io is relocated. + try { + String commonsIo = IOUtils.toString(new ByteArrayInputStream("test".getBytes()), "UTF-8"); + logger.info("Shaded Commons-IO result: " + commonsIo); + } catch (IOException e) { + throw new RuntimeException("Failed to test Commons-IO shading", e); + } + + // Test that httpclient5 is relocated (org.apache.hc.client5 -> + // com.databricks.internal.apache.hc.client5). + HttpClientBuilder httpClientBuilder = HttpClients.custom(); + logger.info("Shaded HttpClient5 builder: " + httpClientBuilder); + + // Test that httpcore5 is relocated (org.apache.hc.core5 -> + // com.databricks.internal.apache.hc.core5). + int httpStatus = HttpStatus.SC_OK; + logger.info("Shaded HttpCore5 status: " + httpStatus); + + // Test that thrift is relocated. + TException thriftException = new TException("test"); + logger.info("Shaded Thrift TException: " + thriftException.getMessage()); - // TODO - add more of these classes to test. + // Test that gson is relocated. + Gson gson = new Gson(); + logger.info("Shaded Gson: " + gson); + + // Test that flatbuffers is relocated. + FlatBufferBuilder flatBuilder = new FlatBufferBuilder(); + logger.info("Shaded FlatBuffers: " + flatBuilder); + + // Test that netty is relocated (io.netty -> com.databricks.internal.io.netty). + ByteBufAllocator nettyAllocator = ByteBufAllocator.DEFAULT; + logger.info("Shaded Netty ByteBufAllocator: " + nettyAllocator); + + // Test that grpc is relocated (io.grpc -> com.databricks.internal.io.grpc). + Context grpcContext = Context.current(); + logger.info("Shaded gRPC Context: " + grpcContext); + + // Test that bouncycastle is relocated (org.bouncycastle -> + // com.databricks.internal.bouncycastle). + BouncyCastleProvider bcProvider = new BouncyCastleProvider(); + logger.info("Shaded BouncyCastle Provider: " + bcProvider.getName()); + + // Test that resilience4j is relocated (io.github.resilience4j -> + // com.databricks.internal.io.github.resilience4j). + CircuitBreakerConfig cbConfig = CircuitBreakerConfig.ofDefaults(); + logger.info("Shaded Resilience4j CircuitBreakerConfig: " + cbConfig); + + // Test that vavr is relocated (io.vavr -> com.databricks.internal.io.vavr). + List vavrList = List.of("test"); + logger.info("Shaded Vavr List: " + vavrList); + + // Test that JTS is relocated (org.locationtech.jts -> com.databricks.internal.jts). + GeometryFactory jtsFactory = new GeometryFactory(); + logger.info("Shaded JTS GeometryFactory: " + jtsFactory); + + // Test that Databricks SDK is relocated (com.databricks.sdk -> com.databricks.internal.sdk). + Class sdkClass = DatabricksConfig.class; + logger.info("Shaded Databricks SDK class: " + sdkClass.getName()); + + // Test that JSON is relocated (org.json -> com.databricks.internal.json). + JSONObject jsonObject = new JSONObject().put("key", "value"); + logger.info("Shaded JSON object: " + jsonObject); + + // Test that Nimbus JOSE JWT is relocated (com.nimbusds -> com.databricks.internal.nimbusds). + JWSAlgorithm jwsAlgorithm = JWSAlgorithm.HS256; + logger.info("Shaded Nimbus JWSAlgorithm: " + jwsAlgorithm); } + /** Test large query execution with Arrow result format works. */ @Test public void executeLargeQuery() throws SQLException { - try (Connection connection = - connect( - Map.of( - DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1", - DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"))) { + Map params = new HashMap<>(); + params.put(DatabricksJdbcUrlParams.ENABLE_ARROW.getParamName(), "1"); + params.put(DatabricksJdbcUrlParams.USE_THRIFT_CLIENT.getParamName(), "0"); + + try (Connection connection = connect(params)) { try (Statement statement = connection.createStatement()) { final int limit = 1_000_000; final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; @@ -37,12 +155,12 @@ public void executeLargeQuery() throws SQLException { int totalRows = 0; while (result.next()) { if (totalRows % 100_000 == 0) { - System.out.println("Processed " + totalRows + " rows"); + logger.info("Processed " + totalRows + " rows"); } totalRows++; } - System.out.println(totalRows + " rows processed"); + logger.info("Total " + totalRows + " rows processed"); } } } From 06ef16827fba342d0f8ad21bdcb34a3338f400e8 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 2 Jan 2026 11:57:22 +0530 Subject: [PATCH 03/16] PECOBLR-1121 Rename uber artifact to databricks-jdbc --- assembly-uber/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index c288cfe1e9..33fe5c07ac 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -11,7 +11,7 @@ com.databricks - databricks-jdbc-uber + databricks-jdbc jar Uber @@ -151,4 +151,4 @@ - \ No newline at end of file + From b7390adb03d8c094614040a7a9891e0633a5462d Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 2 Jan 2026 15:14:59 +0530 Subject: [PATCH 04/16] PECOBLR-1121 Clean up pom before publishing. Remove build related dependencies from the pom before publishing. --- assembly-thin/pom.xml | 64 +++++++++++++++++- assembly-uber/pom.xml | 148 +++++++++++++++++++++++++++++++++++------- 2 files changed, 185 insertions(+), 27 deletions(-) diff --git a/assembly-thin/pom.xml b/assembly-thin/pom.xml index a6ed38bef2..a9dcad9dc8 100644 --- a/assembly-thin/pom.xml +++ b/assembly-thin/pom.xml @@ -14,7 +14,36 @@ databricks-jdbc-thin 3.1.0-arrow-patched-SNAPSHOT jar - Thin + Databricks JDBC jar. + https://github.com/databricks/databricks-jdbc + + + Apache License, Version 2.0 + + https://github.com/databricks/databricks-jdbc/blob/main/LICENSE + + + + + + Databricks JDBC Team + eng-oss-sql-driver@databricks.com + Databricks + https://www.databricks.com + + + + scm:git:https://github.com/databricks/databricks-jdbc.git + + + scm:git:https://github.com/databricks/databricks-jdbc.git + + https://github.com/databricks/databricks-jdbc + + + GitHub Issues + https://github.com/databricks/databricks-jdbc/issues + @@ -26,6 +55,35 @@ + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + oss + + expand + remove + + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + org.apache.maven.plugins maven-shade-plugin @@ -53,7 +111,9 @@ org.apache.arrow:* - com.databricks:databricks-jdbc-core + + com.databricks:databricks-jdbc-core + diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index 33fe5c07ac..1bec519672 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -13,10 +13,40 @@ com.databricks databricks-jdbc jar - Uber + Databricks JDBC uber jar - JDBC databricks driver Uber jar. + Databricks JDBC uber jar. + https://github.com/databricks/databricks-jdbc + + + + Apache License, Version 2.0 + + https://github.com/databricks/databricks-jdbc/blob/main/LICENSE + + + + + + Databricks JDBC Team + eng-oss-sql-driver@databricks.com + Databricks + https://www.databricks.com + + + + scm:git:https://github.com/databricks/databricks-jdbc.git + + + scm:git:https://github.com/databricks/databricks-jdbc.git + + https://github.com/databricks/databricks-jdbc + + + GitHub Issues + https://github.com/databricks/databricks-jdbc/issues + @@ -28,6 +58,35 @@ + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + oss + + expand + remove + + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + org.apache.maven.plugins maven-shade-plugin @@ -35,7 +94,9 @@ org.apache.logging.log4j - log4j-transform-maven-shade-plugin-extensions + + log4j-transform-maven-shade-plugin-extensions + 0.1.0 @@ -48,67 +109,95 @@ - false + false + codegen - com.databricks.internal.codegen + + com.databricks.internal.codegen + com.databricks.sdk - com.databricks.internal.sdk + com.databricks.internal.sdk + com.fasterxml - com.databricks.internal.fasterxml + + com.databricks.internal.fasterxml + com.google - com.databricks.internal.google + + com.databricks.internal.google + com.nimbusds - com.databricks.internal.nimbusds + + com.databricks.internal.nimbusds + io - com.databricks.internal.io + com.databricks.internal.io + net.jpountz - com.databricks.internal.jpountz + + com.databricks.internal.jpountz + org.apache - com.databricks.internal.apache + + com.databricks.internal.apache + org.bouncycastle - com.databricks.internal.bouncycastle + + com.databricks.internal.bouncycastle + org.checkerframework - com.databricks.internal.checkerframework + + com.databricks.internal.checkerframework + org.ini4j - com.databricks.internal.ini4j + + com.databricks.internal.ini4j + org.json - com.databricks.internal.json + + com.databricks.internal.json + org.locationtech.jts - com.databricks.internal.jts + com.databricks.internal.jts + org.osgi - com.databricks.internal.osgi + + com.databricks.internal.osgi + org.slf4j - com.databricks.internal.slf4j + + com.databricks.internal.slf4j + @@ -134,15 +223,24 @@ - - - com.databricks.client.jdbc.Driver + + + + com.databricks.client.jdbc.Driver + - ${project.artifactId} - ${project.version} + + ${project.artifactId} + + + ${project.version} + - + From 269c517c8fa5038fe5c967c1acde527e8443ef4d Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 5 Jan 2026 10:43:33 +0530 Subject: [PATCH 05/16] PECOBLR-1121 Fix dependency of tests. --- test-assembly-thin/pom.xml | 1 - test-assembly-uber/pom.xml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml index d414e034ec..4c566b9601 100644 --- a/test-assembly-thin/pom.xml +++ b/test-assembly-thin/pom.xml @@ -29,5 +29,4 @@ test - \ No newline at end of file diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml index 877fed2bc9..f3dcf3ef74 100644 --- a/test-assembly-uber/pom.xml +++ b/test-assembly-uber/pom.xml @@ -19,7 +19,7 @@ com.databricks - databricks-jdbc-uber + databricks-jdbc 3.1.0-arrow-patched-SNAPSHOT From 08b97b2a2b8bb81e1fd6f7a0da98f4c73a684a2f Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 16 Jan 2026 13:09:07 +0530 Subject: [PATCH 06/16] PECOBLR-1121 Update query to not return data. Update test assembly of uber and thin jars to not return any data. --- .../src/test/java/com/databricks/jdbc/TestThinPackaging.java | 3 +-- .../src/test/java/com/databricks/jdbc/TestUberPackaging.java | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java index 23d372bb71..02db4d6daa 100644 --- a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java +++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java @@ -143,8 +143,7 @@ public void executeLargeQuery() throws SQLException { try (Connection connection = connect(params)) { try (Statement statement = connection.createStatement()) { - final int limit = 1_000_000; - final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; + final String sql = "SELECT * FROM samples.tpch.lineitem where 1 = 0"; ResultSet result = statement.executeQuery(sql); int totalRows = 0; while (result.next()) { diff --git a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java index abcb2c86d6..a7406a1b9d 100644 --- a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java +++ b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java @@ -149,8 +149,7 @@ public void executeLargeQuery() throws SQLException { try (Connection connection = connect(params)) { try (Statement statement = connection.createStatement()) { - final int limit = 1_000_000; - final String sql = "SELECT * FROM samples.tpch.lineitem LIMIT " + limit; + final String sql = "SELECT * FROM samples.tpch.lineitem where 1 = 0"; ResultSet result = statement.executeQuery(sql); int totalRows = 0; while (result.next()) { From 5aa81d57a760ec87feb042edb8ec4a5e2fe37a92 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 16 Jan 2026 13:14:10 +0530 Subject: [PATCH 07/16] PECOBLR-1121 Update credentails env names. --- .../databricks/jdbc/TestThinPackaging.java | 20 +++++++++---------- .../databricks/jdbc/TestUberPackaging.java | 18 ++++++++--------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java index 02db4d6daa..756990483b 100644 --- a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java +++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java @@ -161,7 +161,7 @@ public void executeLargeQuery() throws SQLException { private Connection connect(Map urlParams) throws SQLException { Properties props = new Properties(); props.setProperty("user", getDatabricksUser()); - props.setProperty("password", getDatabricksDogfoodToken()); + props.setProperty("password", getDatabricksToken()); for (Map.Entry entry : urlParams.entrySet()) { props.setProperty(entry.getKey(), entry.getValue().toString()); } @@ -173,26 +173,26 @@ private Connection connect(Map urlParams) throws SQLException { private String getDogfoodJDBCUrl() { String template = - "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; - String host = getDatabricksDogfoodHost(); - String httpPath = getDatabricksDogfoodHTTPPath(); + "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; + String host = getDatabricksHost(); + String httpPath = getDatabricksHttpPath(); return String.format(template, host, httpPath); } - private String getDatabricksDogfoodHTTPPath() { - return System.getenv("DATABRICKS_DOGFOOD_HTTP_PATH"); + private String getDatabricksHttpPath() { + return System.getenv("DATABRICKS_HTTP_PATH"); } - private String getDatabricksDogfoodHost() { - return System.getenv("DATABRICKS_DOGFOOD_HOST"); + private String getDatabricksHost() { + return System.getenv("DATABRICKS_HOST"); } private String getDatabricksUser() { return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token"); } - private String getDatabricksDogfoodToken() { - return System.getenv("DATABRICKS_DOGFOOD_TOKEN"); + private String getDatabricksToken() { + return System.getenv("DATABRICKS_TOKEN"); } } diff --git a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java index a7406a1b9d..b8254cec38 100644 --- a/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java +++ b/test-assembly-uber/src/test/java/com/databricks/jdbc/TestUberPackaging.java @@ -167,7 +167,7 @@ public void executeLargeQuery() throws SQLException { private Connection connect(Map urlParams) throws SQLException { Properties props = new Properties(); props.setProperty("user", getDatabricksUser()); - props.setProperty("password", getDatabricksDogfoodToken()); + props.setProperty("password", getDatabricksToken()); for (Map.Entry entry : urlParams.entrySet()) { props.setProperty(entry.getKey(), entry.getValue().toString()); } @@ -180,25 +180,25 @@ private Connection connect(Map urlParams) throws SQLException { private String getDogfoodJDBCUrl() { String template = "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; - String host = getDatabricksDogfoodHost(); - String httpPath = getDatabricksDogfoodHTTPPath(); + String host = getDatabricksHost(); + String httpPath = getDatabricksHttpPath(); return String.format(template, host, httpPath); } - private String getDatabricksDogfoodHTTPPath() { - return System.getenv("DATABRICKS_DOGFOOD_HTTP_PATH"); + private String getDatabricksHttpPath() { + return System.getenv("DATABRICKS_HTTP_PATH"); } - private String getDatabricksDogfoodHost() { - return System.getenv("DATABRICKS_DOGFOOD_HOST"); + private String getDatabricksHost() { + return System.getenv("DATABRICKS_HOST"); } private String getDatabricksUser() { return Optional.ofNullable(System.getenv("DATABRICKS_USER")).orElse("token"); } - private String getDatabricksDogfoodToken() { - return System.getenv("DATABRICKS_DOGFOOD_TOKEN"); + private String getDatabricksToken() { + return System.getenv("DATABRICKS_TOKEN"); } } From 0f0a74eb469237538e20c88a9655a8c42184efb9 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:35:02 +0530 Subject: [PATCH 08/16] PECOBLR-1121 Move profile from parent -> jdbc-core. --- jdbc-core/pom.xml | 102 +++++++++++++++++++++++- pom.xml | 194 ---------------------------------------------- 2 files changed, 101 insertions(+), 195 deletions(-) diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 85a356d525..253510dd1b 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -52,6 +52,7 @@ 3.18.0 11 11 + 3.14.1 5.2.0 2.18.3 2.22.1 @@ -363,6 +364,7 @@ @{argLine} + -Xmx4g --add-opens=java.base/java.nio=ALL-UNNAMED -Dnet.bytebuddy.experimental=true @@ -394,6 +396,7 @@ org.apache.maven.plugins maven-compiler-plugin + ${maven-compiler-plugin.version} @@ -494,5 +497,102 @@ - + + + low-memory + + + + org.apache.maven.plugins + maven-surefire-plugin + + + @{argLine} -Xmx100m -Darrow.memory.debug.allocator=true + + + + + + + + + + jdk17-NioNotOpen + + + + org.apache.maven.plugins + maven-toolchains-plugin + ${maven-toolchains-plugin.version} + + + + toolchain + + + + + + + 17 + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + @{argLine} -Darrow.memory.debug.allocator=true + + + + + + + + + + jdk21-NioNotOpen + + + + org.apache.maven.plugins + maven-toolchains-plugin + ${maven-toolchains-plugin.version} + + + + toolchain + + + + + + + 21 + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + + @{argLine} -Darrow.memory.debug.allocator=true + + + + + + + + + diff --git a/pom.xml b/pom.xml index 98ec94c564..89a692cb44 100644 --- a/pom.xml +++ b/pom.xml @@ -185,199 +185,5 @@ - - - jdk11 - - - - org.apache.maven.plugins - maven-toolchains-plugin - ${maven-toolchains-plugin.version} - - - - toolchain - - - - - - - 11 - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - - - - jdk17 - - - - org.apache.maven.plugins - maven-toolchains-plugin - ${maven-toolchains-plugin.version} - - - - toolchain - - - - - - - 17 - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - -Darrow.memory.debug.allocator=true - - - - - - - - jdk17-nio-open - - - - org.apache.maven.plugins - maven-toolchains-plugin - ${maven-toolchains-plugin.version} - - - - toolchain - - - - - - - 17 - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - --add-opens=java.base/java.nio=ALL-UNNAMED -Darrow.memory.debug.allocator=true - - - - - - - - - jdk21 - - - - org.apache.maven.plugins - maven-toolchains-plugin - ${maven-toolchains-plugin.version} - - - - toolchain - - - - - - - 21 - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - -Darrow.memory.debug.allocator=true - - - - - - - - jdk21-nio-open - - - - org.apache.maven.plugins - maven-toolchains-plugin - ${maven-toolchains-plugin.version} - - - - toolchain - - - - - - - 21 - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - - - - - - --add-opens=java.base/java.nio=ALL-UNNAMED -Darrow.memory.debug.allocator=true - - - - - - \ No newline at end of file From 5b5a0385f741ec18e07097159e1b654a404a5d0a Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:16:26 +0530 Subject: [PATCH 09/16] PECOBLR-1121 Move spotless plugin to project root. --- jdbc-core/pom.xml | 21 --------------------- pom.xml | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 253510dd1b..0f96a2a6aa 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -441,27 +441,6 @@ - - com.diffplug.spotless - spotless-maven-plugin - 2.39.0 - - - format - - apply - - compile - - - - - - 1.18.1 - - - - org.jacoco jacoco-maven-plugin diff --git a/pom.xml b/pom.xml index 89a692cb44..c0bee9fbf3 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,40 @@ 5.9.2 + + + + com.diffplug.spotless + spotless-maven-plugin + 2.39.0 + + + format + + apply + + compile + + + + + + 1.18.1 + + + + + **/MemoryUtil.java + **/ArrowBuf.java + **/DecimalUtility.java + + + + + + + From 2289bb83f296dfdf3c5aa056d508869b2f591c8c Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:17:06 +0530 Subject: [PATCH 10/16] PECOBLR-1121 Increase test heap size. --- jdbc-core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 0f96a2a6aa..48127774c5 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -364,7 +364,7 @@ @{argLine} - -Xmx4g + -Xmx5g --add-opens=java.base/java.nio=ALL-UNNAMED -Dnet.bytebuddy.experimental=true From 44925ff098426fb6288e5f98214052851025bcb8 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:18:02 +0530 Subject: [PATCH 11/16] PECOBLR-1121 Reformat code. --- .../jdbc/api/impl/arrow/ArrowBufferAllocator.java | 12 ++++++------ .../memory/DatabricksArrowPatchMemoryUsageTest.java | 2 +- .../java/com/databricks/jdbc/TestThinPackaging.java | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/databricks/jdbc/api/impl/arrow/ArrowBufferAllocator.java b/src/main/java/com/databricks/jdbc/api/impl/arrow/ArrowBufferAllocator.java index ecddc289a1..7ef42bcc47 100644 --- a/src/main/java/com/databricks/jdbc/api/impl/arrow/ArrowBufferAllocator.java +++ b/src/main/java/com/databricks/jdbc/api/impl/arrow/ArrowBufferAllocator.java @@ -26,13 +26,13 @@ public class ArrowBufferAllocator { try { rootAllocator = new RootAllocator(); } catch (Throwable t) { - String message = t.getMessage(); - if (message == null) { - message = t.getCause() != null ? t.getCause().getMessage() : ""; - } + String message = t.getMessage(); + if (message == null) { + message = t.getCause() != null ? t.getCause().getMessage() : ""; + } LOGGER.info( - "Failed to create RootAllocator, will use DatabricksBufferAllocator as fallback: " + - message); + "Failed to create RootAllocator, will use DatabricksBufferAllocator as fallback: " + + message); } canCreateRootAllocator = rootAllocator != null; diff --git a/src/test/java/org/apache/arrow/memory/DatabricksArrowPatchMemoryUsageTest.java b/src/test/java/org/apache/arrow/memory/DatabricksArrowPatchMemoryUsageTest.java index 6fc77ddb0a..c1a6a91e1a 100644 --- a/src/test/java/org/apache/arrow/memory/DatabricksArrowPatchMemoryUsageTest.java +++ b/src/test/java/org/apache/arrow/memory/DatabricksArrowPatchMemoryUsageTest.java @@ -22,7 +22,7 @@ * Test the patched allocator does not put the JVM into GC pressure and cause it to OOM * (OutOfMemoryError). * - * TODO - add a mvn profile to run this test with low max heap size -Xmx100m. + *

TODO - add a mvn profile to run this test with low max heap size -Xmx100m. */ public class DatabricksArrowPatchMemoryUsageTest { /** Path to an arrow chunk. */ diff --git a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java index 756990483b..b74a5bd792 100644 --- a/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java +++ b/test-assembly-thin/src/test/java/com/databricks/jdbc/TestThinPackaging.java @@ -173,7 +173,7 @@ private Connection connect(Map urlParams) throws SQLException { private String getDogfoodJDBCUrl() { String template = - "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; + "jdbc:databricks://%s/default;transportMode=http;ssl=1;AuthMech=3;httpPath=%s"; String host = getDatabricksHost(); String httpPath = getDatabricksHttpPath(); From 5d625d308d4df91dc2bcc346d422464fc8a86721 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Wed, 21 Jan 2026 09:44:37 +0530 Subject: [PATCH 12/16] PECOBLR-1121 Move properties and plugin to parent pom. Move all properties and plugin management to parent pom. --- jdbc-core/pom.xml | 47 +---------------------- pom.xml | 95 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 95 insertions(+), 47 deletions(-) diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 48127774c5..12003e957f 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -9,9 +9,7 @@ 3.1.0-arrow-patched-SNAPSHOT - com.databricks databricks-jdbc-core - 3.1.0-arrow-patched-SNAPSHOT jar Databricks JDBC Driver Databricks JDBC Driver. @@ -45,42 +43,7 @@ file://${project.build.directory}/local-repo - - UTF-8 - UTF-8 - 18.3.0 - 3.18.0 - 11 - 11 - 3.14.1 - 5.2.0 - 2.18.3 - 2.22.1 - 2.0.13 - 33.0.0-jre - 3.0.1 - 2.13.2 - 2.9.2 - 4.5.14 - 2.10.1 - 2.14.0 - 0.69.0 - 3.1.2 - 0.3 - 1.8.1 - 0.19.0 - 1.3.5 - dbsql - dummy-token - 3.5.4 - 10.0.2 - 1.79 - 5.3.1 - 4.2.6.Final - 1.71.0 - 1.7.0 - 1.37 - + @@ -330,7 +293,6 @@ org.apache.maven.plugins maven-jar-plugin - 3.3.0 @@ -351,7 +313,6 @@ org.apache.maven.plugins maven-surefire-plugin - ${maven-surefire-plugin.version} **/DatabricksDriverExamples.java @@ -377,7 +338,6 @@ org.codehaus.mojo exec-maven-plugin - 1.2.1 java @@ -396,7 +356,6 @@ org.apache.maven.plugins maven-compiler-plugin - ${maven-compiler-plugin.version} @@ -415,7 +374,6 @@ org.owasp dependency-check-maven - 12.1.6 HTML @@ -444,7 +402,6 @@ org.jacoco jacoco-maven-plugin - 0.8.11 @@ -502,7 +459,6 @@ org.apache.maven.plugins maven-toolchains-plugin - ${maven-toolchains-plugin.version} @@ -541,7 +497,6 @@ org.apache.maven.plugins maven-toolchains-plugin - ${maven-toolchains-plugin.version} diff --git a/pom.xml b/pom.xml index c0bee9fbf3..924a01017c 100644 --- a/pom.xml +++ b/pom.xml @@ -43,17 +43,110 @@ + + UTF-8 + UTF-8 + 11 + 11 + true + + 3.2.0 + 3.14.1 + 3.1.2 + 3.3.0 + 1.2.1 + 12.1.6 + 0.8.11 + 2.39.0 + + 3.1.0-arrow-patched-SNAPSHOT + 18.3.0 + 3.18.0 + 2.10.1 + 2.14.0 + 0.69.0 + 4.5.14 + 5.3.1 + 0.19.0 + 2.0.13 + 2.22.1 + 2.18.3 + 2.13.2 + 33.0.0-jre + 3.0.1 + 2.9.2 + 1.8.1 + 1.3.5 + 4.2.6.Final + 1.71.0 + 1.7.0 + 10.0.2 + 1.79 + 1.37 + + 5.9.2 + 5.2.0 + 3.5.4 + 0.3 + + + dbsql + dummy-token + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar-plugin.version} + + + org.codehaus.mojo + exec-maven-plugin + ${exec-maven-plugin.version} + + + org.owasp + dependency-check-maven + ${dependency-check-maven.version} + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + com.diffplug.spotless + spotless-maven-plugin + ${spotless-maven-plugin.version} + + + org.apache.maven.plugins + maven-toolchains-plugin + ${maven-toolchains-plugin.version} + + + + com.diffplug.spotless spotless-maven-plugin - 2.39.0 format From 17dbf492fae127b3da59b8c7ec7e23f3b8a54d01 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Thu, 22 Jan 2026 16:33:52 +0530 Subject: [PATCH 13/16] PECOBLR-1121 Fix pom for release. Fix release of uber and thin pom. Streamline the process - now it is similar setup for uber and thin pom. --- assembly-thin/pom.xml | 105 +++++++++++++++++- assembly-uber/pom.xml | 108 ++++++++++++++++++- pom.xml | 30 ++---- test-assembly-thin/pom.xml | 1 - test-assembly-uber/pom.xml | 1 - thin_public_pom.xml | 214 ------------------------------------- uber-minimal-pom.xml | 36 ------- 7 files changed, 217 insertions(+), 278 deletions(-) delete mode 100644 thin_public_pom.xml delete mode 100644 uber-minimal-pom.xml diff --git a/assembly-thin/pom.xml b/assembly-thin/pom.xml index a9dcad9dc8..f22f4b012f 100644 --- a/assembly-thin/pom.xml +++ b/assembly-thin/pom.xml @@ -10,12 +10,14 @@ 3.1.0-arrow-patched-SNAPSHOT - com.databricks databricks-jdbc-thin - 3.1.0-arrow-patched-SNAPSHOT jar - Databricks JDBC jar. + Databricks JDBC thin jar + + Databricks JDBC thin jar. + https://github.com/databricks/databricks-jdbc + Apache License, Version 2.0 @@ -53,6 +55,10 @@ + + false + + @@ -96,6 +102,8 @@ shade + true + true true @@ -159,4 +167,95 @@ + + + + release + + + + + org.sonatype.central + central-publishing-maven-plugin + + false + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + none + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + none + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-javadoc + package + + copy + + + + + com.databricks + databricks-jdbc-core + ${project.version} + javadoc + jar + ${project.artifactId}-${project.version}-javadoc.jar + + + ${project.build.directory} + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-javadoc + package + + attach-artifact + + + + + ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar + jar + javadoc + + + + + + + + + + + \ No newline at end of file diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index 1bec519672..35cc8d6165 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -10,7 +10,6 @@ 3.1.0-arrow-patched-SNAPSHOT - com.databricks databricks-jdbc jar Databricks JDBC uber jar @@ -56,8 +55,76 @@ + + false + + + + + org.apache.maven.plugins + maven-dependency-plugin + 3.6.1 + + + copy-sources-javadoc + package + + copy + + + + + com.databricks + databricks-jdbc-core + ${project.version} + sources + jar + ${project.artifactId}-${project.version}-sources.jar + + + com.databricks + databricks-jdbc-core + ${project.version} + javadoc + jar + ${project.artifactId}-${project.version}-javadoc.jar + + + ${project.build.directory} + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-sources-javadoc + package + + attach-artifact + + + + + ${project.build.directory}/${project.artifactId}-${project.version}-sources.jar + jar + sources + + + ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar + jar + javadoc + + + + + + org.codehaus.mojo flatten-maven-plugin @@ -249,4 +316,43 @@ + + + release + + + + + org.sonatype.central + central-publishing-maven-plugin + + false + + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + none + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + none + + + + + + + + diff --git a/pom.xml b/pom.xml index 924a01017c..a1ff40e09b 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,7 @@ 12.1.6 0.8.11 2.39.0 + 3.6.1 3.1.0-arrow-patched-SNAPSHOT @@ -140,6 +141,11 @@ maven-toolchains-plugin ${maven-toolchains-plugin.version} + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper-maven-plugin.version} + @@ -225,28 +231,6 @@ release - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.1 - - - attach-uber-minimal-pom - - attach-artifact - - package - - - - ${project.basedir}/uber-minimal-pom.xml - pom - - - - - - org.apache.maven.plugins maven-source-plugin @@ -307,6 +291,8 @@ central true published + + true diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml index 4c566b9601..6cb810a24a 100644 --- a/test-assembly-thin/pom.xml +++ b/test-assembly-thin/pom.xml @@ -10,7 +10,6 @@ 3.1.0-arrow-patched-SNAPSHOT - com.databricks test-databricks-jdbc-thin jar Test thin diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml index f3dcf3ef74..702651d0d2 100644 --- a/test-assembly-uber/pom.xml +++ b/test-assembly-uber/pom.xml @@ -10,7 +10,6 @@ 3.1.0-arrow-patched-SNAPSHOT - com.databricks test-databricks-jdbc-uber jar Test Uber diff --git a/thin_public_pom.xml b/thin_public_pom.xml deleted file mode 100644 index cd8cf8206a..0000000000 --- a/thin_public_pom.xml +++ /dev/null @@ -1,214 +0,0 @@ - - - 4.0.0 - com.databricks - databricks-jdbc-thin - 3.0.7 - jar - Databricks JDBC Driver Thin - Databricks JDBC Driver Thin JAR - requires external dependencies. - https://github.com/databricks/databricks-jdbc - - - - Apache License, Version 2.0 - https://github.com/databricks/databricks-jdbc/blob/main/LICENSE - - - - - - Databricks JDBC Team - eng-oss-sql-driver@databricks.com - Databricks - https://www.databricks.com - - - - - scm:git:https://github.com/databricks/databricks-jdbc.git - scm:git:https://github.com/databricks/databricks-jdbc.git - https://github.com/databricks/databricks-jdbc - - - - GitHub Issues - https://github.com/databricks/databricks-jdbc/issues - - - - - - com.databricks - databricks-sdk-java - 0.69.0 - - - - - org.apache.commons - commons-lang3 - 3.18.0 - - - org.apache.commons - commons-configuration2 - 2.10.1 - - - commons-io - commons-io - 2.14.0 - - - - - org.apache.arrow - arrow-memory-core - 17.0.0 - - - org.apache.arrow - arrow-memory-unsafe - 17.0.0 - - - org.apache.arrow - arrow-vector - 17.0.0 - - - org.apache.arrow - arrow-memory-netty - 17.0.0 - - - - - org.apache.httpcomponents - httpclient - 4.5.14 - - - org.apache.httpcomponents.client5 - httpclient5 - 5.3.1 - - - org.apache.httpcomponents.core5 - httpcore5 - 5.3.1 - - - - - org.apache.thrift - libthrift - 0.19.0 - - - - - org.slf4j - slf4j-api - 2.0.13 - - - - - com.google.code.findbugs - annotations - 3.0.1 - - - com.google.guava - guava - 33.0.0-jre - - - - - com.nimbusds - nimbus-jose-jwt - 10.0.2 - - - org.bouncycastle - bcprov-jdk18on - 1.79 - - - org.bouncycastle - bcpkix-jdk18on - 1.79 - - - - - com.fasterxml.jackson.core - jackson-databind - 2.18.3 - - - com.fasterxml.jackson.core - jackson-annotations - 2.18.3 - - - com.fasterxml.jackson.core - jackson-core - 2.18.3 - - - com.google.code.gson - gson - 2.13.2 - - - - - at.yawk.lz4 - lz4-java - 1.10.1 - - - - - io.grpc - grpc-context - 1.71.0 - - - - - io.netty - netty-common - 4.2.6.Final - - - io.netty - netty-buffer - 4.2.6.Final - - - - - jakarta.annotation - jakarta.annotation-api - 1.3.5 - - - - - io.github.resilience4j - resilience4j-circuitbreaker - 1.7.0 - - - io.github.resilience4j - resilience4j-core - 1.7.0 - - - \ No newline at end of file diff --git a/uber-minimal-pom.xml b/uber-minimal-pom.xml deleted file mode 100644 index bfe65bb376..0000000000 --- a/uber-minimal-pom.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - 4.0.0 - com.databricks - databricks-jdbc - - 3.0.7 - jar - Databricks JDBC Driver - Databricks JDBC Driver. - https://github.com/databricks/databricks-jdbc - - - Apache License, Version 2.0 - https://github.com/databricks/databricks-jdbc/blob/main/LICENSE - - - - - Databricks JDBC Team - eng-oss-sql-driver@databricks.com - Databricks - https://www.databricks.com - - - - scm:git:https://github.com/databricks/databricks-jdbc.git - scm:git:https://github.com/databricks/databricks-jdbc.git - https://github.com/databricks/databricks-jdbc - - - GitHub Issues - https://github.com/databricks/databricks-jdbc/issues - - From 27ca62744293dffcdc5d10753f2dd780bdebd263 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:07:55 +0530 Subject: [PATCH 14/16] PECOBLR-1121 Fix pom comments. --- jdbc-core/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 775e0207bd..2d7822daf6 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -322,7 +322,7 @@ **/ProxyTest.java **/LoggingTest.java **/SSLTest.java - + **/ArrowBufferAllocatorNettyManagerTest.java **/ArrowBufferAllocatorUnsafeManagerTest.java **/ArrowBufferAllocatorUnknownManagerTest.java From 4f12bed4a5938e6b79105a62d96ded78c769a18e Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Fri, 23 Jan 2026 14:13:07 +0530 Subject: [PATCH 15/16] PECOBLR-1121 Move copy of java doc to release profile. --- assembly-uber/pom.xml | 127 +++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 64 deletions(-) diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index 35cc8d6165..9c440d9c79 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -61,70 +61,6 @@ - - - org.apache.maven.plugins - maven-dependency-plugin - 3.6.1 - - - copy-sources-javadoc - package - - copy - - - - - com.databricks - databricks-jdbc-core - ${project.version} - sources - jar - ${project.artifactId}-${project.version}-sources.jar - - - com.databricks - databricks-jdbc-core - ${project.version} - javadoc - jar - ${project.artifactId}-${project.version}-javadoc.jar - - - ${project.build.directory} - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - attach-sources-javadoc - package - - attach-artifact - - - - - ${project.build.directory}/${project.artifactId}-${project.version}-sources.jar - jar - sources - - - ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar - jar - javadoc - - - - - - org.codehaus.mojo flatten-maven-plugin @@ -350,6 +286,69 @@ + + + org.apache.maven.plugins + maven-dependency-plugin + + + copy-sources-javadoc + package + + copy + + + + + com.databricks + databricks-jdbc-core + ${project.version} + sources + jar + ${project.artifactId}-${project.version}-sources.jar + + + com.databricks + databricks-jdbc-core + ${project.version} + javadoc + jar + ${project.artifactId}-${project.version}-javadoc.jar + + + ${project.build.directory} + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + attach-sources-javadoc + package + + attach-artifact + + + + + ${project.build.directory}/${project.artifactId}-${project.version}-sources.jar + jar + sources + + + ${project.build.directory}/${project.artifactId}-${project.version}-javadoc.jar + jar + javadoc + + + + + + From cb7ce9cbc52f2275fd6cd23f14a51f56719cf1d4 Mon Sep 17 00:00:00 2001 From: tejassp-db <241722411+tejassp-db@users.noreply.github.com> Date: Mon, 2 Mar 2026 12:19:35 +0530 Subject: [PATCH 16/16] PECOBLR-1121 Bump up version. --- assembly-thin/pom.xml | 4 ++-- assembly-uber/pom.xml | 4 ++-- jdbc-core/pom.xml | 2 +- pom.xml | 4 ++-- test-assembly-thin/pom.xml | 4 ++-- test-assembly-uber/pom.xml | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/assembly-thin/pom.xml b/assembly-thin/pom.xml index 61abc0c8c2..83313186bd 100644 --- a/assembly-thin/pom.xml +++ b/assembly-thin/pom.xml @@ -7,7 +7,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT databricks-jdbc-thin @@ -51,7 +51,7 @@ com.databricks databricks-jdbc-core - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT diff --git a/assembly-uber/pom.xml b/assembly-uber/pom.xml index eeb33a5bf6..689ad0d832 100644 --- a/assembly-uber/pom.xml +++ b/assembly-uber/pom.xml @@ -7,7 +7,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT databricks-jdbc @@ -51,7 +51,7 @@ com.databricks databricks-jdbc-core - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT diff --git a/jdbc-core/pom.xml b/jdbc-core/pom.xml index 3bea913f7e..53eb8551e0 100644 --- a/jdbc-core/pom.xml +++ b/jdbc-core/pom.xml @@ -6,7 +6,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT databricks-jdbc-core diff --git a/pom.xml b/pom.xml index 86838025db..c542af6749 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT pom Databricks JDBC Parent Parent POM for Databricks JDBC Driver. @@ -63,7 +63,7 @@ 3.6.1 - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT 18.3.0 3.18.0 2.10.1 diff --git a/test-assembly-thin/pom.xml b/test-assembly-thin/pom.xml index e731b5dd31..66bf788b1d 100644 --- a/test-assembly-thin/pom.xml +++ b/test-assembly-thin/pom.xml @@ -7,7 +7,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT test-databricks-jdbc-thin @@ -19,7 +19,7 @@ com.databricks databricks-jdbc-thin - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT org.junit.jupiter diff --git a/test-assembly-uber/pom.xml b/test-assembly-uber/pom.xml index d4c0fcd8c6..0d140c8416 100644 --- a/test-assembly-uber/pom.xml +++ b/test-assembly-uber/pom.xml @@ -7,7 +7,7 @@ com.databricks databricks-jdbc-parent - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT test-databricks-jdbc-uber @@ -19,7 +19,7 @@ com.databricks databricks-jdbc - 3.2.0-SNAPSHOT + 3.2.2-SNAPSHOT org.junit.jupiter