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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@ __pycache__
SimpleBenchmarkApp/src/main/java/com/google/cloud/App.java
.flattened-pom.xml
# Local Test files
*ITLocalTest.java
*ITLocalTest.java

# JDBC-specific files
google-cloud-bigquery-jdbc/drivers/
google-cloud-bigquery-jdbc/jacoco*
21 changes: 21 additions & 0 deletions google-cloud-bigquery-jdbc/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM gcr.io/cloud-devrel-public-resources/java11

ENV JDBC_DOCKER_ENV=true
RUN apt-get update && apt-get install -y zip && rm -rf /var/lib/apt/lists/*

RUN mkdir /tst
COPY ./pom.xml /src/pom.xml
COPY ./java.header /src/java.header
COPY ./license-checks.xml /src/license-checks.xml
COPY ./google-cloud-bigquery-jdbc/pom.xml /src/google-cloud-bigquery-jdbc/pom.xml

COPY ./google-cloud-bigquery /src/google-cloud-bigquery
COPY ./google-cloud-bigquery-bom /src/google-cloud-bigquery-bom


WORKDIR /src
RUN mvn install -DskipTests

WORKDIR /src/google-cloud-bigquery-jdbc

ENTRYPOINT []
140 changes: 140 additions & 0 deletions google-cloud-bigquery-jdbc/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
CONTAINER_NAME=jdbc
PACKAGE_DESTINATION=$(PWD)/drivers
SRC="$(PWD)/.."
skipSurefire ?= true

# no indendation for ifndef\endif due to their evaluation before execution
.check-env: |
ifndef GOOGLE_APPLICATION_CREDENTIALS
$(error GOOGLE_APPLICATION_CREDENTIALS is required to run tests)
endif

install:
mvn clean install

clean:
mvn clean

lint:
mvn com.spotify.fmt:fmt-maven-plugin:format

unittest: |
mvn -B -ntp \
-DtrimStackTrace=false \
-Dclirr.skip=true \
-Denforcer.skip=true \
-Dtest=$(test) \
test

# Important: By default, this command will skip unittests.
# To include unit tests, run: make integration-test skipSurefire=false
integration-test: .check-env
mvn -B -ntp \
-Penable-integration-tests \
-DtrimStackTrace=false \
-DskipSurefire=$(skipSurefire) \
-Dclirr.skip=true \
-Denforcer.skip=true \
-Dit.failIfNoSpecifiedTests=false \
-Dit.test=$(test) \
integration-test

unit-test-coverage:
$(MAKE) unittest
mvn -B -ntp jacoco:report
BUILD_DIR=$$(mvn -B -ntp help:evaluate -Dexpression=project.build.directory -q -DforceStdout); \
cd $$BUILD_DIR/site && zip -r $$OLDPWD/jacoco-unittests.zip jacoco && cd $$OLDPWD

full-coverage: .check-env
$(MAKE) integration-test skipSurefire=false test=ITBigQueryJDBCTest,ITNightlyBigQueryTest
mvn -B -ntp jacoco:report
BUILD_DIR=$$(mvn -B -ntp help:evaluate -Dexpression=project.build.directory -q -DforceStdout); \
cd $$BUILD_DIR/site && zip -r $$OLDPWD/jacoco-full.zip jacoco && cd $$OLDPWD

package:
mvn clean package \
-DincludeScope=runtime \
-Dmaven.test.skip=true
mvn dependency:copy-dependencies \
-DincludeScope=runtime
${MAKE} generate-dependency-list

package-all-dependencies:
mvn package \
-DincludeScope=runtime \
-Dmaven.test.skip=true \
-P=release-all-dependencies

package-all-dependencies-shaded:
mvn package \
-DincludeScope=runtime \
-Dmaven.test.skip=true \
-P=release-all-dependencies,release-all-dependencies-shaded

generate-dependency-list:
mvn -B dependency:list \
-f pom.xml \
-DincludeScope=runtime | grep :jar: | sed -E "s/^.* ([^: ]+):([^:]+):([^:]+):([^:]+).*/<dependency><groupId>\1<\/groupId><artifactId>\2<\/artifactId><version>\4<\/version><\/dependency>/g" > dependencies.txt

