diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f1c4cd36..bf54a723 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,6 +1,9 @@
# Continuous integration, including test and integration test
name: CI
+env:
+ SKIP_ORACLE_TESTS: true
+
# Run in master and dev branches and in all pull requests to those branches
on:
push:
@@ -30,4 +33,4 @@ jobs:
# Gradle check
- name: Check
- run: mvn test
+ run: mvn verify
diff --git a/.gitignore b/.gitignore
index 75067728..0805083b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,5 @@ data/
# contains authentication data for a Snowflake instance
snowflake.env
+# contains authentication data for a BigQuery instance
+bigquery.env
diff --git a/README.md b/README.md
index 01074c2f..526e4e05 100644
--- a/README.md
+++ b/README.md
@@ -45,6 +45,22 @@ Requires Java 1.8 or higher for running, and read access to the database to be s
Dependencies
============
For the distributable packages, the only requirement is Java 8. For building the package, Java 17+ and Maven are needed.
+There are exceptions for databases that use a JDBC driver with a license that does not allow distribution of the driver.
+(BigQuery, Teradata)
+
+**BigQuery**
+
+If you want to use a BigQuery instance as the source database, after installing WhiteRabbit, you will need to download
+a zip file with the BigQuery JDBC driver, and unzip it in de `repo` directory of the WhiteRabbit installation.
+The latest version tested with WhiteRabbit is 1.5.2.1005 .
+The zip file can be downloaded [here](https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery42_1.5.2.1005.zip)
+
+**Teradata**
+
+If you want to use a Teradata instance as the source database, after installing WhiteRabbit, you will need to download
+a zip file with the Teradata JDBC driver, and unzip it in de `repo` directory of the WhiteRabbit installation.
+The latest version tested with WhiteRabbit is 20.00.00.16 .
+The zip file can be downloaded [here](https://downloads.teradata.com/download/connectivity/jdbc-driver)
Getting Started
===============
diff --git a/docs/WhiteRabbit.html b/docs/WhiteRabbit.html
index c7e8bb20..56b6d696 100644
--- a/docs/WhiteRabbit.html
+++ b/docs/WhiteRabbit.html
@@ -496,6 +496,8 @@
diff --git a/docs/WhiteRabbit.md b/docs/WhiteRabbit.md
index f120fe66..8008bb30 100644
--- a/docs/WhiteRabbit.md
+++ b/docs/WhiteRabbit.md
@@ -133,6 +133,12 @@ When the SQL Server JDBC drivers are installed, you can also use Windows authent
#### Google BigQuery
+If you want to use a BigQuery instance as the source database, after installing WhiteRabbit, you will need to download
+a zip file with the BigQuery JDBC driver, and unzip it in de `repo` directory of the WhiteRabbit installation.
+The latest version tested with WhiteRabbit is 1.5.2.1005 .
+
+The zip file can be downloaded [here](https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery42_1.5.2.1005.zip).
+
Google BigQuery (GBQ) supports two different connection/authentication methods: application default credentials and service account authentication.
The former method is considered more secure because it writes auditing events to stackdriver.
The specific method used is determined by the arguments provided to the configuration panel as described below.
@@ -173,6 +179,14 @@ Authentication via service account credentials:
Please note that the fields _**Password**_ and _**Authentication method**_ are mutually exclusive: for only one of these fields
a value should be supplied. A warning will be given when a value is supplied for both fields.
+#### Teradata
+
+If you want to use a Teradata instance as the source database, after installing WhiteRabbit, you will need to download
+a zip file with the Teradata JDBC driver, and unzip it in de `repo` directory of the WhiteRabbit installation.
+The latest version tested with WhiteRabbit is 20.00.00.16 .
+
+The zip file can be downloaded [here](https://downloads.teradata.com/download/connectivity/jdbc-driver).
+
## Scanning a Database
### Performing the Scan
diff --git a/docs/runmarkdown.R b/docs/runmarkdown.R
new file mode 100755
index 00000000..5cc26d76
--- /dev/null
+++ b/docs/runmarkdown.R
@@ -0,0 +1,10 @@
+#!/usr/bin/env Rscript
+
+#
+# use this script (on linux/mac) to reformat the html pages from the markdown files
+# only needed when you change .md files
+#
+
+#devtools::install_github("ropenscilabs/icon")
+library(rmarkdown)
+rmarkdown::render_site()
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar
deleted file mode 100644
index ac2f8b2e..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.md5 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.md5
deleted file mode 100644
index 9c25027a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-262cc658e65aa9fdf4282ea6714f1367
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.sha1
deleted file mode 100644
index 759f7606..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2a6fc1b481483d45f3efbc69e76c6665c11cc2ec
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom
deleted file mode 100644
index a8e80cf3..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- GoogleBigQueryJDBC
- 42
-
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.md5 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.md5
deleted file mode 100644
index 6ef1cc9e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-fd2d1c1022b642e24fe0e790adafc8a9
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.sha1
deleted file mode 100644
index 76bcd62f..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/42/GoogleBigQueryJDBC-42.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5ba2502c65e57974ed7d38bb4fffea3a5434deca
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml
deleted file mode 100644
index e7fcaaac..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- GoogleBigQueryJDBC
-
- 42
-
- 42
-
- 20191004152516
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.md5
deleted file mode 100644
index 25766af7..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-8b7363e0b69e10aa775fb910f5e0dcbc
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.sha1
deleted file mode 100644
index 85e8fa6a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/GoogleBigQueryJDBC/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-be98b4ed33c88fd2e80c10dea787c26c04cd58a7
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar
deleted file mode 100644
index 23b3958b..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.md5 b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.md5
deleted file mode 100644
index 0ccdef6b..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-10395e5a571e1a1f6113411f276d2fea
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.sha1
deleted file mode 100644
index d10965a1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-91e3146dfff4bd510181032c8276a3a0130c0697
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom
deleted file mode 100644
index a5bc1158..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- avro
- 1.8.2
-
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.md5 b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.md5
deleted file mode 100644
index 0508c3ee..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-3d7b0a7f1bd6803fce9fd00ba4654068
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.sha1
deleted file mode 100644
index fcfe86eb..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/1.8.2/avro-1.8.2.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-be4010b1fc46d26fac0777567bbadea0c6dc99b4
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml
deleted file mode 100644
index d50f644a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- avro
-
- 1.8.2
-
- 1.8.2
-
- 20191004152634
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.md5
deleted file mode 100644
index f90c9a83..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-31df9ef707a0b96bf9ff21c762d3b75d
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.sha1
deleted file mode 100644
index e3ac5799..00000000
--- a/lib/com/simba/googlebigquery/jdbc/avro/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-7cf68ae83ecad5129aaebbe3195def8355c55424
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar
deleted file mode 100644
index c956144a..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.md5
deleted file mode 100644
index d30e793c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-bf9a95970b7aa8da9d86a452872dea0a
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.sha1
deleted file mode 100644
index a9df54c9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff099b100d2202d4bf0c0a00f14cb369e0186375
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom
deleted file mode 100644
index 34f769f3..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- gax
- 1.42.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.md5
deleted file mode 100644
index 8049c31e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-0917a660d6d89a9f9391c726efaaeb81
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.sha1
deleted file mode 100644
index 65abedc9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/1.42.0/gax-1.42.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-044024b82e18ac19ed32b4f685e34816c427c782
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml
deleted file mode 100644
index 9c1868f4..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- gax
-
- 1.42.0
-
- 1.42.0
-
- 20191004152532
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.md5
deleted file mode 100644
index cf6e0882..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-caa3a807b0d4edc0b04fe9585ab69681
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.sha1
deleted file mode 100644
index ce934a98..00000000
--- a/lib/com/simba/googlebigquery/jdbc/gax/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5620904f6d8596e1a296cb8994a5485ed9805416
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar
deleted file mode 100644
index 450fea8e..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.md5
deleted file mode 100644
index 1e73f28d..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-4831bcd0d30d13382b3af50acbbbf53e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.sha1
deleted file mode 100644
index c9b0efd4..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-8fe155d766ed22480939e3a9db428151e0264d9e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom
deleted file mode 100644
index 815e7a51..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-api-client
- 1.28.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.md5
deleted file mode 100644
index 15e7d1b2..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-5d233fc2bdaee2a4f1a511531eaf2395
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.sha1
deleted file mode 100644
index 721f1605..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/1.28.0/google-api-client-1.28.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d36628ab6b89c2f6a79c2160b10bf83492c38c63
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml
deleted file mode 100644
index b5e11ec8..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-api-client
-
- 1.28.0
-
- 1.28.0
-
- 20191004152523
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.md5
deleted file mode 100644
index 07fbbc7d..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-dd0548af810f22977717b141232a7087
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.sha1
deleted file mode 100644
index 52084890..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-client/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f27a1719919b86b3da4dd436e4e3167808109224
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar
deleted file mode 100644
index 2af75993..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.md5
deleted file mode 100644
index a5b776ba..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-a8865c7a220728b974fe3101581f29eb
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.sha1
deleted file mode 100644
index ad56647e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1ba9dd5c60f5fcc8ac94ce1533d81b69e0d76aa
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom
deleted file mode 100644
index 61669b52..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-api-service-bigquery
- V2-rev426-1.25.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.md5
deleted file mode 100644
index ae044234..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-c8edc39e56425571ad865b47be4a887b
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.sha1
deleted file mode 100644
index ebfa40ee..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/V2-rev426-1.25.0/google-api-service-bigquery-V2-rev426-1.25.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3f8eb2ad6890d6752cc949f5753612c96dbaae5d
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml
deleted file mode 100644
index b88b51a4..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-api-service-bigquery
-
- V2-rev426-1.25.0
-
- V2-rev426-1.25.0
-
- 20191004152609
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.md5
deleted file mode 100644
index 86cc4720..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-9f4c377aeecd5d6179f069a0d2b74b48
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.sha1
deleted file mode 100644
index b371952b..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-api-service-bigquery/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-3ca39758a654a2a1e739236ec5010e1665f9109c
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar
deleted file mode 100644
index 7834fac7..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.md5
deleted file mode 100644
index 4040a3d0..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-4bd2bd355d775b0d25113d585b93328a
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.sha1
deleted file mode 100644
index 551508e1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-29fc7f62c488cf3b28e98db71a75f47da6fb7afc
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom
deleted file mode 100644
index 411dc879..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-auth-library-credentials
- 0.15.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.md5
deleted file mode 100644
index 2f7c04af..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-12891163747096e78c566d4ac99c22a1
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.sha1
deleted file mode 100644
index 859ece83..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/0.15.0/google-auth-library-credentials-0.15.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2d0c561aa86f0d3775fdbfc698a49470ebf47f53
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml
deleted file mode 100644
index 1138ed8c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-auth-library-credentials
-
- 0.15.0
-
- 0.15.0
-
- 20191004152553
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.md5
deleted file mode 100644
index 98ca52c9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-a0788d857e74a4b4b713ad5db35c4d6a
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.sha1
deleted file mode 100644
index e206bd65..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-credentials/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-7bc08992abfa673469e1d68c2caa16e634ca3785
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar
deleted file mode 100644
index 2f22be95..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.md5
deleted file mode 100644
index e1cd2311..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-b9dd0f4c45881f8eceaed743eb33967e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.sha1
deleted file mode 100644
index 4c664705..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c93cc4307226014ab6b7554af71308ba1a8f4f54
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom
deleted file mode 100644
index 0a6cbd57..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-auth-library-oauth2-http
- 0.13.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.md5
deleted file mode 100644
index c2408725..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-e03a0e66edc6b916c59ae3fd2b2a04ce
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.sha1
deleted file mode 100644
index 05a338b9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b6b48751748ce1b872cc142a77db12d3794b4691
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml
deleted file mode 100644
index 1389fc70..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-auth-library-oauth2-http
-
- 0.13.0
-
- 0.13.0
-
- 20191004152547
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.md5
deleted file mode 100644
index 6f2b70d0..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-42079d356cc0c0e04cd444efec112777
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.sha1
deleted file mode 100644
index caaa246d..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-auth-library-oauth2-http/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9077335e7edaa24c30a0beb01d981a11394fa028
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar
deleted file mode 100644
index 608e2282..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.md5
deleted file mode 100644
index baebd1b1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-632ba8fd2363561ffdcdf6e7b054ebec
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.sha1
deleted file mode 100644
index 88c31d80..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ff58559c28960a7988aeab3d66dbe3a07e983187
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom
deleted file mode 100644
index c2786f20..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-http-client-jackson2
- 1.28.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.md5
deleted file mode 100644
index 9a55e289..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-528fb9febf66db75c5392a96551b73da
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.sha1
deleted file mode 100644
index fe95ab92..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-084f871c2bb4861fea8c824a173744969bc65bf2
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml
deleted file mode 100644
index 452ec425..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-http-client-jackson2
-
- 1.28.0
-
- 1.28.0
-
- 20191004152537
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.md5
deleted file mode 100644
index 97626529..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-a9fe2fc7af86dddae6ad03a896966a79
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.sha1
deleted file mode 100644
index df72a0dd..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client-jackson2/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-7e194994c04133fa7a7db7a1bce3b97d42f87cd2
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar
deleted file mode 100644
index 7313db4f..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.md5
deleted file mode 100644
index 38bdda6e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-ca383f9f24fb83cc773f962f52a95e6e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.sha1
deleted file mode 100644
index 8d499926..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ab265acd8d9c13ac73c644a50cf5a8c746aa77c6
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom
deleted file mode 100644
index fde65869..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-http-client
- 1.29.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.md5
deleted file mode 100644
index 80dc1bf5..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-4f1749f1c588cbea0013ba6072501833
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.sha1
deleted file mode 100644
index 39b4b231..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/1.29.0/google-http-client-1.29.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-969f8eb4405b3fc9f9f0a3a5dc9b612d870dea76
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml
deleted file mode 100644
index 1ecd19e1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-http-client
-
- 1.29.0
-
- 1.29.0
-
- 20191004152527
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.md5
deleted file mode 100644
index 4225412f..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-e3c666be43639cb9757f7d54891ec396
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.sha1
deleted file mode 100644
index 97a0644c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-http-client/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-83fc77d599430d01c9a955465a80d91d0284e1d4
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar
deleted file mode 100644
index b7a40f9b..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.md5
deleted file mode 100644
index 233440fb..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-bb04bc90cce670b9720532760406fbca
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.sha1
deleted file mode 100644
index 474df6e0..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9a9e5d0c33b663d6475c96ce79b2949545a113af
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom
deleted file mode 100644
index a8b98608..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- google-oauth-client
- 1.28.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.md5
deleted file mode 100644
index 6ef807d9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-8e022693d47b0c9f409a4eff5141e286
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.sha1
deleted file mode 100644
index 2554aa2c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/1.28.0/google-oauth-client-1.28.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b73198fbc6900e4b4a2046076e37f06c805c7004
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml
deleted file mode 100644
index 2a36a470..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- google-oauth-client
-
- 1.28.0
-
- 1.28.0
-
- 20191004152543
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.md5
deleted file mode 100644
index f03b6eca..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-1f85bba0521ac3f917c32ad63aa6475d
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.sha1
deleted file mode 100644
index 78b3e2a0..00000000
--- a/lib/com/simba/googlebigquery/jdbc/google-oauth-client/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-fbddd160cec3ad094fcb3314a2df6b0f324acf99
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar
deleted file mode 100644
index 4115054d..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.md5
deleted file mode 100644
index eb976db9..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-6007cf1ef04daa0219c52efa89923155
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.sha1
deleted file mode 100644
index 4664e492..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c63e8b86af0fb16b5696480dc14f48e6eaa7193b
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom
deleted file mode 100644
index 0eac5490..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- grpc-context
- 1.18.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.md5
deleted file mode 100644
index 27ae6246..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-d67028022ed204d394f79e1055b568d7
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.sha1
deleted file mode 100644
index 7a2bb1d0..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/1.18.0/grpc-context-1.18.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-13bc6bd8cd8cba817c7e70f767567a83d9ce42be
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml
deleted file mode 100644
index 937217a5..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- grpc-context
-
- 1.18.0
-
- 1.18.0
-
- 20191004152623
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.md5
deleted file mode 100644
index efbdebbb..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-174ee142a09fca924612c9708d51aaf7
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.sha1
deleted file mode 100644
index 83753cd2..00000000
--- a/lib/com/simba/googlebigquery/jdbc/grpc-context/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4233e48171c60d58a4d472c9f448737b1aea6753
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar
deleted file mode 100644
index 3db9b6c4..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.md5
deleted file mode 100644
index fb2a9b7e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-4ba075ab44dcb3c9874d56ceaa602c49
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.sha1
deleted file mode 100644
index 9b840139..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-ef69663836b339db335fde0df06fb3cd84e3742b
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom
deleted file mode 100644
index ddddaccf..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- guava
- 26.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.md5
deleted file mode 100644
index c918cd33..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-e0520577f39f3343fa4de414eea33f5c
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.sha1
deleted file mode 100644
index 9dd5808a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/26.0/guava-26.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f3a61b6eaf859dcc255f8d959199dc3a9316c0a4
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml
deleted file mode 100644
index 532c70d6..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- guava
-
- 26.0
-
- 26.0
-
- 20191004152605
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.md5
deleted file mode 100644
index 01a402e6..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-03364fd08dc3326dfc0d8f881b9455e2
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.sha1
deleted file mode 100644
index e41cbf70..00000000
--- a/lib/com/simba/googlebigquery/jdbc/guava/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b618173c2e5000725b61c8af2b346449a91ce47d
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar
deleted file mode 100644
index 09e7dd20..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.md5 b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.md5
deleted file mode 100644
index 5cb1c46a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-f3cf83b839fac92307cad542c2ded5c4
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.sha1
deleted file mode 100644
index bd5af1a1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-4e393793c37c77e042ccc7be5a914ae39251b365
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom
deleted file mode 100644
index dd9d3bad..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- jackson-core
- 2.9.6
-
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.md5 b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.md5
deleted file mode 100644
index 84af7b48..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-72dc1837a3710503360c52031f6dbc23
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.sha1
deleted file mode 100644
index 8cfbfc1e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/2.9.6/jackson-core-2.9.6.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b02bef0d597fdacdd5914ac5ef74524a4b724c28
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml
deleted file mode 100644
index 612d794b..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- jackson-core
-
- 2.9.6
-
- 2.9.6
-
- 20191004152558
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.md5
deleted file mode 100644
index 90d1664c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-87a86e41987aea0ffbb11727da16299b
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.sha1
deleted file mode 100644
index 5978bc50..00000000
--- a/lib/com/simba/googlebigquery/jdbc/jackson-core/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-94aad5a628bbbf4f9397b123bb28922cae44635e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar
deleted file mode 100644
index aa55ad2b..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.md5 b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.md5
deleted file mode 100644
index 19cb816a..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-488e6b287cde4fe6142c0da65495ab63
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.sha1
deleted file mode 100644
index 75e80975..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-9ac3dbf89dbf2ee385185dd0cd3064fe789efee0
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom
deleted file mode 100644
index 4a10f368..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- joda-time
- 2.10.1
-
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.md5 b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.md5
deleted file mode 100644
index 71e0ff6d..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-a6d7baa3198ee02d19aae03870284b3f
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.sha1
deleted file mode 100644
index 29de1c26..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/2.10.1/joda-time-2.10.1.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-c1889f4f49a433c5dfd037ce74ed4cd8f8e824e7
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml
deleted file mode 100644
index 14d1b43c..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- joda-time
-
- 2.10.1
-
- 2.10.1
-
- 20191004152629
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.md5
deleted file mode 100644
index 2f6c3104..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-14e689e392d3a0562536d1866783e488
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.sha1
deleted file mode 100644
index ca18c564..00000000
--- a/lib/com/simba/googlebigquery/jdbc/joda-time/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-bd84247a75e9f0ad4518ba4e31634a630cc2d10e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar
deleted file mode 100644
index 5c9afd32..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.md5
deleted file mode 100644
index 170894ed..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-059407e5c0e8a4b9d815c3bc6448a769
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.sha1
deleted file mode 100644
index 8b95ab4e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b89a8f8dfd1e1e0d68d83c82a855624814b19a6e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom
deleted file mode 100644
index 4e1851a7..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- opencensus-api
- 0.18.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.md5
deleted file mode 100644
index 2b387a1e..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-21c0fda2f9905439d5d04ad86c89294a
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.sha1
deleted file mode 100644
index 4692552f..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/0.18.0/opencensus-api-0.18.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-80ec0e0d4cf4b47fbf545fcdc63610d5f5fbae41
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml
deleted file mode 100644
index ec6d05c6..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- opencensus-api
-
- 0.18.0
-
- 0.18.0
-
- 20191004152613
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.md5
deleted file mode 100644
index fb15102b..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-63c89c19121cd01bfb4c591fbffe17d9
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.sha1
deleted file mode 100644
index efd053ba..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-api/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d1cbe8acedaa95b0cc1930bebbec3ecca1b2ab94
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar
deleted file mode 100644
index 48aa45cc..00000000
Binary files a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar and /dev/null differ
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.md5
deleted file mode 100644
index 71d0f2b5..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.md5
+++ /dev/null
@@ -1 +0,0 @@
-ae15cdc3ea04218c9ec14708cad2db94
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.sha1
deleted file mode 100644
index 1757e005..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-76a37e4a931d5801a9e25b0c0353e5f37c4d1e8e
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom
deleted file mode 100644
index 21f172aa..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- 4.0.0
- com.simba.googlebigquery.jdbc
- opencensus-contrib-http-util
- 0.18.0
-
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.md5
deleted file mode 100644
index 9c9331ec..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.md5
+++ /dev/null
@@ -1 +0,0 @@
-109dec0822afe75c7a5e4b880f311fc7
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.sha1
deleted file mode 100644
index 4befb082..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/0.18.0/opencensus-contrib-http-util-0.18.0.pom.sha1
+++ /dev/null
@@ -1 +0,0 @@
-6159772dc464e2435ce5d806162593409293394a
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml
deleted file mode 100644
index 9f356dfa..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.simba.googlebigquery.jdbc
- opencensus-contrib-http-util
-
- 0.18.0
-
- 0.18.0
-
- 20191004152618
-
-
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.md5 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.md5
deleted file mode 100644
index 7f0c4d13..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.md5
+++ /dev/null
@@ -1 +0,0 @@
-a8bf8f5b88a5e5976d6b1c86a233a415
\ No newline at end of file
diff --git a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.sha1 b/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.sha1
deleted file mode 100644
index d8a3e4d1..00000000
--- a/lib/com/simba/googlebigquery/jdbc/opencensus-contrib-http-util/maven-metadata.xml.sha1
+++ /dev/null
@@ -1 +0,0 @@
-fc44a8f5a3b71431f543f71a67e2034d5f60cc89
\ No newline at end of file
diff --git a/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.jar b/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.jar
deleted file mode 100644
index 06bc75af..00000000
Binary files a/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.jar and /dev/null differ
diff --git a/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.pom b/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.pom
deleted file mode 100644
index 19b6b4a2..00000000
--- a/lib/com/teradata/jdbc/terajdbc4/16.0.0.32/terajdbc4-16.0.0.32.pom
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- 4.0.0
- com.teradata.jdbc
- terajdbc4
- 16.0.0.32
- POM was created from install:install-file
-
diff --git a/lib/com/teradata/jdbc/terajdbc4/maven-metadata-local.xml b/lib/com/teradata/jdbc/terajdbc4/maven-metadata-local.xml
deleted file mode 100644
index 61416a7e..00000000
--- a/lib/com/teradata/jdbc/terajdbc4/maven-metadata-local.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.teradata.jdbc
- terajdbc4
-
- 16.0.0.32
-
- 16.0.0.32
-
- 20190507142405
-
-
diff --git a/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.jar b/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.jar
deleted file mode 100644
index 211e9c65..00000000
Binary files a/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.jar and /dev/null differ
diff --git a/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.pom b/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.pom
deleted file mode 100644
index 50cfbf09..00000000
--- a/lib/com/teradata/tdgss/tdgssconfig/16.0.0.0/tdgssconfig-16.0.0.0.pom
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
- 4.0.0
- com.teradata.tdgss
- tdgssconfig
- 16.0.0.0
- POM was created from install:install-file
-
diff --git a/lib/com/teradata/tdgss/tdgssconfig/maven-metadata-local.xml b/lib/com/teradata/tdgss/tdgssconfig/maven-metadata-local.xml
deleted file mode 100644
index 279b440c..00000000
--- a/lib/com/teradata/tdgss/tdgssconfig/maven-metadata-local.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- com.teradata.tdgss
- tdgssconfig
-
- 16.0.0.0
-
- 16.0.0.0
-
- 20190507142309
-
-
diff --git a/pom.xml b/pom.xml
index 36426822..54d6bf0c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -303,35 +303,15 @@
GPL2 with classpath exception
https://openjdk.java.net/legal/gplv2+ce.html
+
+ Teradata Generic Download License
+ https://downloads.teradata.com/download/license/generic-download-license
+
com.microsoft.sqlserver:sqljdbc4
-
-
- com.github.thehyve:caciocavallo
-
-
- com.teradata.jdbc:terajdbc4
- com.teradata.tdgss:tdgssconfig
- com.simba.googlebigquery.jdbc:GoogleBigQueryJDBC
- com.simba.googlebigquery.jdbc:google-api-client
- com.simba.googlebigquery.jdbc:google-http-client
- com.simba.googlebigquery.jdbc:gax
- com.simba.googlebigquery.jdbc:google-http-client-jackson2
- com.simba.googlebigquery.jdbc:google-oauth-client
- com.simba.googlebigquery.jdbc:google-auth-library-oauth2-http
- com.simba.googlebigquery.jdbc:google-auth-library-credentials
- com.simba.googlebigquery.jdbc:jackson-core
- com.simba.googlebigquery.jdbc:guava
- com.simba.googlebigquery.jdbc:google-api-service-bigquery
- com.simba.googlebigquery.jdbc:opencensus-api
- com.simba.googlebigquery.jdbc:opencensus-contrib-http-util
- com.simba.googlebigquery.jdbc:grpc-context
- com.simba.googlebigquery.jdbc:joda-time
diff --git a/rabbit-core/pom.xml b/rabbit-core/pom.xml
index 86894ab1..7da604bc 100644
--- a/rabbit-core/pom.xml
+++ b/rabbit-core/pom.xml
@@ -14,7 +14,8 @@
UTF-8
- 5.2.4
+ 5.2.4
+ system
@@ -146,97 +147,6 @@
redshift-jdbc42
2.1.0.25
-
- com.teradata.jdbc
- terajdbc4
- 16.0.0.32
-
-
- com.teradata.tdgss
- tdgssconfig
- 16.0.0.0
-
-
- com.simba.googlebigquery.jdbc
- GoogleBigQueryJDBC
- 42
-
-
- com.simba.googlebigquery.jdbc
- google-api-client
- 1.28.0
-
-
- com.simba.googlebigquery.jdbc
- google-http-client
- 1.29.0
-
-
- com.simba.googlebigquery.jdbc
- gax
- 1.42.0
-
-
- com.simba.googlebigquery.jdbc
- google-http-client-jackson2
- 1.28.0
-
-
- com.simba.googlebigquery.jdbc
- google-oauth-client
- 1.28.0
-
-
- com.simba.googlebigquery.jdbc
- google-auth-library-oauth2-http
- 0.13.0
-
-
- com.simba.googlebigquery.jdbc
- google-auth-library-credentials
- 0.15.0
-
-
- com.simba.googlebigquery.jdbc
- jackson-core
- 2.9.6
-
-
- com.simba.googlebigquery.jdbc
- guava
- 26.0
-
-
- com.simba.googlebigquery.jdbc
- google-api-service-bigquery
- V2-rev426-1.25.0
-
-
- com.simba.googlebigquery.jdbc
- opencensus-api
- 0.18.0
-
-
- com.simba.googlebigquery.jdbc
- avro
-
-
-
-
- com.simba.googlebigquery.jdbc
- opencensus-contrib-http-util
- 0.18.0
-
-
- com.simba.googlebigquery.jdbc
- grpc-context
- 1.18.0
-
-
- com.simba.googlebigquery.jdbc
- joda-time
- 2.10.1
-
org.apache.avro
diff --git a/rabbit-core/src/main/java/org/ohdsi/databases/DBConnector.java b/rabbit-core/src/main/java/org/ohdsi/databases/DBConnector.java
index c6c62ac1..938a9be9 100644
--- a/rabbit-core/src/main/java/org/ohdsi/databases/DBConnector.java
+++ b/rabbit-core/src/main/java/org/ohdsi/databases/DBConnector.java
@@ -66,7 +66,10 @@ public static Connection connectToTeradata(String server, String user, String pa
try {
Class.forName("com.teradata.jdbc.TeraDriver");
} catch(ClassNotFoundException e) {
- throw new RuntimeException("Cannot find JDBC driver. Make sure the terajdbc4.jar and tdgssconfig.jar are in the path");
+ throw new RuntimeException("Cannot find JDBC driver. Make sure the terajdbc.jar is in the path.\n" +
+ "It is not part of WhiteRabbit due to licensing restrictions. You need to install this yourself.\n" +
+ "Please see the information at \n" +
+ "https://ohdsi.github.io/WhiteRabbit/WhiteRabbit.html#teradata");
}
String url = "jdbc:teradata://" + server;
try {
@@ -254,7 +257,10 @@ public static Connection connectToBigQuery(String server, String domain, String
try {
Class.forName("com.simba.googlebigquery.jdbc42.Driver");
} catch (ClassNotFoundException e1) {
- throw new RuntimeException("Cannot find Simba GoogleBigQuery JDBC Driver class");
+ throw new RuntimeException("Cannot find Simba GoogleBigQuery JDBC Driver class.\n" +
+ "It is not part of WhiteRabbit due to licensing restrictions. You need to install this yourself.\n" +
+ "Please find additional information at \n" +
+ "https://ohdsi.github.io/WhiteRabbit/WhiteRabbit.html#google-bigquery");
}
/* See http://howtodojava.com/regex/java-regex-validate-email.address/ */
String email_regex = "^[\\w!#$%&'*+/=?`{|}~^-]+(?:\\.[\\w!#$%&'*+/=?`{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$";
@@ -298,7 +304,7 @@ static void verifyDrivers() {
throw new RuntimeException(String.format("JDBC driver was not expected to be loaded: %s", notSupportedDriver));
} catch (ClassNotFoundException ignored) {}
- DbType.driverNames().forEach(driver -> {
+ DbType.includedDriverNames().forEach(driver -> {
try {
testJDBCDriverAndVersion(driver);
} catch (ClassNotFoundException e) {
diff --git a/rabbit-core/src/main/java/org/ohdsi/databases/configuration/DbType.java b/rabbit-core/src/main/java/org/ohdsi/databases/configuration/DbType.java
index 75e09f1e..4bec9251 100644
--- a/rabbit-core/src/main/java/org/ohdsi/databases/configuration/DbType.java
+++ b/rabbit-core/src/main/java/org/ohdsi/databases/configuration/DbType.java
@@ -39,8 +39,8 @@ public enum DbType {
MS_ACCESS("MS Access", "net.ucanaccess.jdbc.UcanaccessDriver"),
PDW("PDW", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
REDSHIFT("Redshift", "com.amazon.redshift.jdbc42.Driver"),
- TERADATA("Teradata", "com.teradata.jdbc.TeraDriver"),
- BIGQUERY("BigQuery", "com.simba.googlebigquery.jdbc42.Driver"),
+ TERADATA("Teradata", "com.teradata.jdbc.TeraDriver", null, false),
+ BIGQUERY("BigQuery", "com.simba.googlebigquery.jdbc42.Driver", null, false), // license does not allow inclusion with the distribution
AZURE("Azure", "com.microsoft.sqlserver.jdbc.SQLServerDriver"),
SNOWFLAKE("Snowflake", "net.snowflake.client.jdbc.SnowflakeDriver", SnowflakeHandler.INSTANCE),
SAS7BDAT("Sas7bdat", null);
@@ -48,15 +48,21 @@ public enum DbType {
private final String label;
private final String driverName;
private final StorageHandler implementingClass;
+ private final boolean driverIncluded;
DbType(String type, String driverName) {
- this(type, driverName, null);
+ this(type, driverName, null, true);
}
DbType(String label, String driverName, StorageHandler implementingClass) {
+ this(label, driverName, implementingClass, true);
+ }
+
+ DbType(String label, String driverName, StorageHandler implementingClass, boolean included) {
this.label = label;
this.driverName = driverName;
this.implementingClass = implementingClass;
+ this.driverIncluded = included;
if (!this.name().equals(normalizedName(label))) {
throw new DBConfigurationException(String.format(
"%s: the normalized value of label '%s' (%s) must match the name of the enum constant (%s)",
@@ -104,6 +110,15 @@ public static List driverNames() {
// return a list of unique names, without null values
return Stream.of(values()).filter(v -> StringUtils.isNotEmpty(v.driverName)).map(d -> d.driverName).distinct().collect(Collectors.toList());
}
+ public static List includedDriverNames() {
+ // return a list of unique names for drivers that are included with the distribution, without null values
+ return Stream.of(values()).filter(v -> StringUtils.isNotEmpty(v.driverName) && v.driverIncluded).map(d -> d.driverName).distinct().collect(Collectors.toList());
+ }
+
+ public static List excludedDriverNames() {
+ // return a list of unique names for drivers that are excluded from the distribution, without null values
+ return Stream.of(values()).filter(v -> StringUtils.isNotEmpty(v.driverName) && !v.driverIncluded).map(d -> d.driverName).distinct().collect(Collectors.toList());
+ }
public String label() {
return this.label;
diff --git a/rabbit-core/src/test/java/org/ohdsi/databases/DBConnectorTest.java b/rabbit-core/src/test/java/org/ohdsi/databases/DBConnectorTest.java
index b699371b..8504e21c 100644
--- a/rabbit-core/src/test/java/org/ohdsi/databases/DBConnectorTest.java
+++ b/rabbit-core/src/test/java/org/ohdsi/databases/DBConnectorTest.java
@@ -23,7 +23,7 @@ void verifyDrivers() {
assertFalse(DbType.driverNames().contains(notSupportedDriver), "Cannot test this for a supported driver.");
assertThrows(ClassNotFoundException.class, () ->
testJDBCDriverAndVersion(notSupportedDriver));
- DbType.driverNames().forEach(driver -> {
+ DbType.includedDriverNames().forEach(driver -> {
try {
testJDBCDriverAndVersion(driver);
} catch (ClassNotFoundException e) {
diff --git a/rabbit-core/src/test/java/org/ohdsi/databases/SnowflakeTestUtils.java b/rabbit-core/src/test/java/org/ohdsi/databases/SnowflakeTestUtils.java
deleted file mode 100644
index 1f40631f..00000000
--- a/rabbit-core/src/test/java/org/ohdsi/databases/SnowflakeTestUtils.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright 2023 Observational Health Data Sciences and Informatics & The Hyve
- *
- * This file is part of WhiteRabbit
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ******************************************************************************/
-package org.ohdsi.databases;
-
-import org.apache.commons.lang.StringUtils;
-import org.ohdsi.databases.configuration.DbSettings;
-import org.ohdsi.databases.configuration.DbType;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.function.BooleanSupplier;
-
-public class SnowflakeTestUtils {
-
- public static String getEnvOrFail(String name) {
- String value = System.getenv(name);
- if (StringUtils.isEmpty(value)) {
- throw new RuntimeException(String.format("Environment variable '%s' is not set.", name));
- }
-
- return value;
- }
-
- public static String getPropertyOrFail(String name) {
- String value = System.getProperty(name);
- if (StringUtils.isEmpty(value)) {
- throw new RuntimeException(String.format("System property '%s' is not set.", name));
- }
-
- return value;
- }
-
- @FunctionalInterface
- public interface ReaderInterface {
- String getOrFail(String name);
- }
-
- public static class EnvironmentReader implements ReaderInterface {
- public String getOrFail(String name) {
- return getEnvOrFail(name);
- }
- }
- public static class PropertyReader implements ReaderInterface {
- public String getOrFail(String name) {
- return getPropertyOrFail(name);
- }
- }
-
- public static class SnowflakeSystemPropertiesFileChecker implements BooleanSupplier {
- @Override
- public boolean getAsBoolean() {
- String buildDirectory = System.getProperty("projectBuildDirectory");
- Path snowflakeEnvVarPath = Paths.get(buildDirectory,"../..", "snowflake.env");
- if (StringUtils.isNotEmpty(buildDirectory) && Files.exists(snowflakeEnvVarPath)) {
- try {
- loadSystemProperties(snowflakeEnvVarPath);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return true;
- }
- // check the endpoint here and return either true or false
- return false;
- }
-
- private void loadSystemProperties(Path envVarFile) throws IOException {
- Files.lines(envVarFile)
- .map(line -> line.replaceAll("^export ", ""))
- .map(line2 -> line2.split("=", 2))
- .forEach(v -> System.setProperty(v[0], v[1]));
- }
- }
-}
diff --git a/whiterabbit/pom.xml b/whiterabbit/pom.xml
index a70f1b3b..b22ad49e 100644
--- a/whiterabbit/pom.xml
+++ b/whiterabbit/pom.xml
@@ -263,6 +263,12 @@
oracle-xe
test
+
+ org.testcontainers
+ mssqlserver
+ 1.19.6
+ test
+
org.ohdsi
rabbit-core
@@ -282,19 +288,10 @@
5.2.5
compile
-
-
-
-
- com.github.thehyve
- caciocavallo
- 1.17.7
+ 1.18
test
diff --git a/whiterabbit/src/main/java/org/ohdsi/whiterabbit/WhiteRabbitMain.java b/whiterabbit/src/main/java/org/ohdsi/whiterabbit/WhiteRabbitMain.java
index 47d34abb..90f86156 100644
--- a/whiterabbit/src/main/java/org/ohdsi/whiterabbit/WhiteRabbitMain.java
+++ b/whiterabbit/src/main/java/org/ohdsi/whiterabbit/WhiteRabbitMain.java
@@ -39,6 +39,7 @@
import javax.swing.*;
import javax.swing.border.TitledBorder;
+import javax.swing.event.HyperlinkEvent;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.commons.csv.CSVFormat;
@@ -802,7 +803,7 @@ private void testConnection(DbSettings dbSettings, ValidationFeedback feedback)
connection = new RichConnection(dbSettings);
} catch (Exception e) {
String message = "Could not connect: " + e.getMessage();
- JOptionPane.showMessageDialog(frame, StringUtilities.wordWrap(message, 80), "Error connecting to server", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(frame, makeHtmlPanel(message), "Error connecting to server", JOptionPane.ERROR_MESSAGE);
return;
}
try {
@@ -811,7 +812,7 @@ private void testConnection(DbSettings dbSettings, ValidationFeedback feedback)
throw new RuntimeException("Unable to retrieve table names for database " + dbSettings.database);
} catch (Exception e) {
String message = "Could not connect to database: " + e.getMessage();
- JOptionPane.showMessageDialog(frame, StringUtilities.wordWrap(message, 80), "Error connecting to server", JOptionPane.ERROR_MESSAGE);
+ JOptionPane.showMessageDialog(frame, makeHtmlPanel(message), "Error connecting to server", JOptionPane.ERROR_MESSAGE);
return;
}
@@ -821,6 +822,31 @@ private void testConnection(DbSettings dbSettings, ValidationFeedback feedback)
}
}
+ private JTextPane makeHtmlPanel(String text) {
+ JTextPane textPane = new JTextPane();
+ textPane.setContentType("text/html"); // let the text pane know this is what you want
+ textPane.setText("" + StringUtilities.wordWrap(text.replace("\n", "
"), 80) + "");
+ textPane.setEditable(false); // as before
+ textPane.setBackground(null); // this is the same as a JLabel
+ textPane.setBorder(null); // remove the border
+
+ // if a url seems present in the text, add a handler for clicking it
+ if (text.toLowerCase().contains(" {
+ if (HyperlinkEvent.EventType.ACTIVATED.equals(e.getEventType())) {
+ Desktop desktop = Desktop.getDesktop();
+ try {
+ desktop.browse(e.getURL().toURI());
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ });
+ }
+
+ return textPane;
+ }
+
private boolean feedbackBlocksContinuation(ValidationFeedback feedback) {
if (feedback == null || (!feedback.hasWarnings() && !feedback.hasErrors())) {
return false;
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/ScanTestUtils.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/ScanTestUtils.java
index db46f3d7..1b286158 100644
--- a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/ScanTestUtils.java
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/ScanTestUtils.java
@@ -17,6 +17,7 @@
******************************************************************************/
package org.ohdsi.whiterabbit.scan;
+import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -32,7 +33,9 @@
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.*;
+import java.util.function.BooleanSupplier;
import java.util.stream.Collectors;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.IntStream;
@@ -82,7 +85,7 @@ public boolean test() {
}
public static boolean scanValuesMatchReferenceValues(Map>> scanSheets, Map>> referenceSheets, DbType dbType) {
- assertEquals(scanSheets.size(), referenceSheets.size(), "Number of sheets does not match.");
+ assertEquals(referenceSheets.size(), scanSheets.size(), "Number of sheets does not match.");
List tabNames = new ArrayList<>(referenceSheets.keySet());
for (String tabName: tabNames) {
@@ -225,6 +228,18 @@ private static boolean matchTypeName(String type, String reference, DbType dbTyp
default:
throw new RuntimeException(String.format("Unsupported column type '%s' for DbType %s ", type, dbType.name()));
}
+ case BIGQUERY:
+ // Currently the bigquery verification on data types is rather permissive; this has to do with
+ // how the test tables were created: as CSV uploads, leading to only a few data types.
+ // As the main purpose of the bigquery tests is to verify that the JDBC diver is present
+ // and works, this is considered not a (real) problem.
+ switch (type) {
+ case "STRING": return reference.equals("character varying") || reference.equals("timestamp without time zone") || reference.equals("numeric") || reference.equals("integer");
+ case "INT64":
+ case "INTEGER": return reference.equals("integer") || reference.equals("numeric") || reference.equals("character varying");
+ default:
+ throw new RuntimeException(String.format("Unsupported column type '%s' for DbType %s ", type, dbType.name()));
+ }
default:
throw new RuntimeException("Unsupported DbType: " + dbType.name());
}
@@ -291,4 +306,69 @@ private static Map>> readXlsxAsStringValues(Path xlsx)
return sheets;
}
+
+ public static class PropertiesFileChecker implements BooleanSupplier {
+ private final String propertiesFileName;
+
+ public PropertiesFileChecker(String propertiesFileName) {
+ this.propertiesFileName = propertiesFileName;
+ }
+
+ @Override
+ public boolean getAsBoolean() {
+ String buildDirectory = System.getProperty("projectBuildDirectory");
+ Path propertiesFilePath = Paths.get(buildDirectory,"../..", propertiesFileName);
+ if (StringUtils.isNotEmpty(buildDirectory) && Files.exists(propertiesFilePath)) {
+ try {
+ loadSystemProperties(propertiesFilePath);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return true;
+ }
+ // check the endpoint here and return either true or false
+ return false;
+ }
+
+ private void loadSystemProperties(Path envVarFile) throws IOException {
+ Files.lines(envVarFile)
+ .map(line -> line.replaceAll("^export ", ""))
+ .map(line2 -> line2.split("=", 2))
+ .forEach(v -> System.setProperty(v[0], v[1]));
+ }
+ }
+
+ @FunctionalInterface
+ public interface ReaderInterface {
+ String getOrFail(String name);
+ }
+
+ public static class EnvironmentReader implements ScanTestUtils.ReaderInterface {
+ public String getOrFail(String name) {
+ return getEnvOrFail(name);
+ }
+ }
+ public static class PropertyReader implements ScanTestUtils.ReaderInterface {
+ public String getOrFail(String name) {
+ return getPropertyOrFail(name);
+ }
+ }
+
+ public static String getEnvOrFail(String name) {
+ String value = System.getenv(name);
+ if (StringUtils.isEmpty(value)) {
+ throw new RuntimeException(String.format("Environment variable '%s' is not set.", name));
+ }
+
+ return value;
+ }
+
+ public static String getPropertyOrFail(String name) {
+ String value = System.getProperty(name);
+ if (StringUtils.isEmpty(value)) {
+ throw new RuntimeException(String.format("System property '%s' is not set.", name));
+ }
+
+ return value;
+ }
}
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanBigQueryIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanBigQueryIT.java
new file mode 100644
index 00000000..b68f5783
--- /dev/null
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanBigQueryIT.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright 2023 Observational Health Data Sciences and Informatics & The Hyve
+ *
+ * This file is part of WhiteRabbit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package org.ohdsi.whiterabbit.scan;
+
+import org.junit.jupiter.api.Assumptions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import org.ohdsi.databases.RichConnection;
+import org.ohdsi.databases.configuration.DbSettings;
+import org.ohdsi.databases.configuration.DbType;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.nio.file.*;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class SourceDataScanBigQueryIT {
+
+ @BeforeAll
+ public static void startContainer() {
+ }
+
+ // Disabled: this test fails since the BigQuery JDBC jar is no longer included by default; but it could be handy when
+ // testing/debugging BigQuery issues, so it is left in place
+ //@Test
+ void testSourceDataScan(@TempDir Path tempDir) throws IOException, URISyntaxException {
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("bigquery.env"), "No BigQuery properties file present, skipping BigQuery test(s).");
+ Path outFile = tempDir.resolve("scanresult.xlsx");
+ URL referenceScanReport = SourceDataScanBigQueryIT.class.getClassLoader().getResource("scan_data/ScanReport-reference-v0.10.7-sql.xlsx");
+
+ SourceDataScan sourceDataScan = ScanTestUtils.createSourceDataScan();
+ DbSettings dbSettings = getTestDbSettings();
+
+ sourceDataScan.process(dbSettings, outFile.toString());
+
+ Files.copy(outFile, Paths.get("/var/tmp/scanresults-bigquery.xlsx"), StandardCopyOption.REPLACE_EXISTING);
+ assertTrue(ScanTestUtils.scanResultsSheetMatchesReference(outFile, Paths.get(referenceScanReport.toURI()), DbType.BIGQUERY));
+ }
+
+ private List getTableNames(DbSettings dbSettings) {
+ try (RichConnection richConnection = new RichConnection(dbSettings)) {
+ return richConnection.getTableNames(ScanTestUtils.getPropertyOrFail("BIGQUERY_DATASET") );
+ }
+ }
+
+ private DbSettings getTestDbSettings() {
+ // TODO get settings from bigquery.env file
+ DbSettings dbSettings = new DbSettings();
+ dbSettings.dbType = DbType.BIGQUERY;
+ dbSettings.sourceType = DbSettings.SourceType.DATABASE;
+ dbSettings.server = ScanTestUtils.getPropertyOrFail("BIGQUERY_PROJECT_ID");
+ dbSettings.user = ScanTestUtils.getPropertyOrFail("BIGQUERY_ACCOUNT");
+ dbSettings.password = ScanTestUtils.getPropertyOrFail("BIGQUERY_KEY_FILE");
+ dbSettings.tables = getTableNames(dbSettings);
+ dbSettings.database = ScanTestUtils.getPropertyOrFail("BIGQUERY_DATASET");
+ dbSettings.domain = "";
+ dbSettings.schema = "";
+
+ return dbSettings;
+ }
+}
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanOracleIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanOracleIT.java
index 6b046fe4..2f049169 100644
--- a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanOracleIT.java
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanOracleIT.java
@@ -17,8 +17,10 @@
******************************************************************************/
package org.ohdsi.whiterabbit.scan;
+import org.apache.commons.lang.StringUtils;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable;
import org.junit.jupiter.api.io.TempDir;
import org.ohdsi.databases.configuration.DbSettings;
import org.ohdsi.databases.configuration.DbType;
@@ -35,12 +37,17 @@
import java.util.*;
import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
class SourceDataScanOracleIT {
private final static String USER_NAME = "test_user";
private final static String SCHEMA_NAME = USER_NAME;
+ // The Oracle test container is somewhat is slow to start, and these tests can be configured to be skipped by
+ // setting the environment variable SKIP_ORACLE_TESTS to "true" (e.g. in a Github workflow)
+ private final static String SKIP_ORACLE_TESTS = "SKIP_ORACLE_TESTS";
+
/*
* Since the database is only read, setting it up once suffices.
*
@@ -51,22 +58,29 @@ class SourceDataScanOracleIT {
* for this data is know and could simply be copied instead of composed.
* Also, for the technical correctness of WhiteRabbit (does it open the database, get the table
* names and scan those tables), the actual nature of the source data does not matter.
+ *
*/
@Container
- public static OracleContainer oracleContainer = new OracleContainer("gvenzl/oracle-xe:11.2.0.2-slim-faststart")
- .withReuse(true)
- .usingSid()
- .withUsername(USER_NAME)
- .withPassword("test_password")
- .withDatabaseName("testDB")
- .withInitScript("scan_data/create_data_oracle.sql");
+ public static OracleContainer oracleContainer;
@BeforeAll
public static void startContainer() {
+ String skipOracleTests = System.getenv(SKIP_ORACLE_TESTS);
+ assumeTrue(!(StringUtils.isNotEmpty(skipOracleTests) && skipOracleTests.matches("true")),
+ String.format("Skipping Oracle tests, triggered by environment variable %s", SKIP_ORACLE_TESTS));
+
+ oracleContainer = new OracleContainer("gvenzl/oracle-xe:11.2.0.2-slim-faststart")
+ .withReuse(true)
+ .usingSid()
+ .withUsername(USER_NAME)
+ .withPassword("test_password")
+ .withDatabaseName("testDB")
+ .withInitScript("scan_data/create_data_oracle.sql");
oracleContainer.start();
}
@Test
+ @DisabledIfEnvironmentVariable(named = SKIP_ORACLE_TESTS, matches = "true")
public void connectToDatabase() {
// this is also implicitly tested by testSourceDataScan(), but having it fail separately helps identify problems quicker
DbSettings dbSettings = getTestDbSettings();
@@ -76,6 +90,7 @@ public void connectToDatabase() {
}
@Test
+ @DisabledIfEnvironmentVariable(named = SKIP_ORACLE_TESTS, matches = "true")
public void testGetTableNames() {
// this is also implicitly tested by testSourceDataScan(), but having it fail separately helps identify problems quicker
DbSettings dbSettings = getTestDbSettings();
@@ -83,6 +98,7 @@ public void testGetTableNames() {
assertEquals(2, tableNames.size());
}
@Test
+ @DisabledIfEnvironmentVariable(named = SKIP_ORACLE_TESTS, matches = "true")
void testSourceDataScan(@TempDir Path tempDir) throws IOException, URISyntaxException {
loadData();
Path outFile = tempDir.resolve("scanresult.xslx");
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeGuiIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeGuiIT.java
index 880c8c2f..63ac5918 100644
--- a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeGuiIT.java
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeGuiIT.java
@@ -18,7 +18,6 @@
package org.ohdsi.whiterabbit.scan;
import com.github.caciocavallosilano.cacio.ctc.junit.CacioTest;
-import org.assertj.swing.annotation.GUITest;
import org.assertj.swing.core.GenericTypeMatcher;
import org.assertj.swing.edt.GuiActionRunner;
import org.assertj.swing.finder.WindowFinder;
@@ -28,11 +27,9 @@
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.io.TempDir;
import org.ohdsi.databases.SnowflakeHandler.SnowflakeConfiguration;
-import org.ohdsi.databases.SnowflakeTestUtils;
import org.ohdsi.databases.configuration.DbType;
import org.ohdsi.whiterabbit.Console;
import org.ohdsi.whiterabbit.WhiteRabbitMain;
@@ -71,9 +68,10 @@ public static void setupOnce() {
@BeforeEach
public void onSetUp() {
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("snowflake.env"), "Snowflake system properties file not available");
try {
testContainer = createPythonContainer();
- prepareTestData(testContainer);
+ prepareSnowflakeTestData(testContainer);
} catch (IOException | InterruptedException e) {
throw new RuntimeException("Creating python container failed.");
}
@@ -87,7 +85,7 @@ public void onSetUp() {
@ExtendWith(GUITestExtension.class)
@Test
void testConnectionAndSourceDataScan(@TempDir Path tempDir) throws IOException, URISyntaxException {
- Assumptions.assumeTrue(new SnowflakeTestUtils.SnowflakeSystemPropertiesFileChecker(), "Snowflake system properties file not available");
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("snowflake.env"), "Snowflake system properties file not available");
URL referenceScanReport = TestSourceDataScanCsvGui.class.getClassLoader().getResource("scan_data/ScanReport-reference-v0.10.7-sql.xlsx");
Path personCsv = Paths.get(TestSourceDataScanCsvGui.class.getClassLoader().getResource("scan_data/person-no-header.csv").toURI());
Path costCsv = Paths.get(TestSourceDataScanCsvGui.class.getClassLoader().getResource("scan_data/cost-no-header.csv").toURI());
@@ -110,12 +108,12 @@ protected boolean isMatching(JDialog frame) {
// fill in all the required values and try again
assertEquals(SnowflakeConfiguration.TOOLTIP_SNOWFLAKE_ACCOUNT, window.textBox(SnowflakeConfiguration.SNOWFLAKE_ACCOUNT).target().getToolTipText());
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_ACCOUNT).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_ACCOUNT"));
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_USER).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_USER"));
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_PASSWORD).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_PASSWORD"));
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_WAREHOUSE).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_WAREHOUSE"));
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_DATABASE).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_DATABASE"));
- window.textBox(SnowflakeConfiguration.SNOWFLAKE_SCHEMA).setText(SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_SCHEMA"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_ACCOUNT).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_ACCOUNT"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_USER).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_USER"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_PASSWORD).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_PASSWORD"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_WAREHOUSE).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_WAREHOUSE"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_DATABASE).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_DATABASE"));
+ window.textBox(SnowflakeConfiguration.SNOWFLAKE_SCHEMA).setText(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_SCHEMA"));
// use the "Test connection" button
window.button(WhiteRabbitMain.LABEL_TEST_CONNECTION).click();
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeIT.java
index 8478adc6..b9dac4b9 100644
--- a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeIT.java
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceDataScanSnowflakeIT.java
@@ -17,14 +17,11 @@
******************************************************************************/
package org.ohdsi.whiterabbit.scan;
-import org.apache.commons.lang.StringUtils;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.io.TempDir;
import org.ohdsi.databases.configuration.DbType;
-import org.ohdsi.databases.SnowflakeTestUtils;
import org.ohdsi.whiterabbit.WhiteRabbitMain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,7 +30,6 @@
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.utility.DockerImageName;
-import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
@@ -56,26 +52,18 @@ public class SourceDataScanSnowflakeIT {
@BeforeEach
public void setUp() {
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("snowflake.env"), "Snowflake system properties file not available");
try {
testContainer = createPythonContainer();
- prepareTestData(testContainer);
+ prepareSnowflakeTestData(testContainer);
} catch (IOException | InterruptedException e) {
throw new RuntimeException("Creating python container failed.");
}
}
- //@Test
- void testWarnWhenRunningWithoutSnowflakeConfigured() {
- String snowflakeWrTestAccunt = System.getenv(SNOWFLAKE_ACCOUNT_ENVIRONMENT_VARIABLE);
- assertFalse(StringUtils.isEmpty(snowflakeWrTestAccunt) && StringUtils.isEmpty(System.getProperty("ohdsi.org.whiterabbit.skip_snowflake_tests")),
- String.format("\nTest class %s is being run without a Snowflake test instance configured.\n" +
- "This is NOT a valid verification run.", SourceDataScanSnowflakeIT.class.getName()));
- }
-
@Test
- //@EnabledIfEnvironmentVariable(named = SNOWFLAKE_ACCOUNT_ENVIRONMENT_VARIABLE, matches = ".+")
void testProcessSnowflakeFromIni(@TempDir Path tempDir) throws URISyntaxException, IOException {
- Assumptions.assumeTrue(new SnowflakeTestUtils.SnowflakeSystemPropertiesFileChecker(), "Snowflake system properties file not available");
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("snowflake.env"), "Snowflake system properties file not available");
Charset charset = StandardCharsets.UTF_8;
Path iniFile = tempDir.resolve("snowflake.ini");
URL iniTemplate = SourceDataScanSnowflakeIT.class.getClassLoader().getResource("scan_data/snowflake.ini.template");
@@ -83,26 +71,26 @@ void testProcessSnowflakeFromIni(@TempDir Path tempDir) throws URISyntaxExceptio
assert iniTemplate != null;
String content = new String(Files.readAllBytes(Paths.get(iniTemplate.toURI())), charset);
content = content.replace("%WORKING_FOLDER%", tempDir.toString())
- .replace("%SNOWFLAKE_ACCOUNT%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_ACCOUNT"))
- .replace("%SNOWFLAKE_USER%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_USER"))
- .replace("%SNOWFLAKE_PASSWORD%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_PASSWORD"))
- .replace("%SNOWFLAKE_WAREHOUSE%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_WAREHOUSE"))
- .replace("%SNOWFLAKE_DATABASE%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_DATABASE"))
- .replace("%SNOWFLAKE_SCHEMA%", SnowflakeTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_SCHEMA"));
+ .replace("%SNOWFLAKE_ACCOUNT%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_ACCOUNT"))
+ .replace("%SNOWFLAKE_USER%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_USER"))
+ .replace("%SNOWFLAKE_PASSWORD%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_PASSWORD"))
+ .replace("%SNOWFLAKE_WAREHOUSE%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_WAREHOUSE"))
+ .replace("%SNOWFLAKE_DATABASE%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_DATABASE"))
+ .replace("%SNOWFLAKE_SCHEMA%", ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_SCHEMA"));
Files.write(iniFile, content.getBytes(charset));
WhiteRabbitMain wrMain = new WhiteRabbitMain(true, new String[]{"-ini", iniFile.toAbsolutePath().toString()});
assert referenceScanReport != null;
assertTrue(ScanTestUtils.scanResultsSheetMatchesReference(tempDir.resolve("ScanReport.xlsx"), Paths.get(referenceScanReport.toURI()), DbType.SNOWFLAKE));
}
- static void prepareTestData(GenericContainer> container) throws IOException, InterruptedException {
- SnowflakeTestUtils.SnowflakeSystemPropertiesFileChecker checker = new SnowflakeTestUtils.SnowflakeSystemPropertiesFileChecker();
+ static void prepareSnowflakeTestData(GenericContainer> container) throws IOException, InterruptedException {
+ ScanTestUtils.PropertiesFileChecker checker = new ScanTestUtils.PropertiesFileChecker("snowflake.env");
if (checker.getAsBoolean()) {
- prepareTestData(container, new SnowflakeTestUtils.PropertyReader());
+ prepareSnowflakeTestData(container, new ScanTestUtils.PropertyReader());
}
}
- static void prepareTestData(GenericContainer> container, SnowflakeTestUtils.ReaderInterface reader) throws IOException, InterruptedException {
+ static void prepareSnowflakeTestData(GenericContainer> container, ScanTestUtils.ReaderInterface reader) throws IOException, InterruptedException {
// snowsql is used for initializing the database
// add some packages needed for the installation of snowsql
@@ -152,7 +140,8 @@ private static void execAndVerifyCommand(GenericContainer> container, int expe
logger.error("stderr: {}", result.getStderr());
// hide the password, if present, so it won't appear in logs (pragmatic)
String message = ("Command failed: " + String.join(" ", command))
- .replace(SnowflakeTestUtils.getEnvOrFail("SNOWFLAKE_WR_TEST_PASSWORD"), "xxxxx");
+ .replace(ScanTestUtils.getPropertyOrFail("SNOWFLAKE_WR_TEST_PASSWORD"), "*****")
+ .replace(ScanTestUtils.getEnvOrFail("SNOWFLAKE_WR_TEST_PASSWORD"), "*****");
assertEquals(expectedExitValue, result.getExitCode(), message);
}
}
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanSqlServerIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanSqlServerIT.java
new file mode 100644
index 00000000..ec972997
--- /dev/null
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanSqlServerIT.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Copyright 2023 Observational Health Data Sciences and Informatics & The Hyve
+ *
+ * This file is part of WhiteRabbit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package org.ohdsi.whiterabbit.scan;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.ohdsi.databases.RichConnection;
+import org.ohdsi.databases.configuration.DbSettings;
+import org.ohdsi.databases.configuration.DbType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testcontainers.containers.MSSQLServerContainer;
+
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+/*
+ All this test does is:
+ - connect to the database
+ - get a list of tables available and verify that there are more than 0
+ No actual WhiteRabbit scan of the database is performed.
+ */
+class SourceTableScanSqlServerIT {
+ Logger logger = LoggerFactory.getLogger(SourceTableScanSqlServerIT.class);
+ private static MSSQLServerContainer> mssqlserver;
+
+ @BeforeAll
+ static void setUp() {
+ mssqlserver = new MSSQLServerContainer<>()
+ .acceptLicense()
+ .withEnv("MSSQL_PID", "Developer")
+ .withExposedPorts(1433);
+
+ mssqlserver.start();
+ }
+
+ @Test
+ void testGetTableNames() {
+ DbSettings dbSettings = getTestDbSettings();
+ List tableNames = getTableNames(dbSettings);
+ assertFalse(tableNames.isEmpty(), "Some tables were expected to exist");
+ }
+
+ private List getTableNames(DbSettings dbSettings) {
+ try (RichConnection richConnection = new RichConnection(dbSettings)) {
+ return richConnection.getTableNames(dbSettings.database);
+ }
+ }
+
+ private DbSettings getTestDbSettings() {
+ DbSettings dbSettings = new DbSettings();
+ dbSettings.dbType = DbType.SQL_SERVER;
+ dbSettings.sourceType = DbSettings.SourceType.DATABASE;
+ dbSettings.server = mssqlserver.getHost() + ":" + mssqlserver.getFirstMappedPort();
+ dbSettings.user = mssqlserver.getUsername();
+ dbSettings.password = mssqlserver.getPassword();
+ dbSettings.database = ""; // it will return some system tables, which is goo enough for this test
+ dbSettings.domain = "";
+ dbSettings.schema = "";
+
+ return dbSettings;
+ }
+}
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanTeradataIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanTeradataIT.java
new file mode 100644
index 00000000..f14ab281
--- /dev/null
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/SourceTableScanTeradataIT.java
@@ -0,0 +1,126 @@
+/*******************************************************************************
+ * Copyright 2023 Observational Health Data Sciences and Informatics & The Hyve
+ *
+ * This file is part of WhiteRabbit
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************/
+package org.ohdsi.whiterabbit.scan;
+
+import org.junit.jupiter.api.Test;
+import org.ohdsi.databases.RichConnection;
+import org.ohdsi.databases.configuration.DbSettings;
+import org.ohdsi.databases.configuration.DbType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/*
+ This test class is intended to verify an update to the Teradata JDBC driver, as it can only be tested
+ with a local test instance of Teradata that can be obtained from https://downloads.teradata.com/download/database/teradata-express/vmware
+
+ When this test fails, that should be due to a new/untested version of the Teradata JDBC driver. When that happens,
+ test with the instructions below, and after success, include the new version in the VALIDATED_VERSIONS List below.
+
+ A VirtualBox appliance containing Teradata Vantage 17.20 was used for the most recent validation.
+ Global steps to perform before running this test:
+ 1. Download the Vantage Express 17.20 VirtualBox Open Virtual Appliance (OVA) (you may need to register)
+ 2. Import the downloaded file into VirtualBox (download & install VirtualBox first if needed)
+ 3. Start the appliance and wait for the database to become available
+ See here for instructions, including how to verify that the database is available: https://quickstarts.teradata.com/getting.started.vbox.html
+
+ Then, enable this test and run it. The default credentials setup by getTestDBSettings() are expected to work.
+
+ All this test does is:
+ - connect to the database
+ - get a list of tables available and verify that there are more than 0
+ No actual WhiteRabbit scan of the database is performed.
+ */
+class SourceTableScanTeradataIT {
+
+ private final static List VALIDATED_VERSIONS = Arrays.asList("16.20.00.13", "17.20.00.15", "20.00.00.16");
+
+ Logger logger = LoggerFactory.getLogger(SourceTableScanTeradataIT.class);
+
+ // Teradata does not allow redistribution of the JDBC driver, this test can only be run for local test purposes
+ //@Test
+ void testGetTableNames() throws ClassNotFoundException {
+ if (!VALIDATED_VERSIONS.contains(getVersion())) {
+ logger.warn("Version {} of Teradata JDBC driver was not tested before, please make sure a local instance of Teradata is available," +
+ "See instructions in the class that generates this warning.", getVersion());
+ DbSettings dbSettings = getTestDbSettings();
+ List tableNames = getTableNames(dbSettings);
+ assertFalse(tableNames.isEmpty(), "Some tables were expected to exist");
+ }
+ }
+
+ private List getTableNames(DbSettings dbSettings) {
+ try (RichConnection richConnection = new RichConnection(dbSettings)) {
+ return richConnection.getTableNames(dbSettings.database);
+ }
+ }
+
+ private DbSettings getTestDbSettings() {
+ DbSettings dbSettings = new DbSettings();
+ dbSettings.dbType = DbType.TERADATA;
+ dbSettings.sourceType = DbSettings.SourceType.DATABASE;
+ dbSettings.server = "127.0.0.1";
+ dbSettings.user = "dbc";
+ dbSettings.password = "dbc";
+ dbSettings.database = "dbc";
+ dbSettings.domain = "";
+ dbSettings.schema = "";
+
+ return dbSettings;
+ }
+
+ private synchronized String getVersion() throws ClassNotFoundException {
+ String version = null;
+
+ // try to load from maven properties first
+ try {
+ Properties p = new Properties();
+ InputStream is = getClass().getResourceAsStream("/META-INF/maven/com.teradata.jdbc/terajdbc/pom.properties");
+ if (is != null) {
+ p.load(is);
+ version = p.getProperty("version", "");
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+
+ // fallback to using Java API
+ if (version == null) {
+ Package aPackage = Class.forName("com.teradata.jdbc.TeraDriver").getPackage();
+ if (aPackage != null) {
+ version = aPackage.getImplementationVersion();
+ if (version == null) {
+ version = aPackage.getSpecificationVersion();
+ }
+ }
+ }
+
+ if (version == null) {
+ // we could not compute the version so use a blank
+ version = "";
+ }
+
+ return version;
+ }
+}
diff --git a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/VerifyDistributionIT.java b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/VerifyDistributionIT.java
index 846679ce..ed4a15eb 100644
--- a/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/VerifyDistributionIT.java
+++ b/whiterabbit/src/test/java/org/ohdsi/whiterabbit/scan/VerifyDistributionIT.java
@@ -17,12 +17,12 @@
******************************************************************************/
package org.ohdsi.whiterabbit.scan;
+import org.apache.commons.lang.StringUtils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Assumptions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.ohdsi.databases.DBConnector;
-import org.ohdsi.databases.SnowflakeTestUtils;
import org.ohdsi.databases.configuration.DbType;
import org.testcontainers.containers.GenericContainer;
import org.testcontainers.containers.Container.ExecResult;
@@ -42,7 +42,7 @@
/**
* Intent: "deploy" the distributed application in a docker container (TestContainer) containing a Java runtime
* of a specified version, and runs a test of WhiteRabbit that aim to verify that the distribution is complete,
- * i.e. no dependencies are missing. A data for a scan on csv files is used to run whiterabbit.
+ * i.e. no dependencies are missing. A data for a scan on csv files is used to run whiteRabbit.
*
* Note that this does not test any of the JDBC driver dependencies, unless these databases are actually used.
*/
@@ -70,7 +70,7 @@ void testDistributionWithJava17() throws IOException, URISyntaxException, Interr
@Test
void verifyAllJDBCDriversLoadable() throws IOException, InterruptedException {
- try (GenericContainer> javaContainer = createJavaContainer("eclipse-temurin:11")) {
+ try (GenericContainer> javaContainer = createJavaContainer("eclipse-temurin:17")) {
javaContainer.start();
ExecResult execResult = javaContainer.execInContainer("sh", "-c",
String.format("cd %s/repo; java -classpath '*' org.ohdsi.databases.DBConnector", APPDIR_IN_CONTAINER));
@@ -127,10 +127,10 @@ void verifySnowflakeFailureInJava17() throws IOException, URISyntaxException, In
void runDistributionWithSnowflake(String javaImageName, String javaOpts) throws IOException, InterruptedException, URISyntaxException {
// test only run when there are settings available for Snowflake; otherwise it should be skipped
- Assumptions.assumeTrue(new SnowflakeTestUtils.SnowflakeSystemPropertiesFileChecker(), "Snowflake system properties file not available");
- SnowflakeTestUtils.PropertyReader reader = new SnowflakeTestUtils.PropertyReader();
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("snowflake.env"), "Snowflake system properties file not available");
+ ScanTestUtils.PropertyReader reader = new ScanTestUtils.PropertyReader();
try (GenericContainer> testContainer = createPythonContainer()) {
- prepareTestData(testContainer, reader);
+ prepareSnowflakeTestData(testContainer, reader);
testContainer.stop();
try (GenericContainer> javaContainer = createJavaContainer(javaImageName)) {
@@ -168,6 +168,88 @@ void runDistributionWithSnowflake(String javaImageName, String javaOpts) throws
}
}
+ // intent of this test: verify that downloading and unzipping the BigQuery JDBC dependencies
+ // works as intended.
+ // The license of the BigQuery JDBC jar does not allow distribution; users who wish to use
+ // bigquery have to download and install the dependencies themselves.
+ // This test verifies that an attempt to run WhiteRabbit for BigQuery fails if the jar is
+ // not installed, then install it, and repeats the test, expecting success.
+ //
+ // PLEASE NOTE that this test can only run if a valid json file with application default credentials for gcloud
+ // is provided through a file `bigquery.env` in the root of the project.
+ @Test
+ void runDistributionWithBigQuery() throws IOException, InterruptedException, URISyntaxException {
+ // test only run when there are settings available for BigQuery; otherwise it should be skipped
+ String bigQueryDriverUrl = "https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery42_1.5.2.1005.zip";
+ Assumptions.assumeTrue(new ScanTestUtils.PropertiesFileChecker("bigquery.env"), "BigQuery system properties file not available");
+ ScanTestUtils.PropertyReader reader = new ScanTestUtils.PropertyReader();
+ try (GenericContainer> testContainer = createPythonContainer()) {
+ testContainer.stop();
+
+ try (GenericContainer> javaContainer = createJavaContainer("eclipse-temurin:17")) {
+ javaContainer.start();
+ Charset charset = StandardCharsets.UTF_8;
+ Path iniFile = tempDir.resolve("bigquery.ini");
+ URL iniTemplate = VerifyDistributionIT.class.getClassLoader().getResource("scan_data/bigquery.ini.template");
+ URL referenceScanReport = SourceDataScanSnowflakeIT.class.getClassLoader().getResource("scan_data/ScanReport-reference-v0.10.7-sql.xlsx");
+ assert iniTemplate != null;
+ String content = new String(Files.readAllBytes(Paths.get(iniTemplate.toURI())), charset);
+ content = content.replace("%WORKING_FOLDER%", WORKDIR_IN_CONTAINER)
+ .replace("%SERVER_LOCATION%", reader.getOrFail("BIGQUERY_PROJECT_ID"))
+ .replace("%USER_NAME%", "")
+ .replace("%PASSWORD%", "/whiterabbit/application_default_credentials.json")
+ .replace("%DATABASE_NAME%", reader.getOrFail("BIGQUERY_DATASET"));
+ Files.write(iniFile, content.getBytes(charset));
+ Files.copy(Paths.get(reader.getOrFail("BIGQUERY_KEY_FILE")), Paths.get(tempDir.toString(), "application_default_credentials.json"));
+ javaContainer.copyFileToContainer(MountableFile.forHostPath(tempDir), WORKDIR_IN_CONTAINER);
+
+ // verify that the distribution of whiterabbit has been generated and is available inside the container
+ ExecResult execResult = javaContainer.execInContainer("sh", "-c", String.format("ls %s", APPDIR_IN_CONTAINER));
+ assertTrue(execResult.getStdout().contains("repo"), "WhiteRabbit distribution is not accessible inside container");
+
+ // make the gcloud credentials available in the right location
+ execResult = javaContainer.execInContainer("sh", "-c",
+ "mkdir -p /root/.config/gcloud; cp /whiterabbit/application_default_credentials.json /root/.config/gcloud/;");
+
+ // run whiteRabbit and verify failure because the BigQuery JDBC jar is not present
+ execResult = javaContainer.execInContainer("sh", "-c",
+ String.format("/app/bin/whiteRabbit -ini %s/bigquery.ini", WORKDIR_IN_CONTAINER));
+ assertNotEquals(0, execResult.getExitCode());
+ assertTrue(execResult.getStderr().contains("java.lang.RuntimeException: Cannot find Simba GoogleBigQuery JDBC Driver class"));
+
+ // install the BigQuery JDBC jar, run whiteRabbit and verify success
+ installBigQueryJDBCJar(bigQueryDriverUrl, javaContainer);
+ execResult = javaContainer.execInContainer("sh", "-c",
+ String.format("/app/bin/whiteRabbit -ini %s/bigquery.ini", WORKDIR_IN_CONTAINER));
+ assertEquals(0, execResult.getExitCode());
+ assertTrue(execResult.getStdout().contains("Started new scan of 2 tables..."));
+ assertTrue(execResult.getStdout().contains("Scanning table cost"));
+ assertTrue(execResult.getStdout().contains("Scanning table person"));
+ assertTrue(execResult.getStdout().contains("Scan report generated: /whiterabbit/ScanReport.xlsx"));
+
+ javaContainer.copyFileFromContainer("/whiterabbit/ScanReport.xlsx", tempDir.resolve("ScanReport.xlsx").toString());
+
+ assertTrue(ScanTestUtils.scanResultsSheetMatchesReference(tempDir.resolve("ScanReport.xlsx"), Paths.get(referenceScanReport.toURI()), DbType.BIGQUERY));
+ }
+ }
+ }
+
+ private void installBigQueryJDBCJar(String bigQueryDriverUrl, GenericContainer> javaContainer) throws IOException, InterruptedException {
+ if (StringUtils.isNotEmpty(bigQueryDriverUrl)) {
+ String[] parts = bigQueryDriverUrl.split("/");
+ String command =
+ "apt -qq -y update; apt -qq -y install unzip; " +
+ "cd /app/repo; " +
+ "wget " + bigQueryDriverUrl + "; " +
+ "unzip -qq -o " + parts[parts.length - 1] + ";";
+ ExecResult execResult = javaContainer.execInContainer("sh", "-c", command);
+ if (execResult.getExitCode() != 0) {
+ System.out.println("stdout: " + execResult.getStdout());
+ System.out.println("stderr: " + execResult.getStderr());
+ }
+ }
+ }
+
private void testWhiteRabbitInContainer(String imageName, String expectedVersion) throws IOException, InterruptedException, URISyntaxException {
try (GenericContainer> javaContainer = createJavaContainer(imageName)) {
javaContainer.start();
diff --git a/whiterabbit/src/test/resources/scan_data/bigquery.ini.template b/whiterabbit/src/test/resources/scan_data/bigquery.ini.template
new file mode 100644
index 00000000..1f791572
--- /dev/null
+++ b/whiterabbit/src/test/resources/scan_data/bigquery.ini.template
@@ -0,0 +1,14 @@
+WORKING_FOLDER = %WORKING_FOLDER% # Path to the folder where all output will be written
+DATA_TYPE = BigQuery # "Delimited text files", "MySQL", "Oracle", "SQL Server", "PostgreSQL", "MS Access", "Redshift", "BigQuery", "Azure", "Teradata", "SAS7bdat"
+SERVER_LOCATION = %SERVER_LOCATION% # Name or address of the server. For Postgres, add the database name
+USER_NAME = %USER_NAME% # User name for the database
+PASSWORD = %PASSWORD% # Password for the database
+DATABASE_NAME = %DATABASE_NAME% # Name of the data schema used
+DELIMITER = , # The delimiter that separates values
+TABLES_TO_SCAN = * # Comma-delimited list of table names to scan. Use "*" (asterix) to include all tables in the database
+SCAN_FIELD_VALUES = yes # Include the frequency of field values in the scan report? "yes" or "no"
+MIN_CELL_COUNT = 5 # Minimum frequency for a field value to be included in the report
+MAX_DISTINCT_VALUES = 1000 # Maximum number of distinct values per field to be reported
+ROWS_PER_TABLE = 100000 # Maximum number of rows per table to be scanned for field values
+CALCULATE_NUMERIC_STATS = no # Include average, standard deviation and quartiles in the scan report? "yes" or "no"
+NUMERIC_STATS_SAMPLER_SIZE = 0 # Maximum number of rows used to calculate numeric statistics