From 8d1cba905f8167cd3f9e4ec4e4b42efbf6c3c3f6 Mon Sep 17 00:00:00 2001 From: Peter Hoffmann <954078+p-hoffmann@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:04:23 +0800 Subject: [PATCH 1/2] Use Google's BigQuery JDBC driver from Maven Central instead of the Simba driver The webapi-bigquery profile now pulls com.google.cloud:google-cloud-bigquery-jdbc (Apache-2.0, shaded 'all' jar), so no manual driver download or local install is needed. Existing Simba-style connection strings (ProjectId, OAuthType, OAuthServiceAcctEmail, OAuthPvtKeyPath) are accepted unchanged. --- pom.xml | 187 ++---------------- src/main/extras/bigquery/README.md | 6 - .../org/ohdsi/webapi/DataAccessConfig.java | 2 +- 3 files changed, 12 insertions(+), 183 deletions(-) delete mode 100644 src/main/extras/bigquery/README.md diff --git a/pom.xml b/pom.xml index a5d2b779cd..110d25a51c 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ 3.8.0 1.19.1 3.1.2 + 1.5.0 2.18.2 21 21 @@ -931,187 +932,21 @@ webapi-bigquery - - true - - ${basedir}/src/main/extras/bigquery - - - com.google.api-client - google-api-client - 2.7.0 - - - com.google.apis - google-api-services-bigquery - v2-rev20240919-2.0.0 - com.google.cloud - google-cloud-bigquery - 1.6.2.1003 - - - com.google.http-client - google-http-client - 1.45.0 - - - com.google.http-client - google-http-client-gson - 1.45.0 - - - com.google.oauth-client - google-oauth-client - 1.36.0 - - - com.google.cloud - google-cloud-bigquerystorage - 3.9.3 - - - com.google.auth - google-auth-library-oauth2-http - 1.28.0 - - - com.google.auth - google-auth-library-credentials - 1.28.0 - - - com.google.api - gax - 2.55.0 - - - com.google.api - gax-grpc - 2.55.0 - - - com.google.api.grpc - proto-google-cloud-bigquerystorage-v1 - 3.9.3 - - - io.opencensus - opencensus-contrib-http-util - 0.31.1 + google-cloud-bigquery-jdbc + ${bigquery-jdbc.version} + all + runtime + + + * + * + + - - - - org.apache.maven.plugins - maven-install-plugin - 2.5.2 - - - google-api-client - initialize - - install-file - - - com.google.api-client - google-api-client - 2.7.0 - jar - ${bigquery.classpath}/google-api-client-2.7.0.jar - - - - google-api-services-bigquery - initialize - - install-file - - - com.google.apis - google-api-services-bigquery - v2-rev20240919-2.0.0 - jar - ${bigquery.classpath}/google-api-services-bigquery-v2-rev20240919-2.0.0.jar - - - - google-cloud-bigquery - initialize - - install-file - - - com.google.cloud - google-cloud-bigquery - 1.6.2.1003 - jar - ${bigquery.classpath}/GoogleBigQueryJDBC42.jar - - - - google-http-client - initialize - - install-file - - - com.google.http-client - google-http-client - 1.45.0 - jar - ${bigquery.classpath}/google-http-client-1.45.0.jar - - - - google-http-client-gson - initialize - - install-file - - - com.google.http-client - google-http-client-gson - 1.45.0 - jar - ${bigquery.classpath}/google-http-client-gson-1.45.0.jar - - - - google-oauth-client - initialize - - install-file - - - com.google.oauth-client - google-oauth-client - 1.36.0 - jar - ${bigquery.classpath}/google-oauth-client-1.36.0.jar - - - - google-cloud-bigquerystorage - initialize - - install-file - - - com.google.cloud - google-cloud-bigquerystorage - 3.9.3 - jar - ${bigquery.classpath}/google-cloud-bigquerystorage-3.9.3.jar - - - - - - webapi-hive diff --git a/src/main/extras/bigquery/README.md b/src/main/extras/bigquery/README.md deleted file mode 100644 index 1b52d3fe98..0000000000 --- a/src/main/extras/bigquery/README.md +++ /dev/null @@ -1,6 +0,0 @@ -To build WebAPI with Google BigQuery support do the following: -1. Go to https://cloud.google.com/bigquery/partners/simba-drivers/ and -2. Download the JDBC 4.2 driver -3. Unpack archive and set the bigquery.classpath property in your settings.xml to the unpacked archive location (ie: C://downloads/bigquery) inside the webapi-bigquery profile. -4. Build WebAPI with webapi-bigquery profile. - * mvn -Pwebapi-postgresql,webapi-bigquery clean package diff --git a/src/main/java/org/ohdsi/webapi/DataAccessConfig.java b/src/main/java/org/ohdsi/webapi/DataAccessConfig.java index 87a1b3a153..bb02c578a5 100644 --- a/src/main/java/org/ohdsi/webapi/DataAccessConfig.java +++ b/src/main/java/org/ohdsi/webapi/DataAccessConfig.java @@ -99,7 +99,7 @@ public DataSource primaryDataSource() { HikariDataSource ds = new HikariDataSource(hikariConfig); String[] supportedDrivers; - supportedDrivers = new String[]{"org.postgresql.Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "oracle.jdbc.driver.OracleDriver", "com.amazon.redshift.jdbc.Driver", "com.cloudera.impala.jdbc.Driver", "net.starschema.clouddb.jdbc.BQDriver", "org.netezza.Driver", "com.simba.googlebigquery.jdbc42.Driver", "org.apache.hive.jdbc.HiveDriver", "com.simba.spark.jdbc.Driver", "net.snowflake.client.jdbc.SnowflakeDriver", "com.databricks.client.jdbc.Driver", "com.intersystems.jdbc.IRISDriver"}; + supportedDrivers = new String[]{"org.postgresql.Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "oracle.jdbc.driver.OracleDriver", "com.amazon.redshift.jdbc.Driver", "com.cloudera.impala.jdbc.Driver", "net.starschema.clouddb.jdbc.BQDriver", "org.netezza.Driver", "com.google.cloud.bigquery.jdbc.BigQueryDriver", "org.apache.hive.jdbc.HiveDriver", "com.simba.spark.jdbc.Driver", "net.snowflake.client.jdbc.SnowflakeDriver", "com.databricks.client.jdbc.Driver", "com.intersystems.jdbc.IRISDriver"}; for (String driverName : supportedDrivers) { try { Class.forName(driverName); From 75b85438705a870af8f5fdacd5163e267fa0bc0e Mon Sep 17 00:00:00 2001 From: Peter Hoffmann <954078+p-hoffmann@users.noreply.github.com> Date: Thu, 24 Sep 2026 21:41:30 +0800 Subject: [PATCH 2/2] Drop the unused Starschema BigQuery driver from the driver list --- src/main/java/org/ohdsi/webapi/DataAccessConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/ohdsi/webapi/DataAccessConfig.java b/src/main/java/org/ohdsi/webapi/DataAccessConfig.java index bb02c578a5..6013996212 100644 --- a/src/main/java/org/ohdsi/webapi/DataAccessConfig.java +++ b/src/main/java/org/ohdsi/webapi/DataAccessConfig.java @@ -99,7 +99,7 @@ public DataSource primaryDataSource() { HikariDataSource ds = new HikariDataSource(hikariConfig); String[] supportedDrivers; - supportedDrivers = new String[]{"org.postgresql.Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "oracle.jdbc.driver.OracleDriver", "com.amazon.redshift.jdbc.Driver", "com.cloudera.impala.jdbc.Driver", "net.starschema.clouddb.jdbc.BQDriver", "org.netezza.Driver", "com.google.cloud.bigquery.jdbc.BigQueryDriver", "org.apache.hive.jdbc.HiveDriver", "com.simba.spark.jdbc.Driver", "net.snowflake.client.jdbc.SnowflakeDriver", "com.databricks.client.jdbc.Driver", "com.intersystems.jdbc.IRISDriver"}; + supportedDrivers = new String[]{"org.postgresql.Driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "oracle.jdbc.driver.OracleDriver", "com.amazon.redshift.jdbc.Driver", "com.cloudera.impala.jdbc.Driver", "org.netezza.Driver", "com.google.cloud.bigquery.jdbc.BigQueryDriver", "org.apache.hive.jdbc.HiveDriver", "com.simba.spark.jdbc.Driver", "net.snowflake.client.jdbc.SnowflakeDriver", "com.databricks.client.jdbc.Driver", "com.intersystems.jdbc.IRISDriver"}; for (String driverName : supportedDrivers) { try { Class.forName(driverName);