diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index f73a33e39..84186a48a 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -26,7 +26,7 @@ on: driver: description: "Driver version" required: true - default: "0.3.1-SNAPSHOT" + default: "0.3.2-SNAPSHOT" options: description: "Benchmark options" required: true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c47a3ad1b..9ade21eba 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [8, 11, 15] + java: [8, 11, 17] # most recent LTS releases as well as latest stable builds clickhouse: ["21.3", "21.8", "latest"] fail-fast: false @@ -59,4 +59,4 @@ jobs: ${{ runner.os }}-build- - name: Build with Maven run: | - mvn --batch-mode --update-snapshots -DclickhouseVersion=${{ matrix.clickhouse }} verify + mvn --batch-mode --update-snapshots -Drelease -DclickhouseVersion=${{ matrix.clickhouse }} verify diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f003027ef..73c72379b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: version: description: "Release version" required: true - default: "0.3.1-SNAPSHOT" + default: "0.3.2-SNAPSHOT" jobs: release: diff --git a/.gitignore b/.gitignore index 2b66649b1..3109e7d25 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ -*.class +# MacOS +.DS_Store -# Package Files # +# Java Files +*.class *.jar *.war *.ear @@ -30,6 +32,7 @@ target/ # Generated files .flattened-pom.xml +dependency-reduced-pom.xml **/parser/*CharStream.java **/parser/ClickHouseSqlParser.java **/parser/ClickHouseSqlParserConstants.java @@ -42,3 +45,6 @@ profile.html # Shell scripts *.sh + +# test configuration +**/test/resources/test.properties diff --git a/third-party-libraries/io.grpc/pom.xml b/third-party-libraries/io.grpc/pom.xml new file mode 100644 index 000000000..35e0305ba --- /dev/null +++ b/third-party-libraries/io.grpc/pom.xml @@ -0,0 +1,154 @@ + + + 4.0.0 + + + com.clickhouse + third-party-libraries + 1.0.0 + + + io.grpc + ${grpc.version} + Repackaged grpc-java for JPMS support + A Java modules compatible re-packaging of grpc-java + + + + + io.grpc + grpc-api + + + io.grpc + grpc-core + + + com.google.code.gson + gson + + + + + io.grpc + grpc-context + + + io.grpc + grpc-netty-shaded + provided + + + io.grpc + grpc-okhttp + provided + + + io.grpc + grpc-protobuf + + + io.grpc + grpc-stub + + + io.opencensus + opencensus-api + + + io.opencensus + opencensus-impl + + + io.opencensus + opencensus-contrib-grpc-metrics + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + io/grpc/**/*.class + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + shade + package + + shade + + + false + true + false + true + + + *:* + + module-info.class + META-INF/MANIFEST.MF + android/** + com/lmax/** + google/** + io/perfmark/** + org/** + javax/** + + + + + + + + + + + + + + org.moditect + moditect-maven-plugin + + + add-module-infos + package + + add-module-info + + + true + + src/main/java/module-info.java + + + + + + + + \ No newline at end of file diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java new file mode 100644 index 000000000..b2ad3e33b --- /dev/null +++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/LoadBalancerProvider.java @@ -0,0 +1,13 @@ +package io.grpc; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class LoadBalancerProvider { + /** + * Default constructor. + */ + public LoadBalancerProvider() { + // dummy constructor + } +} diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java new file mode 100644 index 000000000..ab29593c8 --- /dev/null +++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/ManagedChannelProvider.java @@ -0,0 +1,13 @@ +package io.grpc; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class ManagedChannelProvider { + /** + * Default constructor. + */ + public ManagedChannelProvider() { + // dummy constructor + } +} diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java new file mode 100644 index 000000000..cd4e3d489 --- /dev/null +++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/NameResolverProvider.java @@ -0,0 +1,13 @@ +package io.grpc; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class NameResolverProvider { + /** + * Default constructor. + */ + public NameResolverProvider() { + // dummy constructor + } +} diff --git a/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java b/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java new file mode 100644 index 000000000..24a8e249a --- /dev/null +++ b/third-party-libraries/io.grpc/src/main/java/io/grpc/ServerProvider.java @@ -0,0 +1,13 @@ +package io.grpc; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class ServerProvider { + /** + * Default constructor. + */ + public ServerProvider() { + // dummy constructor + } +} diff --git a/third-party-libraries/io.grpc/src/main/java/module-info.java b/third-party-libraries/io.grpc/src/main/java/module-info.java new file mode 100644 index 000000000..e699c8985 --- /dev/null +++ b/third-party-libraries/io.grpc/src/main/java/module-info.java @@ -0,0 +1,18 @@ +module io.grpc { + exports io.grpc; + // exports io.grpc.inprocess; + // exports io.grpc.internal; + // exports io.grpc.util; + + requires java.logging; + requires java.naming; + // requires com.google.errorprone.annotations; + // requires com.lmax.disruptor; + // requires io.perfmark; + + uses io.grpc.ManagedChannelProvider; + uses io.grpc.NameResolverProvider; + uses io.grpc.ServerProvider; + // uses io.grpc.internal.BinaryLogProvider; + uses io.grpc.LoadBalancerProvider; +} diff --git a/third-party-libraries/org.roaringbitmap/pom.xml b/third-party-libraries/org.roaringbitmap/pom.xml new file mode 100644 index 000000000..12afaa8e2 --- /dev/null +++ b/third-party-libraries/org.roaringbitmap/pom.xml @@ -0,0 +1,88 @@ + + 4.0.0 + + + com.clickhouse + third-party-libraries + 1.0.0 + + + org.roaringbitmap + ${roaring-bitmap.version} + jar + + ${project.artifactId} + Repackaged RoaringBitmap for JPMS compatibility + https://github.com/ClickHouse/clickhouse-jdbc/tree/master/third-party-libraries/org.roaringbitmap + + + + org.roaringbitmap + RoaringBitmap + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + org/roaringbitmap/**/*.class + + + + + org.apache.maven.plugins + maven-shade-plugin + + + shade + package + + shade + + + false + true + false + true + + + *:* + + module-info.class + META-INF/MANIFEST.MF + + + + + + + + + + + + org.moditect + moditect-maven-plugin + + + add-module-infos + package + + add-module-info + + + true + + src/main/java/module-info.java + + + + + + + + \ No newline at end of file diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java b/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java new file mode 100644 index 000000000..16a78c24f --- /dev/null +++ b/third-party-libraries/org.roaringbitmap/src/main/java/module-info.java @@ -0,0 +1,5 @@ +module org.roaringbitmap { + exports org.roaringbitmap; + exports org.roaringbitmap.buffer; + exports org.roaringbitmap.longlong; +} diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java new file mode 100644 index 000000000..292d72ab1 --- /dev/null +++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/DummyClass.java @@ -0,0 +1,12 @@ +package org.roaringbitmap; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class DummyClass { + /** + * Default constructor. + */ + public DummyClass() { + } +} diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java new file mode 100644 index 000000000..c47b4a285 --- /dev/null +++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/buffer/DummyClass.java @@ -0,0 +1,12 @@ +package org.roaringbitmap.buffer; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class DummyClass { + /** + * Default constructor. + */ + public DummyClass() { + } +} diff --git a/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java new file mode 100644 index 000000000..95b957cc7 --- /dev/null +++ b/third-party-libraries/org.roaringbitmap/src/main/java/org/roaringbitmap/longlong/DummyClass.java @@ -0,0 +1,12 @@ +package org.roaringbitmap.longlong; + +/** + * Dummy class as placeholder. It will be removed during package phase. + */ +public class DummyClass { + /** + * Default constructor. + */ + public DummyClass() { + } +} diff --git a/third-party-libraries/pom.xml b/third-party-libraries/pom.xml new file mode 100644 index 000000000..312f8fefc --- /dev/null +++ b/third-party-libraries/pom.xml @@ -0,0 +1,310 @@ + + + 4.0.0 + + com.clickhouse + third-party-libraries + 1.0.0 + pom + + ${project.artifactId} + Repackaged third party libraries for JPMS compatibility + https://github.com/ClickHouse/clickhouse-jdbc/tree/master/third-party-libraries + 2021 + + + ClickHouse, Inc. + https://clickhouse.com/ + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0 + repo + + + + + + zhicwu + Zhichun Wu + zhicwu@gmail.com + +8 + + + + + io.grpc + org.roaringbitmap + + + + https://github.com/ClickHouse/clickhouse-jdbc + scm:git@github.com:ClickHouse/clickhouse-jdbc.git + scm:git@github.com:ClickHouse/clickhouse-jdbc.git + HEAD + + + + Github + https://github.com/ClickHouse/clickhouse-jdbc/issues + + + + Github + https://github.com/ClickHouse/clickhouse-jdbc/actions + + + + + ossrh + https://s01.oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + 2021 + UTF-8 + UTF-8 + 1.40.1 + 2.8.8 + 0.28.3 + 0.9.21 + 3.3.0 + 3.0.0-M1 + 1.2.7 + 1.6.8 + 1.6 + 3.8.1 + 1.0.0.RC1 + 3.2.4 + 3.2.1 + 3.2.0 + + + + + + com.google.code.gson + gson + ${gson.version} + + + org.roaringbitmap + RoaringBitmap + ${roaring-bitmap.version} + + + io.grpc + grpc-api + ${grpc.version} + + + io.grpc + grpc-core + ${grpc.version} + + + io.grpc + grpc-context + ${grpc.version} + + + io.grpc + grpc-netty-shaded + ${grpc.version} + + + io.grpc + grpc-okhttp + ${grpc.version} + + + io.grpc + grpc-protobuf + ${grpc.version} + + + io.grpc + grpc-stub + ${grpc.version} + + + io.opencensus + opencensus-api + ${opencensus.version} + + + io.opencensus + opencensus-impl + ${opencensus.version} + + + io.opencensus + opencensus-contrib-grpc-metrics + ${opencensus.version} + + + org.apache.tomcat + annotations-api + ${annotations-api.version} + + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${compiler-plugin.version} + + 9 + true + + -Xlint:all + -Werror + + + + + org.apache.maven.plugins + maven-deploy-plugin + ${deploy-plugin.version} + + + org.apache.maven.plugins + maven-gpg-plugin + ${gpg-plugin.version} + + + org.apache.maven.plugins + maven-jar-plugin + ${jar-plugin.version} + + + org.apache.maven.plugins + maven-shade-plugin + ${shade-plugin.version} + + + org.apache.maven.plugins + maven-source-plugin + ${source-plugin.version} + + + org.sonatype.plugins + nexus-staging-maven-plugin + ${staging-plugin.version} + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-plugin.version} + + true + ossrh + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + org.moditect + moditect-maven-plugin + ${moditect-plugin.version} + + + + + + org.codehaus.mojo + flatten-maven-plugin + + + + + + + release + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + --pinentry-mode + loopback + + + + + sign-artifacts + verify + + sign + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.sonatype.plugins + nexus-staging-maven-plugin + + + default-deploy + deploy + + deploy + + + + + ossrh + https://s01.oss.sonatype.org/ + + + + + + + \ No newline at end of file