# Commands for dockerized environments
.docker-run: |
docker run -it \
-v $(GOOGLE_APPLICATION_CREDENTIALS):/auth/application_creds.json \
-v "$(GOOGLE_APPLICATION_CREDENTIALS).p12":/auth/application_creds.p12 \
-e "GOOGLE_APPLICATION_CREDENTIALS=/auth/application_creds.json" \
-v $(SRC):/src \
-e "SA_EMAIL=test_email" \
-e "SA_SECRET=/auth/application_creds.json" \
-e "SA_SECRET_P12=/auth/application_creds.p12" \
$(CONTAINER_NAME) $(args)

docker-build:
docker build -t $(CONTAINER_NAME) -f Dockerfile ..

docker-session:
$(MAKE) .docker-run args="bash"

docker-package-all-dependencies: docker-build
mkdir -p $(PACKAGE_DESTINATION)
docker run \
-v $(SRC):/src \
-v $(PACKAGE_DESTINATION):/pkg \
$(CONTAINER_NAME) \
sh -c "make package-all-dependencies && \
cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /pkg && \
rm -f /pkg/*tests.jar"

docker-package-all-dependencies-shaded: docker-build
mkdir -p $(PACKAGE_DESTINATION)
docker run \
-v $(SRC):/src \
-v $(PACKAGE_DESTINATION):/pkg \
$(CONTAINER_NAME) \
sh -c "make package-all-dependencies-shaded && \
cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /pkg && \
rm -f /pkg/*tests.jar"

docker-package: docker-build
mkdir -p $(PACKAGE_DESTINATION)
docker run \
-v $(SRC):/src \
-v $(PACKAGE_DESTINATION):/pkg \
$(CONTAINER_NAME) \
sh -c "make package && \
mkdir -p /tmp/package && \
cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /tmp/package && \
rm -f /pkg/*tests.jar && \
cp --no-preserve=ownership dependencies.txt /tmp/package && \
rm dependencies.txt && \
cp --no-preserve=ownership /mvn/test-target/dependency/*.jar /tmp/package && \
zip -j -r /pkg/google-cloud-bigquery-jdbc-$$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout).zip /tmp/package"

docker-unittest: |
$(MAKE) .docker-run args="make unittest test=$(test)"

docker-integration-test: .check-env
$(MAKE) .docker-run args="make integration-test test=$(test) skipSurefire=$(skipSurefire)"

docker-coverage:
$(MAKE) .docker-run args="make unit-test-coverage"
$(MAKE) .docker-run args="make full-coverage"
92 changes: 3 additions & 89 deletions google-cloud-bigquery-jdbc/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquery-jdbc</artifactId>
<version>0.1.0</version>
<version>0.1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>BigQuery JDBC</name>
<url>https://github.com/googleapis/java-bigquery-jdbc</url>
Expand Down Expand Up @@ -60,8 +60,8 @@

<parent>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquery-jdbc-parent</artifactId>
<version>0.1.0</version>
<artifactId>google-cloud-bigquery-parent</artifactId>
<version>2.57.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-bigquery:current} -->
</parent>
<dependencies>
<dependency>
Expand All @@ -72,72 +72,6 @@
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-bigquerystorage</artifactId>
</dependency>
<dependency>
<groupId>com.google.api</groupId>
<artifactId>api-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-vector</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-core</artifactId>
</dependency>
<dependency>
<groupId>com.google.api</groupId>
<artifactId>gax</artifactId>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-credentials</artifactId>
</dependency>

<!-- Dependencies for Arrow RS -->
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.arrow</groupId>
<artifactId>arrow-memory-netty</artifactId>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
</dependency>
<dependency>
<groupId>com.google.api.grpc</groupId>
<artifactId>proto-google-cloud-bigquerystorage-v1</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.core5</groupId>
<artifactId>httpcore5</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents.client5</groupId>
<artifactId>httpclient5</artifactId>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client-apache-v5</artifactId>
Expand All @@ -152,26 +86,6 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-core-http</artifactId>
</dependency>
<dependency>
<groupId>com.google.api</groupId>
<artifactId>gax-grpc</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-api</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty-shaded</artifactId>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-core</artifactId>
</dependency>
<!-- Test Dependencies -->
<dependency>
<groupId>com.google.truth</groupId>
Expand Down
Loading