diff --git a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy index 5d1b1013cda2..9c9e24fd34f6 100644 --- a/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy +++ b/buildSrc/src/main/groovy/org/apache/beam/gradle/BeamModulePlugin.groovy @@ -551,6 +551,7 @@ class BeamModulePlugin implements Plugin { grpc_core : "io.grpc:grpc-core", // google_cloud_platform_libraries_bom sets version grpc_google_cloud_pubsub_v1 : "com.google.api.grpc:grpc-google-cloud-pubsub-v1", // google_cloud_platform_libraries_bom sets version grpc_google_cloud_pubsublite_v1 : "com.google.api.grpc:grpc-google-cloud-pubsublite-v1:$google_cloud_pubsublite_version", + grpc_google_common_protos : "com.google.api.grpc:grpc-google-common-protos", // google_cloud_platform_libraries_bom sets version grpc_grpclb : "io.grpc:grpc-grpclb", // google_cloud_platform_libraries_bom sets version grpc_protobuf : "io.grpc:grpc-protobuf", // google_cloud_platform_libraries_bom sets version grpc_protobuf_lite : "io.grpc:grpc-protobuf-lite:$grpc_version", @@ -602,6 +603,7 @@ class BeamModulePlugin implements Plugin { protobuf_java_util : "com.google.protobuf:protobuf-java-util:$protobuf_version", proto_google_cloud_bigquerybeta2_storage_v1 : "com.google.api.grpc:proto-google-cloud-bigquerystorage-v1beta2", // google_cloud_platform_libraries_bom sets version proto_google_cloud_bigtable_v2 : "com.google.api.grpc:proto-google-cloud-bigtable-v2", // google_cloud_platform_libraries_bom sets version + proto_google_cloud_datacatalog_v1beta1 : "com.google.api.grpc:proto-google-cloud-datacatalog-v1beta1", // google_cloud_platform_libraries_bom sets version proto_google_cloud_datastore_v1 : "com.google.api.grpc:proto-google-cloud-datastore-v1", // google_cloud_platform_libraries_bom sets version proto_google_cloud_pubsub_v1 : "com.google.api.grpc:proto-google-cloud-pubsub-v1", // google_cloud_platform_libraries_bom sets version proto_google_cloud_pubsublite_v1 : "com.google.api.grpc:proto-google-cloud-pubsublite-v1:$google_cloud_pubsublite_version", diff --git a/sdks/java/extensions/sql/build.gradle b/sdks/java/extensions/sql/build.gradle index 0df0021816dc..6de73f2c66ac 100644 --- a/sdks/java/extensions/sql/build.gradle +++ b/sdks/java/extensions/sql/build.gradle @@ -24,6 +24,7 @@ plugins { id 'ca.coglinc.javacc' } applyJavaNature( + enableStrictDependencies: true, generatedClassPatterns: [ /^org\.apache\.beam\.sdk\.extensions\.sql\.impl\.parser\.impl.*/, ], @@ -57,8 +58,9 @@ dependencies { fmppTask "com.googlecode.fmpp-maven-plugin:fmpp-maven-plugin:1.0" fmppTask "org.freemarker:freemarker:2.3.28" fmppTemplates library.java.vendored_calcite_1_20_0 - compile project(":sdks:java:core") + compile project(path: ":sdks:java:core", configuration: "shadow") compile project(":sdks:java:extensions:join-library") + permitUnusedDeclared project(":sdks:java:extensions:join-library") // BEAM-11761 compile project(":sdks:java:extensions:sql:udf") compile project(path: ":runners:direct-java", configuration: "shadow") compile library.java.commons_codec @@ -69,7 +71,11 @@ dependencies { compile "com.alibaba:fastjson:1.2.69" compile "org.codehaus.janino:janino:3.0.11" compile "org.codehaus.janino:commons-compiler:3.0.11" - provided "org.checkerframework:checker-qual:3.10.0" + compile library.java.jackson_core + compile library.java.mongo_java_driver + compile library.java.slf4j_api + compile library.java.joda_time + compile library.java.vendored_guava_26_0_jre provided project(":sdks:java:io:kafka") provided project(":sdks:java:io:google-cloud-platform") compile project(":sdks:java:io:mongodb") @@ -80,9 +86,6 @@ dependencies { testCompile library.java.vendored_calcite_1_20_0 testCompile library.java.vendored_guava_26_0_jre testCompile library.java.junit - testCompile library.java.hamcrest_core - testCompile library.java.hamcrest_library - testCompile library.java.mockito_core testCompile library.java.quickcheck_core testCompile library.java.testcontainers_kafka testCompile library.java.google_cloud_bigtable_emulator diff --git a/sdks/java/extensions/sql/datacatalog/build.gradle b/sdks/java/extensions/sql/datacatalog/build.gradle index ad1fab0bceb9..8b9289d747fe 100644 --- a/sdks/java/extensions/sql/datacatalog/build.gradle +++ b/sdks/java/extensions/sql/datacatalog/build.gradle @@ -20,13 +20,23 @@ import groovy.json.JsonOutput plugins { id 'org.apache.beam.module' } -applyJavaNature(automaticModuleName: 'org.apache.beam.sdk.extensions.sql.datacatalog') +applyJavaNature( + enableStrictDependencies: true, + automaticModuleName: 'org.apache.beam.sdk.extensions.sql.datacatalog') dependencies { compile enforcedPlatform(library.java.google_cloud_platform_libraries_bom) compile(library.java.google_cloud_datacatalog_v1beta1) { exclude group: 'io.grpc', module: 'grpc-core' // Use Beam's version } + compile library.java.gax + compile library.java.google_auth_library_credentials + compile library.java.proto_google_cloud_datacatalog_v1beta1 + compile library.java.protobuf_java + compile library.java.slf4j_api + compile library.java.vendored_guava_26_0_jre + compile project(path: ":sdks:java:core", configuration: "shadow") + compile "org.threeten:threetenbp:1.4.5" provided project(":sdks:java:extensions:sql") // Dependencies for the example diff --git a/sdks/java/extensions/sql/expansion-service/build.gradle b/sdks/java/extensions/sql/expansion-service/build.gradle index aabd3b1ed0c2..c14e141d13b1 100644 --- a/sdks/java/extensions/sql/expansion-service/build.gradle +++ b/sdks/java/extensions/sql/expansion-service/build.gradle @@ -18,6 +18,7 @@ plugins { id 'org.apache.beam.module' } applyJavaNature( + enableStrictDependencies: true, automaticModuleName: 'org.apache.beam.sdks.extensions.sql.expansion', validateShadowJar: false, shadowClosure: { @@ -32,9 +33,12 @@ ext.summary = """Contains code to run a SQL Expansion Service.""" dependencies { + compile project(path: ":sdks:java:core", configuration: "shadow") + compile project(path: ":sdks:java:expansion-service") + permitUnusedDeclared project(path: ":sdks:java:expansion-service") // BEAM-11761 compile project(path: ":sdks:java:extensions:sql") compile project(path: ":sdks:java:extensions:sql:zetasql") - compile project(path: ":sdks:java:expansion-service") + compile library.java.vendored_guava_26_0_jre } task runExpansionService (type: JavaExec) { diff --git a/sdks/java/extensions/sql/hcatalog/build.gradle b/sdks/java/extensions/sql/hcatalog/build.gradle index 678492eed4c9..f55391603a3d 100644 --- a/sdks/java/extensions/sql/hcatalog/build.gradle +++ b/sdks/java/extensions/sql/hcatalog/build.gradle @@ -19,6 +19,7 @@ plugins { id 'org.apache.beam.module' } applyJavaNature( + enableStrictDependencies: true, automaticModuleName: 'org.apache.beam.sdk.extensions.sql.meta.provider.hcatalog', classesTriggerCheckerBugs: [ 'HCatalogTable': 'TODO: file a bug report', diff --git a/sdks/java/extensions/sql/jdbc/build.gradle b/sdks/java/extensions/sql/jdbc/build.gradle index f1919053a9e7..0b2e42e8fd5c 100644 --- a/sdks/java/extensions/sql/jdbc/build.gradle +++ b/sdks/java/extensions/sql/jdbc/build.gradle @@ -20,6 +20,7 @@ import groovy.json.JsonOutput plugins { id 'org.apache.beam.module' } applyJavaNature(automaticModuleName: 'org.apache.beam.sdk.extensions.sql.jdbc', + enableStrictDependencies: true, exportJavadoc: false, testShadowJar: true, validateShadowJar: false, @@ -33,17 +34,17 @@ configurations { dependencies { compile project(":sdks:java:extensions:sql") compile "jline:jline:2.14.6" + permitUnusedDeclared "jline:jline:2.14.6" // BEAM-11761 compile "sqlline:sqlline:1.4.0" - compile library.java.slf4j_jdk14 + compile library.java.vendored_guava_26_0_jre testCompile project(path: ":sdks:java:io:google-cloud-platform", configuration: "testRuntime") testCompile library.java.junit - testCompile library.java.hamcrest_core - testCompile library.java.hamcrest_library // Depending on outputs so integrationTest can run with only test dependencies. // This enables us to test the JDBC jar being loaded on a custom classloader. integrationTest sourceSets.test.output integrationTest sourceSets.main.output integrationTest library.java.junit + compile project(path: ":sdks:java:core", configuration: "shadow") } processResources { diff --git a/sdks/java/extensions/sql/perf-tests/build.gradle b/sdks/java/extensions/sql/perf-tests/build.gradle index 7875a6b846fd..4c24bce4ff60 100644 --- a/sdks/java/extensions/sql/perf-tests/build.gradle +++ b/sdks/java/extensions/sql/perf-tests/build.gradle @@ -17,7 +17,9 @@ */ plugins { id 'org.apache.beam.module' } -applyJavaNature(automaticModuleName: 'org.apache.beam.sdk.extensions.sql.meta.provider') +applyJavaNature( + enableStrictDependencies: true, + automaticModuleName: 'org.apache.beam.sdk.extensions.sql.meta.provider') provideIntegrationTestingDependencies() enableJavaPerformanceTesting() diff --git a/sdks/java/extensions/sql/udf-test-provider/build.gradle b/sdks/java/extensions/sql/udf-test-provider/build.gradle index 461a4a83fcef..8db545fd2850 100644 --- a/sdks/java/extensions/sql/udf-test-provider/build.gradle +++ b/sdks/java/extensions/sql/udf-test-provider/build.gradle @@ -21,6 +21,7 @@ plugins { } applyJavaNature( + enableStrictDependencies: true, automaticModuleName: 'org.apache.beam.sdk.extensions.sql.provider', publish: false, ) diff --git a/sdks/java/extensions/sql/udf/build.gradle b/sdks/java/extensions/sql/udf/build.gradle index 4fc392e06ff2..adb6e7c83749 100644 --- a/sdks/java/extensions/sql/udf/build.gradle +++ b/sdks/java/extensions/sql/udf/build.gradle @@ -18,7 +18,9 @@ plugins { id 'org.apache.beam.module' } -applyJavaNature(automaticModuleName: 'org.apache.beam.sdk.extensions.sql.udf') +applyJavaNature( + enableStrictDependencies: true, + automaticModuleName: 'org.apache.beam.sdk.extensions.sql.udf') description = "Apache Beam :: SDKs :: Java :: Extensions :: SQL :: UDF" ext.summary = "Provides interfaces for defining user-defined functions in Beam SQL." diff --git a/sdks/java/extensions/sql/zetasql/build.gradle b/sdks/java/extensions/sql/zetasql/build.gradle index 67244634af84..9a623d7dccaa 100644 --- a/sdks/java/extensions/sql/zetasql/build.gradle +++ b/sdks/java/extensions/sql/zetasql/build.gradle @@ -21,6 +21,7 @@ plugins { } applyJavaNature( + enableStrictDependencies: true, automaticModuleName: 'org.apache.beam.sdk.extensions.sql.zetasql', ) @@ -31,23 +32,30 @@ def zetasql_version = "2020.10.1" dependencies { compile enforcedPlatform(library.java.google_cloud_platform_libraries_bom) - compile project(":sdks:java:core") + permitUnusedDeclared enforcedPlatform(library.java.google_cloud_platform_libraries_bom) + compile project(path: ":sdks:java:core", configuration: "shadow") compile project(":sdks:java:extensions:sql") + compile project(":sdks:java:extensions:sql:udf") compile library.java.vendored_calcite_1_20_0 compile library.java.guava compile library.java.grpc_api + compile library.java.joda_time compile library.java.protobuf_java compile library.java.protobuf_java_util - compile "com.google.api.grpc:proto-google-common-protos:1.12.0" // Interfaces with ZetaSQL use this - compile "com.google.api.grpc:grpc-google-common-protos:1.12.0" // Interfaces with ZetaSQL use this - compile "com.google.zetasql:zetasql-jni-channel:$zetasql_version" + permitUnusedDeclared library.java.protobuf_java_util // BEAM-11761 + compile library.java.slf4j_api + compile library.java.vendored_guava_26_0_jre + compile library.java.proto_google_common_protos // Interfaces with ZetaSQL use this + permitUnusedDeclared library.java.proto_google_common_protos // BEAM-11761 + compile library.java.grpc_google_common_protos // Interfaces with ZetaSQL use this + permitUnusedDeclared library.java.grpc_google_common_protos // BEAM-11761 compile "com.google.zetasql:zetasql-client:$zetasql_version" compile "com.google.zetasql:zetasql-types:$zetasql_version" + compile "com.google.zetasql:zetasql-jni-channel:$zetasql_version" + permitUnusedDeclared "com.google.zetasql:zetasql-jni-channel:$zetasql_version" // BEAM-11761 testCompile library.java.vendored_calcite_1_20_0 testCompile library.java.vendored_guava_26_0_jre testCompile library.java.junit - testCompile library.java.hamcrest_core - testCompile library.java.hamcrest_library testCompile library.java.mockito_core testCompile library.java.quickcheck_core testCompileOnly project(":sdks:java:extensions:sql:udf-test-provider")