From 0241ba72bd2389e370bd46af22838a40745a018e Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Wed, 3 Jul 2024 13:24:51 -0700 Subject: [PATCH] build: Introduce gradle version catalog (#5683) This is the first step in modernizing our gradle dependency management by using a [gradle version catalog](https://docs.gradle.org/8.8/userguide/platforms.html#sub:central-declaration-of-dependencies); this PR migrates all of our bespoke `Classpaths.groovy` versions into a standardized `libs.versions.toml`. The biggest benefit is that dependabot will be able to submit gradle dependency version bump PRs. As developers, we should also benefit from greater standardization (IntelliJ works as you would expect with autocomplete, click-through, and find usages support). The learning curve should be relatively small. The intention is to continue the migration to the version catalog. Additional dependencies we declare outside of `Classpaths.groovy` should be relatively straightforward to migrate. Fixes #5177 --- Base/build.gradle | 5 +- BenchmarkSupport/BenchmarkSupport.gradle | 2 +- ClientSupport/ClientSupport.gradle | 8 +- Configuration/build.gradle | 10 +- Container/build.gradle | 2 +- Generators/Generators.gradle | 6 +- IO/build.gradle | 5 +- ModelFarm/ModelFarm.gradle | 2 +- Numerics/Numerics.gradle | 2 +- Plot/Plot.gradle | 11 +- Stats/build.gradle | 4 +- TableLogger/TableLogger.gradle | 2 +- Util/Util.gradle | 10 +- Util/channel/build.gradle | 12 +- Util/function/build.gradle | 10 +- application-mode/build.gradle | 11 +- authentication/build.gradle | 2 +- .../sql-username-password/build.gradle | 2 +- authorization-codegen/build.gradle | 4 +- authorization/build.gradle | 6 +- base-test-utils/build.gradle | 5 +- buildSrc/src/main/groovy/Classpaths.groovy | 369 ------------------ buildSrc/src/main/groovy/GwtTools.groovy | 16 +- ...eephaven.hadoop-common-dependencies.gradle | 22 ++ ...eephaven.java-classpath-conventions.gradle | 9 +- clock-impl/build.gradle | 3 +- codegen/build.gradle | 2 +- engine/api/build.gradle | 10 +- engine/chunk/build.gradle | 4 +- engine/context/build.gradle | 8 +- engine/processor-function/build.gradle | 10 +- engine/processor/build.gradle | 13 +- engine/rowset-test-utils/build.gradle | 2 +- engine/rowset/build.gradle | 4 +- engine/table/build.gradle | 24 +- engine/test-utils/build.gradle | 6 +- engine/time/build.gradle | 5 +- engine/tuple/build.gradle | 4 +- engine/tuplesource/build.gradle | 3 +- engine/updategraph/build.gradle | 4 +- engine/vector/build.gradle | 2 +- extensions/arrow/build.gradle | 14 +- extensions/barrage/build.gradle | 19 +- extensions/bson-jackson/build.gradle | 15 +- extensions/classgraph/build.gradle | 3 +- extensions/csv/build.gradle | 11 +- extensions/iceberg/build.gradle | 39 +- extensions/iceberg/s3/build.gradle | 22 +- extensions/jdbc/build.gradle | 8 +- extensions/json-jackson/build.gradle | 23 +- extensions/json/build.gradle | 10 +- extensions/kafka/build.gradle | 11 +- extensions/parquet/base/build.gradle | 4 +- extensions/parquet/compression/build.gradle | 7 +- extensions/parquet/table/build.gradle | 22 +- extensions/performance/build.gradle | 5 +- extensions/protobuf/build.gradle | 20 +- extensions/s3/build.gradle | 30 +- extensions/source-support/build.gradle | 6 +- extensions/suanshu/build.gradle | 3 +- extensions/trackedfile/build.gradle | 3 +- gradle/libs.versions.toml | 162 ++++++++ grpc-java/grpc-mtls/build.gradle | 4 +- grpc-java/grpc-servlet-jakarta/build.gradle | 6 +- .../build.gradle | 6 +- hotspot-impl/build.gradle | 3 +- java-client/barrage-dagger/build.gradle | 10 +- java-client/barrage-examples/build.gradle | 8 +- java-client/barrage/build.gradle | 13 +- java-client/example-utilities/build.gradle | 4 +- java-client/flight-dagger/build.gradle | 9 +- java-client/flight-examples/build.gradle | 10 +- java-client/flight/build.gradle | 18 +- java-client/session-dagger/build.gradle | 16 +- java-client/session-examples/build.gradle | 12 +- java-client/session/build.gradle | 37 +- java-client/uri/build.gradle | 13 +- .../examples/example-base/build.gradle | 2 +- .../examples/example-logback/build.gradle | 2 +- .../examples/example-slf4j/build.gradle | 2 +- log-factory/sinks/log-to-file/build.gradle | 3 +- .../sinks/log-to-logbuffer/build.gradle | 3 +- log-factory/sinks/log-to-slf4j/build.gradle | 7 +- log-factory/sinks/log-to-stream/build.gradle | 3 +- .../sinks/logback-logbuffer/build.gradle | 2 +- .../logback-print-stream-globals/build.gradle | 2 +- log-factory/sources/slf4j-to-log/build.gradle | 5 +- open-api/lang-parser/lang-parser.gradle | 2 +- open-api/lang-tools/lang-tools.gradle | 12 +- plugin/build.gradle | 5 +- plugin/dagger/build.gradle | 19 +- plugin/echo/build.gradle | 3 +- plugin/figure/build.gradle | 3 +- plugin/hierarchicaltable/build.gradle | 3 +- plugin/partitionedtable/build.gradle | 3 +- props/test-configs/build.gradle | 3 +- .../proto-backplane-grpc-flight/build.gradle | 2 +- proto/proto-backplane-grpc/build.gradle | 16 +- py/embedded-server/java-runtime/build.gradle | 7 +- qst/build.gradle | 11 +- qst/graphviz/build.gradle | 10 +- qst/type/build.gradle | 12 +- replication/reflective/build.gradle | 4 +- server/build.gradle | 32 +- server/jetty-app-custom/build.gradle | 5 +- server/jetty-app/build.gradle | 2 +- server/jetty/build.gradle | 37 +- server/netty-app/build.gradle | 2 +- server/netty/build.gradle | 23 +- server/test-utils/build.gradle | 14 +- sql/build.gradle | 11 +- ssl/config/build.gradle | 25 +- ssl/kickstart/build.gradle | 6 +- table-api/build.gradle | 14 +- web/client-api/client-api.gradle | 10 +- web/client-backplane/client-backplane.gradle | 12 +- web/shared-beans/shared-beans.gradle | 17 +- 117 files changed, 779 insertions(+), 824 deletions(-) delete mode 100644 buildSrc/src/main/groovy/Classpaths.groovy create mode 100644 buildSrc/src/main/groovy/io.deephaven.hadoop-common-dependencies.gradle create mode 100644 gradle/libs.versions.toml diff --git a/Base/build.gradle b/Base/build.gradle index 872cf943208..fc63a2efa19 100644 --- a/Base/build.gradle +++ b/Base/build.gradle @@ -13,8 +13,9 @@ dependencies { api 'io.deephaven:hash:0.1.0' - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritJMock(project, 'testImplementation') + testImplementation libs.junit4 + testImplementation libs.jmock.junit4 + testImplementation libs.jmock.imposters testImplementation project(":base-test-utils") } diff --git a/BenchmarkSupport/BenchmarkSupport.gradle b/BenchmarkSupport/BenchmarkSupport.gradle index 77fc4fd9b50..6528b126646 100644 --- a/BenchmarkSupport/BenchmarkSupport.gradle +++ b/BenchmarkSupport/BenchmarkSupport.gradle @@ -41,5 +41,5 @@ dependencies { testRuntimeOnly project(':Numerics') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/ClientSupport/ClientSupport.gradle b/ClientSupport/ClientSupport.gradle index b4b426ef3c2..9c297379e1e 100644 --- a/ClientSupport/ClientSupport.gradle +++ b/ClientSupport/ClientSupport.gradle @@ -14,12 +14,12 @@ dependencies { implementation depCommonsLang3 testImplementation project(':engine-test-utils') - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation libs.junit4 + testImplementation platform(libs.junit.bom) + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/Configuration/build.gradle b/Configuration/build.gradle index c804e169f7b..518dc32a3a3 100644 --- a/Configuration/build.gradle +++ b/Configuration/build.gradle @@ -8,15 +8,17 @@ dependencies { implementation project(':IO') implementation project(':log-factory') implementation depCommonsLang3 - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritJMock(project, 'testImplementation') + testImplementation libs.junit4 + testImplementation libs.jmock.junit4 + testImplementation libs.jmock.imposters - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } sourceSets { diff --git a/Container/build.gradle b/Container/build.gradle index 896d88dc8ae..0a72d603a1b 100644 --- a/Container/build.gradle +++ b/Container/build.gradle @@ -4,7 +4,7 @@ plugins { } dependencies { - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 } spotless { diff --git a/Generators/Generators.gradle b/Generators/Generators.gradle index 7af8ed074e1..67a05142c28 100644 --- a/Generators/Generators.gradle +++ b/Generators/Generators.gradle @@ -19,15 +19,15 @@ dependencies { implementation project(':extensions-parquet-table') implementation depTrove3 - Classpaths.inheritGroovy(project, 'groovy', 'implementation') - Classpaths.inheritGroovy(project, 'groovy-json', 'implementation') + implementation libs.groovy + implementation libs.groovy.json runtimeOnly project(path: ':configs') runtimeOnly project(path: ':test-configs') runtimeOnly project(':extensions-kafka') runtimeOnly project(':log-to-slf4j') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic testRuntimeOnly project(path: ':configs') testRuntimeOnly project(path: ':test-configs') diff --git a/IO/build.gradle b/IO/build.gradle index 84e77e52d67..25c5dbd5bb3 100644 --- a/IO/build.gradle +++ b/IO/build.gradle @@ -7,8 +7,9 @@ dependencies { implementation project(':SevenZip') implementation depCommonsCompress testImplementation project(path: ':Base', configuration: 'tests') - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritJMock(project, 'testImplementation') + testImplementation libs.junit4 + testImplementation libs.jmock.junit4 + testImplementation libs.jmock.imposters } sourceSets { diff --git a/ModelFarm/ModelFarm.gradle b/ModelFarm/ModelFarm.gradle index ebc780ea05d..9e35a11b103 100644 --- a/ModelFarm/ModelFarm.gradle +++ b/ModelFarm/ModelFarm.gradle @@ -26,5 +26,5 @@ dependencies { testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/Numerics/Numerics.gradle b/Numerics/Numerics.gradle index d5b654b7346..4cf033b7af7 100644 --- a/Numerics/Numerics.gradle +++ b/Numerics/Numerics.gradle @@ -20,5 +20,5 @@ dependencies { testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/Plot/Plot.gradle b/Plot/Plot.gradle index 3face152c26..d1019b67408 100644 --- a/Plot/Plot.gradle +++ b/Plot/Plot.gradle @@ -17,13 +17,14 @@ dependencies { implementation project(':engine-tuple') implementation project(':log-factory') - Classpaths.inheritGroovy(project, 'groovy', 'api') - Classpaths.inheritGroovy(project, 'groovy-json', 'implementation') - Classpaths.inheritAutoService(project) + api libs.groovy + implementation libs.groovy.json + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler compileOnly 'javax.inject:javax.inject:1' - Classpaths.inheritGuava(project) + implementation libs.guava testImplementation project(':engine-test-utils') testImplementation TestTools.projectDependency(project, 'engine-time') @@ -33,5 +34,5 @@ dependencies { testRuntimeOnly project(':Numerics') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/Stats/build.gradle b/Stats/build.gradle index bac1cdce147..224ca312843 100644 --- a/Stats/build.gradle +++ b/Stats/build.gradle @@ -14,8 +14,8 @@ dependencies { testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testRuntimeOnly libs.slf4j.simple + testImplementation libs.junit4 } test { diff --git a/TableLogger/TableLogger.gradle b/TableLogger/TableLogger.gradle index a4173ac368d..34421dd4055 100644 --- a/TableLogger/TableLogger.gradle +++ b/TableLogger/TableLogger.gradle @@ -11,5 +11,5 @@ dependencies { runtimeOnly project(path: ':configs') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/Util/Util.gradle b/Util/Util.gradle index 08b74258a7f..86098c11d4d 100644 --- a/Util/Util.gradle +++ b/Util/Util.gradle @@ -16,11 +16,11 @@ dependencies { testRuntimeOnly project(path: ':test-configs') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple - Classpaths.inheritJUnitPlatform(project) testImplementation project(':base-test-utils') - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } diff --git a/Util/channel/build.gradle b/Util/channel/build.gradle index 4d479e69526..44dcac11058 100644 --- a/Util/channel/build.gradle +++ b/Util/channel/build.gradle @@ -10,15 +10,15 @@ dependencies { implementation project(':Util') // For CountingInputStream - Classpaths.inheritGuava(project) + implementation libs.guava compileOnly depAnnotations - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/Util/function/build.gradle b/Util/function/build.gradle index 6b0feeb4d9f..04556534c95 100644 --- a/Util/function/build.gradle +++ b/Util/function/build.gradle @@ -8,11 +8,11 @@ dependencies { compileOnly depAnnotations - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/application-mode/build.gradle b/application-mode/build.gradle index 5a5b7827e61..26ca8bc8a22 100644 --- a/application-mode/build.gradle +++ b/application-mode/build.gradle @@ -6,18 +6,19 @@ plugins { dependencies { implementation project(':Integrations') - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables // we'll rely on the engine-table module to provide the necessary groovy dependencies - Classpaths.inheritGroovy(project, 'groovy', 'compileOnly') + compileOnly libs.groovy api project(':proto:proto-backplane-grpc') implementation project(':Configuration') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } test { diff --git a/authentication/build.gradle b/authentication/build.gradle index ec74687be4d..19ec9e69f73 100644 --- a/authentication/build.gradle +++ b/authentication/build.gradle @@ -10,5 +10,5 @@ dependencies { implementation project(':log-factory') implementation project(':Configuration') - Classpaths.inheritArrow(project, 'flight-core', 'implementation') + implementation libs.arrow.flight.core } diff --git a/authentication/example-providers/sql-username-password/build.gradle b/authentication/example-providers/sql-username-password/build.gradle index e906792865e..d7f1cc9e5e3 100644 --- a/authentication/example-providers/sql-username-password/build.gradle +++ b/authentication/example-providers/sql-username-password/build.gradle @@ -11,7 +11,7 @@ dependencies { } pwGen project(':log-to-stream') - Classpaths.inheritLogbackClassic(project, 'pwGen') + pwGen libs.logback.classic } shadowJar { diff --git a/authorization-codegen/build.gradle b/authorization-codegen/build.gradle index bb0e04b8234..75ac2b2f514 100644 --- a/authorization-codegen/build.gradle +++ b/authorization-codegen/build.gradle @@ -10,8 +10,8 @@ description 'Deephaven Authorization Code Generator' dependencies { implementation project(':engine-api') - Classpaths.inheritGrpcPlatform(project, 'implementation') - implementation 'io.grpc:grpc-services' + implementation platform(libs.grpc.bom) + implementation libs.grpc.services implementation 'com.squareup:javapoet:1.13.0' } diff --git a/authorization/build.gradle b/authorization/build.gradle index 73880c041ec..6fddc8f4fec 100644 --- a/authorization/build.gradle +++ b/authorization/build.gradle @@ -9,9 +9,9 @@ dependencies { api project(':engine-api') api project(':proto:proto-backplane-grpc') - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-services' - Classpaths.inheritArrow(project, 'flight-core', 'api') + api platform(libs.grpc.bom) + api libs.grpc.services + api libs.arrow.flight.core implementation project(':log-factory') } diff --git a/base-test-utils/build.gradle b/base-test-utils/build.gradle index e389b8a4e61..ffe61639325 100644 --- a/base-test-utils/build.gradle +++ b/base-test-utils/build.gradle @@ -12,6 +12,7 @@ dependencies { api 'io.deephaven:hash:0.1.0' - Classpaths.inheritJUnitClassic(project, 'api') - Classpaths.inheritJMock(project, 'api') + api libs.junit4 + api libs.jmock.junit4 + api libs.jmock.imposters } diff --git a/buildSrc/src/main/groovy/Classpaths.groovy b/buildSrc/src/main/groovy/Classpaths.groovy deleted file mode 100644 index 01abc0e3a90..00000000000 --- a/buildSrc/src/main/groovy/Classpaths.groovy +++ /dev/null @@ -1,369 +0,0 @@ -import groovy.transform.CompileStatic -import org.gradle.api.Action -import org.gradle.api.Project -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.Dependency -import org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency -import org.gradle.api.plugins.JavaPlugin -import org.gradle.internal.Actions - -/** - * A centralized utility for adding classpaths to projects. - * - * This is the most efficient way to standardize dependencies, - * as it does not add any unnecessary configurations "just in case we need them" - * (i.e. what was done in the original gradle refactor). - * - * To use: - * Classpaths.inheritSomething(project) - */ -@CompileStatic -class Classpaths { - - static final String ELEMENTAL_GROUP = 'com.google.elemental2' - static final String ELEMENTAL_VERSION = '1.2.1' - - static final String GWT_GROUP = 'org.gwtproject' - static final String GWT_VERSION = '2.11.0' - - static final String JAVA_PARSER_GROUP = 'com.github.javaparser' - static final String JAVA_PARSER_NAME = 'javaparser-core' - static final String JAVA_PARSER_VERSION = '3.23.0' - // TODO (core#1163): take advantage of symbol-solver-core -// static final String JAVA_PARSER_NAME = 'javaparser-symbol-solver-core' - - static final String JAVAX_ANNOTATIONS_GROUP = 'javax.validation' - static final String JAVAX_ANNOTATIONS_NAME = 'validation-api' - static final String JAVAX_ANNOTATIONS_VERSION = '1.0.0.GA' - - static final String JETTY_VERSION = '9.4.44.v20210927' - - static final String JS_INTEROP_GROUP = 'com.google.jsinterop' - static final String JS_INTEROP_VERSION = '2.0.2' - - static final String COMMONS_GROUP = 'org.apache.commons' - - static final String ARROW_GROUP = 'org.apache.arrow' - static final String ARROW_VERSION = '13.0.0' - - static final String SLF4J_GROUP = 'org.slf4j' - static final String SLF4J_VERSION = '2.0.11' - - static final String FLATBUFFER_GROUP = 'com.google.flatbuffers' - static final String FLATBUFFER_NAME = 'flatbuffers-java' - static final String FLATBUFFER_VERSION = '1.12.0' - - static final String DAGGER_GROUP = 'com.google.dagger' - static final String DAGGER_NAME = 'dagger' - static final String DAGGER_COMPILER = 'dagger-compiler' - static final String DAGGER_VERSION = '2.44' - - static final String AUTOSERVICE_GROUP = 'com.google.auto.service' - static final String AUTOSERVICE_NAME = 'auto-service-annotations' - static final String AUTOSERVICE_COMPILER = 'auto-service' - static final String AUTOSERVICE_VERSION = '1.0.1' - - static final String IMMUTABLES_GROUP = 'org.immutables' - static final String IMMUTABLES_NAME = 'value' - static final String IMMUTABLES_VERSION = '2.9.2' - - static final String JUNIT_GROUP = 'org.junit' - static final String JUNIT_NAME = 'junit-bom' - static final String JUNIT_VERSION = '5.7.2' - - static final String JUNIT_CLASSIC_GROUP = 'junit' - static final String JUNIT_CLASSIC_NAME = 'junit' - static final String JUNIT_CLASSIC_VERSION = '4.13.2' - - static final String JMOCK_GROUP = 'org.jmock' - static final String JMOCK_JUNIT_NAME = 'jmock-junit4' - static final String JMOCK_IMPORSTERS_NAME = 'jmock-imposters' - static final String JMOCK_VERSION = '2.12.0' - - static final String ASSERTJ_GROUP = 'org.assertj' - static final String ASSERTJ_NAME = 'assertj-core' - static final String ASSERTJ_VERSION = '3.19.0' - - static final String LOGBACK_GROUP = 'ch.qos.logback' - static final String LOGBACK_NAME = 'logback-classic' - static final String LOGBACK_VERSION = '1.4.14' - - static final String GROOVY_GROUP = 'org.codehaus.groovy' - static final String GROOVY_VERSION = '3.0.21' - - static final String GRPC_GROUP = 'io.grpc' - static final String GRPC_NAME = 'grpc-bom' - // Only bump this in concert w/ BORINGSSL_VERSION - static final String GRPC_VERSION = '1.58.0' - - // TODO(deephaven-core#1685): Create strategy around updating and maintaining protoc version - static final String PROTOBUF_GROUP = 'com.google.protobuf' - static final String PROTOBUF_NAME = 'protobuf-java' - static final String PROTOBUF_VERSION = '3.25.3' - - // See dependency matrix for particular gRPC versions at https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty - static final String BORINGSSL_GROUP = 'io.netty' - static final String BORINGSSL_NAME = 'netty-tcnative-boringssl-static' - // Only bump this in concert w/ GRPC_VERSION - static final String BORINGSSL_VERSION = '2.0.61.Final' - - static final String JACKSON_GROUP = 'com.fasterxml.jackson' - static final String JACKSON_NAME = 'jackson-bom' - static final String JACKSON_VERSION = '2.17.0' - - static final String SSLCONTEXT_GROUP = 'io.github.hakky54' - static final String SSLCONTEXT_VERSION = '8.1.1' - - static final String JETTY11_GROUP = 'org.eclipse.jetty' - static final String JETTY11_NAME = 'jetty-bom' - static final String JETTY11_VERSION = '11.0.20' - - static final String GUAVA_GROUP = 'com.google.guava' - static final String GUAVA_NAME = 'guava' - static final String GUAVA_VERSION = '33.2.0-jre' - - static final String AVRO_GROUP = 'org.apache.avro' - static final String AVRO_NAME = 'avro' - static final String AVRO_VERSION = '1.11.3' - - static final String HADOOP_GROUP = 'org.apache.hadoop' - static final String HADOOP_VERSION = '3.4.0' - - static final String ICEBERG_GROUP = 'org.apache.iceberg' - static final String ICEBERG_VERSION = '1.5.2' - - static final String AWSSDK_GROUP = 'software.amazon.awssdk' - static final String AWSSDK_VERSION = '2.24.5' - - static final String TESTCONTAINER_GROUP = 'org.testcontainers' - static final String TESTCONTAINER_VERSION = '1.19.4' - - static boolean addDependency(Configuration conf, String group, String name, String version, Action configure = Actions.doNothing()) { - if (!conf.dependencies.find { it.name == name && it.group == group}) { - DefaultExternalModuleDependency dep = dependency group, name, version - configure.execute(dep) - conf.dependencies.add(dep) - true - } - false - } - - static void addDependency(Configuration conf, Dependency dep) { - conf.dependencies.add(dep) - } - - static DefaultExternalModuleDependency dependency(String group, String name, String version) { - new DefaultExternalModuleDependency(group, name, version) - } - - static void inheritGwt(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - if (addDependency(config, GWT_GROUP, name, GWT_VERSION)) { - // when we add gwt-dev, lets also force asm version, just to be safe. - name == 'gwt-dev' && config.resolutionStrategy { - force 'org.ow2.asm:asm:9.2' - force 'org.ow2.asm:asm-util:9.2' - force 'org.ow2.asm:asm-commons:9.2' - } - } - } - - static void inheritJavaParser(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency config, JAVA_PARSER_GROUP, JAVA_PARSER_NAME, JAVA_PARSER_VERSION - } - - static void inheritJavaxAnnotations(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency config, JAVAX_ANNOTATIONS_GROUP, JAVAX_ANNOTATIONS_NAME, JAVAX_ANNOTATIONS_VERSION - } - - static void inheritJsInterop(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency config, JS_INTEROP_GROUP, name, - // google is annoying, and have different versions released for the same groupId - // :base: is the only one that is different, so we'll use it in the ternary. - name == 'base'? '1.0.1' : JS_INTEROP_VERSION - } - - static void inheritElemental(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency config, ELEMENTAL_GROUP, name, ELEMENTAL_VERSION - } - - static void inheritCommonsText(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency config, COMMONS_GROUP, 'commons-text', "1.10.0" - } - - static void inheritArrow(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, ARROW_GROUP, name, ARROW_VERSION) - } - - static void inheritFlatbuffer(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, FLATBUFFER_GROUP, FLATBUFFER_NAME, FLATBUFFER_VERSION) - } - - static void inheritDagger(Project p, boolean test = false) { - Configuration ic = p.configurations.getByName(test ? 'testImplementation' : 'implementation') - addDependency(ic, DAGGER_GROUP, DAGGER_NAME, DAGGER_VERSION) - Configuration ap = p.configurations.getByName(test ? 'testAnnotationProcessor' : 'annotationProcessor') - addDependency(ap, DAGGER_GROUP, DAGGER_COMPILER, DAGGER_VERSION) - } - - /** - * Auto service is an annotation processor that will generate META-INF/services/ files. - * - * @see google/auto/tree/master/service - */ - static void inheritAutoService(Project p, boolean test = false) { - Configuration ic = p.configurations.getByName(test ? 'testCompileOnly' : 'compileOnly') - addDependency(ic, AUTOSERVICE_GROUP, AUTOSERVICE_NAME, AUTOSERVICE_VERSION) - Configuration ap = p.configurations.getByName(test ? 'testAnnotationProcessor' : 'annotationProcessor') - addDependency(ap, AUTOSERVICE_GROUP, AUTOSERVICE_COMPILER, AUTOSERVICE_VERSION) - } - - static void inheritImmutables(Project p, boolean test = false) { - Configuration ap = p.configurations.getByName(test ? 'testAnnotationProcessor' : 'annotationProcessor') - addDependency(ap, IMMUTABLES_GROUP, IMMUTABLES_NAME, IMMUTABLES_VERSION) - p.getDependencies().add(test ? 'testCompileOnly' : 'compileOnly', p.project(':util-immutables')) - } - - static void inheritJUnitClassic(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, JUNIT_CLASSIC_GROUP, JUNIT_CLASSIC_NAME, JUNIT_CLASSIC_VERSION) - } - - static void inheritJMock(Project p, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, JMOCK_GROUP, JMOCK_JUNIT_NAME, JMOCK_VERSION) - addDependency(config, JMOCK_GROUP, JMOCK_IMPORSTERS_NAME, JMOCK_VERSION) - } - - static void inheritJUnitPlatform(Project p, String configName = JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform(JUNIT_GROUP + ":" + JUNIT_NAME + ":" + JUNIT_VERSION)) - } - - static void inheritAssertJ(Project p, String configName = JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, ASSERTJ_GROUP, ASSERTJ_NAME, ASSERTJ_VERSION) - } - - static void inheritLogbackClassic(Project p, String configName = JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, LOGBACK_GROUP, LOGBACK_NAME, LOGBACK_VERSION) - } - - static void inheritSlf4j(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, SLF4J_GROUP, name, SLF4J_VERSION) - } - - static void inheritGroovy(Project p, String name, String configName) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, GROOVY_GROUP, name, GROOVY_VERSION) - } - - static void inheritGrpcPlatform(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform(GRPC_GROUP + ":" + GRPC_NAME + ":" + GRPC_VERSION)) - } - - static void inheritProtobuf(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, PROTOBUF_GROUP, PROTOBUF_NAME, PROTOBUF_VERSION) - } - - static void inheritBoringSsl(Project p, String configName = JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, BORINGSSL_GROUP, BORINGSSL_NAME, BORINGSSL_VERSION) - } - - static void inheritJacksonPlatform(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform("${JACKSON_GROUP}:${JACKSON_NAME}:${JACKSON_VERSION}")) - } - - static void inheritSSLContext(Project p, String name, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, SSLCONTEXT_GROUP, name, SSLCONTEXT_VERSION) - } - - static void inheritJetty11Platform(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform("${JETTY11_GROUP}:${JETTY11_NAME}:${JETTY11_VERSION}")) - } - - static void inheritGuava(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, GUAVA_GROUP, GUAVA_NAME, GUAVA_VERSION) - } - - static void inheritAvro(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, AVRO_GROUP, AVRO_NAME, AVRO_VERSION) - } - - static void inheritParquetHadoop(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, 'org.apache.parquet', 'parquet-hadoop', '1.14.0') - } - - /** configName controls only the Configuration's classpath, all transitive dependencies are runtimeOnly */ - static void inheritParquetHadoopConfiguration(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, HADOOP_GROUP, 'hadoop-common', HADOOP_VERSION) { - it.setTransitive(false) - // Do not take any extra dependencies of this project transitively. We just want a few classes for - // configuration and compression codecs. For any additional required dependencies, add them separately, as - // done for woodstox, shaded-guava, etc. below. Or we can replace setTransitive(false) here with more - // exclusions (we want to avoid pulling in netty, loggers, jetty-util, guice and asm). - } - - Configuration runtimeOnly = p.configurations.getByName(JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME) - addDependency(runtimeOnly, 'com.fasterxml.woodstox', 'woodstox-core', '6.6.2') { - it.because('hadoop-common required dependency for Configuration') - } - addDependency(runtimeOnly, 'org.apache.hadoop.thirdparty', 'hadoop-shaded-guava', '1.2.0') { - it.because('hadoop-common required dependency for Configuration') - } - addDependency(runtimeOnly, 'commons-collections', 'commons-collections', '3.2.2') { - it.because('hadoop-common required dependency for Configuration') - } - } - - static void inheritIcebergHadoop(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - inheritParquetHadoopConfiguration(p, configName) - addDependency(config, HADOOP_GROUP, 'hadoop-hdfs-client', HADOOP_VERSION) - } - - static void inheritIcebergCore(Project p) { - Configuration apiConfig = p.configurations.getByName(JavaPlugin.API_CONFIGURATION_NAME) - addDependency(apiConfig, p.getDependencies().platform(ICEBERG_GROUP + ":iceberg-bom:" + ICEBERG_VERSION)) - addDependency(apiConfig, ICEBERG_GROUP, 'iceberg-api', ICEBERG_VERSION) - - Configuration implConfig = p.configurations.getByName(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) - addDependency(implConfig, ICEBERG_GROUP, 'iceberg-bundled-guava', ICEBERG_VERSION) - addDependency(implConfig, ICEBERG_GROUP, 'iceberg-core', ICEBERG_VERSION) - } - - static void inheritAWSSDK(Project p, String configName = JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, p.getDependencies().platform(AWSSDK_GROUP + ":bom:" + AWSSDK_VERSION)) - - addDependency(config, AWSSDK_GROUP, 's3', AWSSDK_VERSION) - addDependency(config, AWSSDK_GROUP, 'aws-crt-client', AWSSDK_VERSION) - } - - static void inheritTestContainers(Project p, String configName = JavaPlugin.TEST_IMPLEMENTATION_CONFIGURATION_NAME) { - Configuration config = p.configurations.getByName(configName) - addDependency(config, TESTCONTAINER_GROUP, 'testcontainers', TESTCONTAINER_VERSION) - addDependency(config, TESTCONTAINER_GROUP, 'junit-jupiter', TESTCONTAINER_VERSION) - addDependency(config, TESTCONTAINER_GROUP, 'localstack', TESTCONTAINER_VERSION) - addDependency(config, TESTCONTAINER_GROUP, 'minio', TESTCONTAINER_VERSION) - } -} diff --git a/buildSrc/src/main/groovy/GwtTools.groovy b/buildSrc/src/main/groovy/GwtTools.groovy index c33b299c419..23b5711d005 100644 --- a/buildSrc/src/main/groovy/GwtTools.groovy +++ b/buildSrc/src/main/groovy/GwtTools.groovy @@ -7,6 +7,8 @@ import groovy.transform.CompileStatic import org.gradle.api.Project import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.ProjectDependency +import org.gradle.api.artifacts.VersionCatalogsExtension +import org.gradle.api.artifacts.VersionConstraint import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.plugins.JavaPlugin import org.gradle.api.tasks.compile.JavaCompile @@ -80,16 +82,20 @@ class GwtTools { } static void applyDefaults(Project p, GwtExtension gwt, boolean compile = false) { - gwt.gwtVersion = Classpaths.GWT_VERSION - gwt.jettyVersion = Classpaths.JETTY_VERSION + def libs = p.getExtensions().getByType(VersionCatalogsExtension).named("libs") + def gwtVersion = libs.findVersion("gwt").map(VersionConstraint::getRequiredVersion).orElseThrow() + def gwtJettyVersion = libs.findVersion("gwtJetty").map(VersionConstraint::getRequiredVersion).orElseThrow() + + gwt.gwtVersion = gwtVersion + gwt.jettyVersion = gwtJettyVersion p.configurations.all { Configuration c -> c.resolutionStrategy.dependencySubstitution { sub -> sub.substitute(sub.module("com.google.gwt:gwt-codeserver")) - .using(sub.module("org.gwtproject:gwt-codeserver:${Classpaths.GWT_VERSION}")) + .using(sub.module("org.gwtproject:gwt-codeserver:${gwtVersion}")) sub.substitute(sub.module("com.google.gwt:gwt-user")) - .using(sub.module("org.gwtproject:gwt-user:${Classpaths.GWT_VERSION}")) + .using(sub.module("org.gwtproject:gwt-user:${gwtVersion}")) sub.substitute(sub.module("com.google.gwt:gwt-dev")) - .using(sub.module("org.gwtproject:gwt-dev:${Classpaths.GWT_VERSION}")) + .using(sub.module("org.gwtproject:gwt-dev:${gwtVersion}")) } } if (compile) { diff --git a/buildSrc/src/main/groovy/io.deephaven.hadoop-common-dependencies.gradle b/buildSrc/src/main/groovy/io.deephaven.hadoop-common-dependencies.gradle new file mode 100644 index 00000000000..5ea0e697d17 --- /dev/null +++ b/buildSrc/src/main/groovy/io.deephaven.hadoop-common-dependencies.gradle @@ -0,0 +1,22 @@ +plugins { + id 'java' +} + +dependencies { + implementation(libs.hadoop.common) { + transitive = false + // Do not take any extra dependencies of this project transitively. We just want a few classes for + // configuration and compression codecs. For any additional required dependencies, add them separately, as + // done for woodstox, shaded-guava, etc. below. Or we can replace setTransitive(false) here with more + // exclusions (we want to avoid pulling in netty, loggers, jetty-util, guice and asm). + } + runtimeOnly(libs.woodstox.core) { + because "hadoop-common required dependency for Configuration" + } + runtimeOnly(libs.hadoop.shaded.guava) { + because "hadoop-common required dependency for Configuration" + } + runtimeOnly(libs.commons.collections) { + because "hadoop-common required dependency for Configuration" + } +} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle index 10f28e4205c..d6163fb3efa 100644 --- a/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle @@ -51,8 +51,9 @@ dependencies { jama 'gov.nist.math.jama:gov.nist.math.jama:1.1.1' mockrunner 'com.mockrunner:mockrunner-jdbc:1.0.4' - Classpaths.inheritJUnitClassic(project, 'junit') - Classpaths.inheritJMock(project, 'junit') + junit libs.junit4 + junit libs.jmock.junit4 + junit libs.jmock.imposters // Now, all the various fish libs we depend on, with inherited dependencies matching // the actual dependencies used in fishlib... if we were strongly coupled, we could skip @@ -75,6 +76,6 @@ dependencies { // https://mvnrepository.com/artifact/com.univocity/univocity-parsers dhBenchmarkSupport 'com.univocity:univocity-parsers:2.6.0' - Classpaths.inheritJacksonPlatform(project, 'dhBenchmarkSupport') - dhBenchmarkSupport 'com.fasterxml.jackson.core:jackson-core' + dhBenchmarkSupport platform(libs.jackson.bom) + dhBenchmarkSupport libs.jackson.core } diff --git a/clock-impl/build.gradle b/clock-impl/build.gradle index 470bb3d443a..b7af62787ed 100644 --- a/clock-impl/build.gradle +++ b/clock-impl/build.gradle @@ -6,7 +6,8 @@ description 'Implementation for the Clock service to obtain allocation-free prec dependencies { implementation project(':clock') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } tasks.withType(JavaCompile).configureEach { diff --git a/codegen/build.gradle b/codegen/build.gradle index f1e4c38a25e..247d699b384 100644 --- a/codegen/build.gradle +++ b/codegen/build.gradle @@ -8,5 +8,5 @@ description 'Codegen: Code generation utilities' dependencies { implementation 'org.freemarker:freemarker:2.3.31' - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 } \ No newline at end of file diff --git a/engine/api/build.gradle b/engine/api/build.gradle index f6e10a07df2..e39e13ad876 100644 --- a/engine/api/build.gradle +++ b/engine/api/build.gradle @@ -19,8 +19,10 @@ dependencies { implementation project(':DataStructures') implementation depTrove3 - Classpaths.inheritImmutables(project) - Classpaths.inheritGuava(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + implementation libs.guava compileOnly 'com.google.code.findbugs:jsr305:3.0.2' @@ -29,10 +31,10 @@ dependencies { testImplementation TestTools.projectDependency(project, 'engine-vector') testImplementation depCommonsLang3 - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/engine/chunk/build.gradle b/engine/chunk/build.gradle index 16aca71378c..c883653c1ed 100644 --- a/engine/chunk/build.gradle +++ b/engine/chunk/build.gradle @@ -9,10 +9,10 @@ dependencies { api project(':Util') implementation project(':Base') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/engine/context/build.gradle b/engine/context/build.gradle index 2b6e72ce090..2b36dd81002 100644 --- a/engine/context/build.gradle +++ b/engine/context/build.gradle @@ -23,13 +23,15 @@ dependencies { implementation 'com.github.f4b6a3:uuid-creator:5.2.0' - Classpaths.inheritCommonsText(project, 'implementation') - Classpaths.inheritImmutables(project) + implementation libs.commons.text + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables testImplementation project(':engine-test-utils') testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/engine/processor-function/build.gradle b/engine/processor-function/build.gradle index bffa74abfaf..e5bcbaf3957 100644 --- a/engine/processor-function/build.gradle +++ b/engine/processor-function/build.gradle @@ -10,11 +10,11 @@ dependencies { implementation project(':engine-time') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/engine/processor/build.gradle b/engine/processor/build.gradle index e83b218b6f7..b5ef94efab7 100644 --- a/engine/processor/build.gradle +++ b/engine/processor/build.gradle @@ -8,13 +8,14 @@ dependencies { api project(':qst-type') api project(':engine-chunk') - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/engine/rowset-test-utils/build.gradle b/engine/rowset-test-utils/build.gradle index 8e1c5108cdf..5fe07f0d84b 100644 --- a/engine/rowset-test-utils/build.gradle +++ b/engine/rowset-test-utils/build.gradle @@ -11,5 +11,5 @@ dependencies { implementation depCommonsLang3 implementation depTrove3 - Classpaths.inheritJUnitClassic(project, 'implementation') + implementation libs.junit4 } diff --git a/engine/rowset/build.gradle b/engine/rowset/build.gradle index dd836e0e552..ca8e5d9c49e 100644 --- a/engine/rowset/build.gradle +++ b/engine/rowset/build.gradle @@ -19,7 +19,7 @@ dependencies { compileOnly 'com.google.code.findbugs:jsr305:3.0.2' compileOnly depAnnotations - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testImplementation project(':base-test-utils') testImplementation project(':engine-test-utils') @@ -27,7 +27,7 @@ dependencies { testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } TestTools.addEngineOutOfBandTest(project) diff --git a/engine/table/build.gradle b/engine/table/build.gradle index 96e23dffa1e..5e45904b291 100644 --- a/engine/table/build.gradle +++ b/engine/table/build.gradle @@ -38,20 +38,22 @@ dependencies { implementation project(':plugin') implementation depCommonsLang3 - Classpaths.inheritCommonsText(project, 'implementation') + implementation libs.commons.text - Classpaths.inheritGroovy(project, 'groovy', 'implementation') - Classpaths.inheritGroovy(project, 'groovy-json', 'implementation') - Classpaths.inheritJavaParser(project, 'implementation') - Classpaths.inheritAutoService(project) + implementation libs.groovy + implementation libs.groovy.json + implementation libs.javaparser.core + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables compileOnly 'com.google.code.findbugs:jsr305:3.0.2' runtimeOnly project(':engine-tuplesource') - Classpaths.inheritGuava(project) + implementation libs.guava testImplementation TestTools.projectDependency(project, 'engine-chunk') testImplementation TestTools.projectDependency(project, 'engine-vector') @@ -69,15 +71,15 @@ dependencies { testImplementation project(':Numerics') testImplementation project(':extensions-suanshu') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation platform(libs.junit.bom) + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } spotless { diff --git a/engine/test-utils/build.gradle b/engine/test-utils/build.gradle index 883e4cd7d00..904f769ab6f 100644 --- a/engine/test-utils/build.gradle +++ b/engine/test-utils/build.gradle @@ -20,7 +20,7 @@ dependencies { implementation 'it.unimi.dsi:fastutil:8.5.13' - Classpaths.inheritJUnitClassic(project, 'implementation') - Classpaths.inheritJUnitPlatform(project, 'implementation') - Classpaths.inheritAssertJ(project, 'implementation') + implementation libs.junit4 + implementation platform(libs.junit.bom) + implementation libs.assertj } diff --git a/engine/time/build.gradle b/engine/time/build.gradle index 1ad3995e386..3a057100582 100644 --- a/engine/time/build.gradle +++ b/engine/time/build.gradle @@ -18,12 +18,13 @@ dependencies { implementation project(':Configuration') implementation project(':log-factory') implementation depJdom2 - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler testImplementation project(':base-test-utils') testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/engine/tuple/build.gradle b/engine/tuple/build.gradle index 1073ff03c1e..c5b04aa9518 100644 --- a/engine/tuple/build.gradle +++ b/engine/tuple/build.gradle @@ -12,12 +12,12 @@ dependencies { implementation project(':DataStructures') implementation project(':log-factory') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } spotless { diff --git a/engine/tuplesource/build.gradle b/engine/tuplesource/build.gradle index afdd0ecaed2..625bc082cf8 100644 --- a/engine/tuplesource/build.gradle +++ b/engine/tuplesource/build.gradle @@ -11,5 +11,6 @@ dependencies { implementation project(':engine-base') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/engine/updategraph/build.gradle b/engine/updategraph/build.gradle index 68ecd87cdf6..80289ddd397 100644 --- a/engine/updategraph/build.gradle +++ b/engine/updategraph/build.gradle @@ -17,11 +17,11 @@ dependencies { testImplementation project(':engine-context') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testImplementation project(':engine-test-utils') testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/engine/vector/build.gradle b/engine/vector/build.gradle index 9271ed56c1c..34718c5347b 100644 --- a/engine/vector/build.gradle +++ b/engine/vector/build.gradle @@ -14,5 +14,5 @@ dependencies { compileOnly depAnnotations - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 } diff --git a/extensions/arrow/build.gradle b/extensions/arrow/build.gradle index 7cf80da2a84..edfee512ef6 100644 --- a/extensions/arrow/build.gradle +++ b/extensions/arrow/build.gradle @@ -11,18 +11,18 @@ dependencies { implementation project(':Configuration') implementation depCommonsLang3 - Classpaths.inheritArrow(project, 'arrow-format', 'implementation') - Classpaths.inheritArrow(project, 'arrow-vector', 'implementation') - Classpaths.inheritArrow(project, 'arrow-compression', 'implementation') + implementation libs.arrow.format + implementation libs.arrow.vector + implementation libs.arrow.compression testImplementation TestTools.projectDependency(project, 'engine-table') - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation platform(libs.junit.bom) + testImplementation libs.assertj } apply plugin: 'io.deephaven.java-open-nio' diff --git a/extensions/barrage/build.gradle b/extensions/barrage/build.gradle index dae5b72f7a3..f542b0a813d 100644 --- a/extensions/barrage/build.gradle +++ b/extensions/barrage/build.gradle @@ -23,21 +23,22 @@ dependencies { api 'io.deephaven.barrage:barrage-format:0.6.0' implementation 'org.hdrhistogram:HdrHistogram:2.1.12' - Classpaths.inheritFlatbuffer(project, 'implementation') + implementation libs.flatbuffers.java - Classpaths.inheritArrow(project, 'arrow-vector', 'implementation') - Classpaths.inheritArrow(project, 'arrow-format', 'implementation') + implementation libs.arrow.vector + implementation libs.arrow.format - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables testImplementation project(':engine-test-utils') - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':test-configs') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } diff --git a/extensions/bson-jackson/build.gradle b/extensions/bson-jackson/build.gradle index 660ef1b207f..9eda850de91 100644 --- a/extensions/bson-jackson/build.gradle +++ b/extensions/bson-jackson/build.gradle @@ -8,14 +8,17 @@ dependencies { api project(':engine-processor') api 'de.undercouch:bson4jackson:2.15.1' - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - Classpaths.inheritJacksonPlatform(project, 'testImplementation') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testImplementation 'com.fasterxml.jackson.core:jackson-databind' + testImplementation platform(libs.jackson.bom) + testImplementation libs.jackson.databind + + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } test { diff --git a/extensions/classgraph/build.gradle b/extensions/classgraph/build.gradle index be3aec5d81c..45f89d8c0e0 100644 --- a/extensions/classgraph/build.gradle +++ b/extensions/classgraph/build.gradle @@ -11,5 +11,6 @@ dependencies { api 'io.github.classgraph:classgraph:4.8.154' - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/extensions/csv/build.gradle b/extensions/csv/build.gradle index a1d85bcbf62..4954ff199da 100644 --- a/extensions/csv/build.gradle +++ b/extensions/csv/build.gradle @@ -14,21 +14,22 @@ dependencies { implementation project(':engine-base') implementation depTrove3 - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation platform(libs.junit.bom) + testImplementation libs.assertj testImplementation depCommonsCompress testImplementation depCommonsIo testImplementation project(':engine-test-utils') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } TestTools.addEngineOutOfBandTest(project) diff --git a/extensions/iceberg/build.gradle b/extensions/iceberg/build.gradle index 18a3e7f9b60..8b61f11ec3e 100644 --- a/extensions/iceberg/build.gradle +++ b/extensions/iceberg/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java-library' id 'io.deephaven.project.register' + id 'io.deephaven.hadoop-common-dependencies' } description 'Iceberg: Support to read iceberg catalogs.' @@ -13,28 +14,40 @@ dependencies { implementation project(':log-factory') implementation project(':Configuration') - Classpaths.inheritAutoService(project) - Classpaths.inheritImmutables(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler - Classpaths.inheritParquetHadoop(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + implementation libs.parquet.hadoop implementation project(':extensions-parquet-base') implementation project(':extensions-parquet-table') - Classpaths.inheritIcebergCore(project) - Classpaths.inheritIcebergHadoop(project) - Classpaths.inheritAvro(project) + api platform(libs.iceberg.bom) + api libs.iceberg.api + implementation libs.iceberg.core + implementation libs.iceberg.bundled.guava + + implementation libs.hadoop.hdfs.client + // Also inherits hadoop-common, see io.deephaven.hadoop-common-dependencies + + implementation libs.avro - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher - Classpaths.inheritTestContainers(project) + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack + testImplementation libs.testcontainers.minio testRuntimeOnly project(':test-configs') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/extensions/iceberg/s3/build.gradle b/extensions/iceberg/s3/build.gradle index be495b1373d..bde1e84bc7f 100644 --- a/extensions/iceberg/s3/build.gradle +++ b/extensions/iceberg/s3/build.gradle @@ -12,23 +12,31 @@ dependencies { implementation project(':extensions-iceberg') // Bring in the AWS / S3 extensions - Classpaths.inheritIcebergCore(project) + api platform(libs.iceberg.bom) + api libs.iceberg.api + implementation libs.iceberg.core + implementation libs.iceberg.bundled.guava implementation project(':extensions-s3') - implementation "org.apache.iceberg:iceberg-aws" + implementation libs.iceberg.aws - Classpaths.inheritAWSSDK(project) - runtimeOnly "software.amazon.awssdk:sts" - runtimeOnly "software.amazon.awssdk:glue" + implementation platform(libs.awssdk.bom) + implementation libs.awssdk.s3 + implementation libs.awssdk.crt.client + runtimeOnly libs.awssdk.sts + runtimeOnly libs.awssdk.glue - Classpaths.inheritTestContainers(project) + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack + testImplementation libs.testcontainers.minio testImplementation TestTools.projectDependency(project, 'extensions-s3') testImplementation TestTools.projectDependency(project, 'extensions-iceberg') testRuntimeOnly project(':test-configs') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } test { diff --git a/extensions/jdbc/build.gradle b/extensions/jdbc/build.gradle index ce1da76ed4d..f9141e8038b 100644 --- a/extensions/jdbc/build.gradle +++ b/extensions/jdbc/build.gradle @@ -11,10 +11,10 @@ dependencies { implementation project(':engine-table'), project(':engine-base') - Classpaths.inheritGuava(project) + implementation libs.guava - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation platform(libs.junit.bom) + testImplementation libs.assertj testImplementation project(':engine-test-utils') testImplementation 'com.h2database:h2:2.1.212' @@ -22,5 +22,5 @@ dependencies { testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } diff --git a/extensions/json-jackson/build.gradle b/extensions/json-jackson/build.gradle index bd18f5a88b4..5d12d000382 100644 --- a/extensions/json-jackson/build.gradle +++ b/extensions/json-jackson/build.gradle @@ -6,10 +6,9 @@ plugins { dependencies { api project(':engine-processor') - Classpaths.inheritJacksonPlatform(project, 'api') - Classpaths.inheritJacksonPlatform(project, 'testImplementation') + api platform(libs.jackson.bom) + api libs.jackson.core - api 'com.fasterxml.jackson.core:jackson-core' // https://github.com/FasterXML/jackson-core/issues/1229 implementation 'ch.randelshofer:fastdoubleparser:1.0.0' @@ -19,14 +18,20 @@ dependencies { implementation project(':engine-query-constants') implementation project(':engine-time') - Classpaths.inheritImmutables(project) - Classpaths.inheritAutoService(project) + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testImplementation 'com.fasterxml.jackson.core:jackson-databind' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + + testImplementation platform(libs.jackson.bom) + testImplementation libs.jackson.databind } test { diff --git a/extensions/json/build.gradle b/extensions/json/build.gradle index 2eb199e160e..8e32c2bf64b 100644 --- a/extensions/json/build.gradle +++ b/extensions/json/build.gradle @@ -4,12 +4,14 @@ plugins { } dependencies { - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } test { diff --git a/extensions/kafka/build.gradle b/extensions/kafka/build.gradle index 082c201b35b..e2252af961c 100644 --- a/extensions/kafka/build.gradle +++ b/extensions/kafka/build.gradle @@ -11,7 +11,7 @@ dependencies { api project(':engine-processor') // Expose Avro to the users of this extension. - Classpaths.inheritAvro(project, JavaPlugin.API_CONFIGURATION_NAME) + api libs.avro // Using io.confluent dependencies requires code in the toplevel build.gradle to add their maven repository. // Note: the -ccs flavor is provided by confluent as their community edition. It is equivalent to the maven central @@ -35,15 +35,16 @@ dependencies { implementation depTrove3 implementation depCommonsLang3 - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables testImplementation project(':engine-test-utils') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj } diff --git a/extensions/parquet/base/build.gradle b/extensions/parquet/base/build.gradle index 6f50b1feeee..ecb4f525be5 100644 --- a/extensions/parquet/base/build.gradle +++ b/extensions/parquet/base/build.gradle @@ -8,7 +8,7 @@ description 'Parquet Base: Libraries for working with Parquet files' dependencies { api project(':util-channel') - Classpaths.inheritParquetHadoop(project) + implementation libs.parquet.hadoop implementation project(':extensions-parquet-compression') implementation project(':Base') @@ -19,5 +19,5 @@ dependencies { implementation depCommonsIo compileOnly depAnnotations - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 } diff --git a/extensions/parquet/compression/build.gradle b/extensions/parquet/compression/build.gradle index 26ce52b1cc3..3d1a55b4eff 100644 --- a/extensions/parquet/compression/build.gradle +++ b/extensions/parquet/compression/build.gradle @@ -1,19 +1,20 @@ plugins { id 'java-library' id 'io.deephaven.project.register' + id 'io.deephaven.hadoop-common-dependencies' } dependencies { api project(':Util') - Classpaths.inheritParquetHadoop(project) - Classpaths.inheritParquetHadoopConfiguration(project) + implementation libs.parquet.hadoop + // Also inherits hadoop-common, see io.deephaven.hadoop-common-dependencies implementation project(':Configuration') implementation depCommonsIo - Classpaths.inheritGuava(project) + implementation libs.guava compileOnly depAnnotations diff --git a/extensions/parquet/table/build.gradle b/extensions/parquet/table/build.gradle index 789b90c571f..5c7f6ec5221 100644 --- a/extensions/parquet/table/build.gradle +++ b/extensions/parquet/table/build.gradle @@ -26,7 +26,7 @@ dependencies { api project(':engine-table') implementation project(':extensions-parquet-base') - Classpaths.inheritParquetHadoop(project) + implementation libs.parquet.hadoop implementation project(':engine-base') implementation project(':extensions-csv') @@ -35,13 +35,14 @@ dependencies { implementation depCommonsLang3 implementation project(':Util') - Classpaths.inheritCommonsText(project, 'implementation') + implementation libs.commons.text - Classpaths.inheritJacksonPlatform(project) - implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml' - implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8' + implementation platform(libs.jackson.bom) + implementation libs.jackson.dataformat.yaml + implementation libs.jackson.datatype.jdk8 - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables compileOnly 'com.google.code.findbugs:jsr305:3.0.2' @@ -49,14 +50,17 @@ dependencies { testImplementation project(':engine-test-utils') testImplementation TestTools.projectDependency(project, 'extensions-s3') - Classpaths.inheritJUnitClassic(project, 'testImplementation') + testImplementation libs.junit4 - Classpaths.inheritTestContainers(project) + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack + testImplementation libs.testcontainers.minio testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple runtimeOnly project(':extensions-trackedfile') diff --git a/extensions/performance/build.gradle b/extensions/performance/build.gradle index 087183810f8..2ef90d557e5 100644 --- a/extensions/performance/build.gradle +++ b/extensions/performance/build.gradle @@ -7,6 +7,7 @@ dependencies { implementation project(':DHProcess') implementation project(':engine-table') implementation project(':Plot') - Classpaths.inheritAutoService(project) - Classpaths.inheritGroovy(project, 'groovy', 'implementation') + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler + implementation libs.groovy } \ No newline at end of file diff --git a/extensions/protobuf/build.gradle b/extensions/protobuf/build.gradle index 50755880755..242e9afca69 100644 --- a/extensions/protobuf/build.gradle +++ b/extensions/protobuf/build.gradle @@ -7,26 +7,28 @@ plugins { dependencies { api project(':qst-type') api project(':util-function') - api 'com.google.protobuf:protobuf-java:3.25.3' + api libs.protobuf.java implementation project(':engine-query-constants') - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables compileOnly depAnnotations - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple - Classpaths.inheritAutoService(project, true) + testCompileOnly libs.autoservice + testAnnotationProcessor libs.autoservice.compiler } test { diff --git a/extensions/s3/build.gradle b/extensions/s3/build.gradle index e376ee51930..c4488f3ef32 100644 --- a/extensions/s3/build.gradle +++ b/extensions/s3/build.gradle @@ -16,28 +16,36 @@ dependencies { implementation project(':Configuration') implementation project(':log-factory') - Classpaths.inheritAWSSDK(project) + implementation platform(libs.awssdk.bom) + implementation libs.awssdk.s3 + implementation libs.awssdk.crt.client compileOnly depAnnotations // For OSUtil testImplementation project(':Stats') - Classpaths.inheritAutoService(project) - Classpaths.inheritImmutables(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - testImplementation 'software.amazon.awssdk:s3-transfer-manager' - Classpaths.inheritTestContainers(project) + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher + + testImplementation libs.awssdk.s3.transfer.manager + testImplementation libs.testcontainers + testImplementation libs.testcontainers.junit.jupiter + testImplementation libs.testcontainers.localstack + testImplementation libs.testcontainers.minio testRuntimeOnly project(':test-configs') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } test { diff --git a/extensions/source-support/build.gradle b/extensions/source-support/build.gradle index f061b6036fe..33b88963b37 100644 --- a/extensions/source-support/build.gradle +++ b/extensions/source-support/build.gradle @@ -18,13 +18,13 @@ dependencies { testImplementation project(':engine-test-utils') testImplementation depCommonsLang3 - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritAssertJ(project) + testImplementation libs.junit4 + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j'), project(path: ':configs'), project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } TestTools.addEngineOutOfBandTest(project) diff --git a/extensions/suanshu/build.gradle b/extensions/suanshu/build.gradle index df00044e0a6..fcf78f7cf47 100644 --- a/extensions/suanshu/build.gradle +++ b/extensions/suanshu/build.gradle @@ -15,7 +15,8 @@ dependencies { api 'io.deephaven:SuanShu:0.1.0' - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler testImplementation project(':engine-table') testImplementation project(':base-test-utils') diff --git a/extensions/trackedfile/build.gradle b/extensions/trackedfile/build.gradle index e5df2b81c16..6ea28e4b4e2 100644 --- a/extensions/trackedfile/build.gradle +++ b/extensions/trackedfile/build.gradle @@ -14,5 +14,6 @@ dependencies { compileOnly depAnnotations - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000000..c2a81edae63 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,162 @@ +[versions] +arrow = "13.0.0" +autoservice = "1.0.1" +avro = "1.11.3" +awssdk = "2.24.5" +# See dependency matrix for particular gRPC versions at https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty +boringssl = "2.0.61.Final" +commons = "1.10.0" +dagger = "2.44" +elemental = "1.2.1" +flatbuffers = "1.12.0" +groovy = "3.0.21" +# Only bump this in concert with boringssl +grpc = "1.58.0" +guava = "33.2.0-jre" +gwt = "2.11.0" +# used by GwtTools +gwtJetty = "9.4.44.v20210927" +hadoop = "3.4.0" +iceberg = "1.5.2" +immutables = "2.9.2" +jackson = "2.17.0" +javaparser = "3.23.0" +javax-validation = "1.0.0.GA" +jetty = "11.0.20" +jsinterop = "2.0.2" +# google is annoying, and have different versions released for the same groupId +jsinterop-base = "1.0.1" +logback = "1.4.14" +parquet = "1.14.0" +protobuf = "3.25.3" +slf4j = "2.0.11" +sslcontext = "8.1.1" + +# test versions +assertj = "3.19.0" +jmock = "2.12.0" +junit = "5.7.2" +junit4 = "4.13.2" +testcontainers = "1.19.4" + +[libraries] +arrow-compression = { module = "org.apache.arrow:arrow-compression", version.ref = "arrow" } +arrow-format = { module = "org.apache.arrow:arrow-format", version.ref = "arrow" } +arrow-vector = { module = "org.apache.arrow:arrow-vector", version.ref = "arrow" } +arrow-flight-core = { module = "org.apache.arrow:flight-core", version.ref = "arrow" } +arrow-flight-grpc = { module = "org.apache.arrow:flight-grpc", version.ref = "arrow" } + +autoservice = { module = "com.google.auto.service:auto-service-annotations", version.ref = "autoservice" } +autoservice-compiler = { module = "com.google.auto.service:auto-service", version.ref = "autoservice" } + +avro = { module = "org.apache.avro:avro", version.ref = "avro" } + +awssdk-bom = { module = "software.amazon.awssdk:bom", version.ref = "awssdk"} +awssdk-crt-client = { module = "software.amazon.awssdk:aws-crt-client" } +awssdk-glue = { module = "software.amazon.awssdk:glue" } +awssdk-s3 = { module = "software.amazon.awssdk:s3" } +awssdk-s3-transfer-manager = { module = "software.amazon.awssdk:s3-transfer-manager" } +awssdk-sts = { module = "software.amazon.awssdk:sts" } + +boringssl = { module = "io.netty:netty-tcnative-boringssl-static", version.ref = "boringssl" } + +commons-text = { module = "org.apache.commons:commons-text", version.ref = "commons" } + +dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" } +dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" } + +elemental-core = { module = "com.google.elemental2:elemental2-core", version.ref = "elemental" } + +flatbuffers-java = { module = "com.google.flatbuffers:flatbuffers-java", version.ref = "flatbuffers" } + +groovy = { module = "org.codehaus.groovy:groovy", version.ref = "groovy" } +groovy-json = { module = "org.codehaus.groovy:groovy-json", version.ref = "groovy" } +groovy-templates = { module = "org.codehaus.groovy:groovy-templates", version.ref = "groovy" } + +grpc-api = { module = "io.grpc:grpc-api" } +grpc-bom = { module = "io.grpc:grpc-bom", version.ref = "grpc"} +grpc-core = { module = "io.grpc:grpc-core" } +grpc-netty = { module = "io.grpc:grpc-netty" } +grpc-protobuf = { module = "io.grpc:grpc-protobuf" } +grpc-services = { module = "io.grpc:grpc-services" } +grpc-stub = { module = "io.grpc:grpc-services" } +grpc-testing = { module = "io.grpc:grpc-testing" } +grpc-util = { module = "io.grpc:grpc-util" } + +guava = { module = "com.google.guava:guava", version.ref = "guava" } + +gwt-user = { module = "org.gwtproject:gwt-user", version.ref = "gwt" } + +hadoop-common = { module = "org.apache.hadoop:hadoop-common", version.ref = "hadoop" } +hadoop-hdfs-client = { module = "org.apache.hadoop:hadoop-hdfs-client", version.ref = "hadoop" } +# These are transitive, inlined versions; see io.deephaven.hadoop-common-dependencies +woodstox-core = { module = "com.fasterxml.woodstox:woodstox-core", version = "6.6.2" } +hadoop-shaded-guava = { module = "org.apache.hadoop.thirdparty:hadoop-shaded-guava", version = "1.2.0" } +commons-collections = { module = "commons-collections:commons-collections", version = "3.2.2" } + +iceberg-api = { module = "org.apache.iceberg:iceberg-api" } +iceberg-aws = { module = "org.apache.iceberg:iceberg-aws" } +iceberg-bom = { module = "org.apache.iceberg:iceberg-bom", version.ref = "iceberg" } +iceberg-bundled-guava = { module = "org.apache.iceberg:iceberg-bundled-guava" } +iceberg-core = { module = "org.apache.iceberg:iceberg-core" } + +immutables = { module = "org.immutables:value", version.ref = "immutables" } + +elemental-dom = { module = "com.google.elemental2:elemental2-dom", version.ref = "elemental" } +elemental-promise = { module = "com.google.elemental2:elemental2-promise", version.ref = "elemental" } + +jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations" } +jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version.ref = "jackson" } +jackson-core = { module = "com.fasterxml.jackson.core:jackson-core" } +jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind" } +jackson-dataformat-yaml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml" } +jackson-datatype-jdk8 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jdk8" } + +javaparser-core = { module = "com.github.javaparser:javaparser-core", version.ref = "javaparser" } + +javax-validation-api = { module = "javax.validation:validation-api", version.ref = "javax-validation" } + +jetty-alpn-java-server = { module = "org.eclipse.jetty:jetty-alpn-java-server" } +jetty-alpn-server = { module = "org.eclipse.jetty:jetty-alpn-server" } +jetty-bom = { module = "org.eclipse.jetty:jetty-bom", version.ref = "jetty" } +jetty-http2-server = { module = "org.eclipse.jetty.http2:http2-server" } +jetty-servlet = { module = "org.eclipse.jetty:jetty-servlet" } +jetty-servlets = { module = "org.eclipse.jetty:jetty-servlets" } +jetty-webapp = { module = "org.eclipse.jetty:jetty-webapp" } +jetty-websocket-jakarta-server = { module = "org.eclipse.jetty.websocket:websocket-jakarta-server" } + +jsinterop-annotations = { module = "com.google.jsinterop:jsinterop-annotations", version.ref = "jsinterop" } +jsinterop-base = { module = "com.google.jsinterop:base", version.ref = "jsinterop-base" } + +logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" } + +parquet-hadoop = { module = "org.apache.parquet:parquet-hadoop", version.ref = "parquet" } + +protobuf-java = { module = "com.google.protobuf:protobuf-java", version.ref = "protobuf" } + +slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } +slf4j-jul-to-slf4j = { module = "org.slf4j:jul-to-slf4j", version.ref = "slf4j" } +slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" } + +sslcontext-kickstart = { module = "io.github.hakky54:sslcontext-kickstart", version.ref = "sslcontext" } +sslcontext-kickstart-jetty = { module = "io.github.hakky54:sslcontext-kickstart-for-jetty", version.ref = "sslcontext" } +sslcontext-kickstart-netty = { module = "io.github.hakky54:sslcontext-kickstart-for-netty", version.ref = "sslcontext" } + +# test libraries +assertj = { module = "org.assertj:assertj-core", version.ref = "assertj" } + +jmock-imposters = { module = "org.jmock:jmock-imposters", version.ref = "jmock" } +jmock-junit4 = { module = "org.jmock:jmock-junit4", version.ref = "jmock" } + +junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter" } +junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine" } +junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher" } +junit-vintage-engine = { module = "org.junit.vintage:junit-vintage-engine" } + +junit4 = { module = "junit:junit", version.ref = "junit4" } + +testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" } +testcontainers-junit-jupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "testcontainers" } +testcontainers-localstack = { module = "org.testcontainers:localstack", version.ref = "testcontainers" } +testcontainers-minio = { module = "org.testcontainers:minio", version.ref = "testcontainers" } diff --git a/grpc-java/grpc-mtls/build.gradle b/grpc-java/grpc-mtls/build.gradle index 9272f0a9f6f..53383e59098 100644 --- a/grpc-java/grpc-mtls/build.gradle +++ b/grpc-java/grpc-mtls/build.gradle @@ -5,8 +5,8 @@ plugins { description = 'Utility project to make x509 client cert available in grpc calls on the server' dependencies { - Classpaths.inheritGrpcPlatform(project) - implementation 'io.grpc:grpc-core' + implementation platform(libs.grpc.bom) + implementation libs.grpc.core } spotless { diff --git a/grpc-java/grpc-servlet-jakarta/build.gradle b/grpc-java/grpc-servlet-jakarta/build.gradle index e65ab770bad..970233fb67a 100644 --- a/grpc-java/grpc-servlet-jakarta/build.gradle +++ b/grpc-java/grpc-servlet-jakarta/build.gradle @@ -4,12 +4,12 @@ plugins { } dependencies { - Classpaths.inheritGrpcPlatform(project) - implementation 'io.grpc:grpc-core' + implementation platform(libs.grpc.bom) + implementation libs.grpc.core compileOnly 'jakarta.servlet:jakarta.servlet-api:5.0.0', 'org.apache.tomcat:annotations-api:6.0.53' - Classpaths.inheritGuava(project) + implementation libs.guava } spotless { diff --git a/grpc-java/grpc-servlet-websocket-jakarta/build.gradle b/grpc-java/grpc-servlet-websocket-jakarta/build.gradle index bbe698ce8bd..b4b881e8d05 100644 --- a/grpc-java/grpc-servlet-websocket-jakarta/build.gradle +++ b/grpc-java/grpc-servlet-websocket-jakarta/build.gradle @@ -4,15 +4,15 @@ plugins { } dependencies { - Classpaths.inheritGrpcPlatform(project) - implementation 'io.grpc:grpc-core' + implementation platform(libs.grpc.bom) + implementation libs.grpc.core // compileOnly 'javax.servlet:javax.servlet-api:4.0.1' implementation 'jakarta.servlet:jakarta.servlet-api:5.0.0' // compileOnly 'javax.websocket:javax.websocket-api:1.1' implementation 'jakarta.websocket:jakarta.websocket-api:2.0.0' - Classpaths.inheritGuava(project) + implementation libs.guava } spotless { diff --git a/hotspot-impl/build.gradle b/hotspot-impl/build.gradle index 20570c9f77e..65562498d26 100644 --- a/hotspot-impl/build.gradle +++ b/hotspot-impl/build.gradle @@ -6,7 +6,8 @@ description 'Implementation for the HotSpot service to obtain JVM instrospection dependencies { implementation project(':hotspot') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } tasks.withType(JavaCompile).configureEach { diff --git a/java-client/barrage-dagger/build.gradle b/java-client/barrage-dagger/build.gradle index 78975677779..1c4db8b278c 100644 --- a/java-client/barrage-dagger/build.gradle +++ b/java-client/barrage-dagger/build.gradle @@ -10,12 +10,12 @@ dependencies { api project(':java-client-flight-dagger') api project(':uri') - Classpaths.inheritDagger(project) - - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + implementation libs.dagger + annotationProcessor libs.dagger.compiler + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter testImplementation project(':log-to-slf4j') } diff --git a/java-client/barrage-examples/build.gradle b/java-client/barrage-examples/build.gradle index 3e51999f057..dc06d40631e 100644 --- a/java-client/barrage-examples/build.gradle +++ b/java-client/barrage-examples/build.gradle @@ -7,12 +7,12 @@ dependencies { implementation project(':java-client-barrage') implementation project(':java-client-example-utilities') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter runtimeOnly project(':log-to-slf4j') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } test { diff --git a/java-client/barrage/build.gradle b/java-client/barrage/build.gradle index 4e9289efc00..51831fedb34 100644 --- a/java-client/barrage/build.gradle +++ b/java-client/barrage/build.gradle @@ -17,13 +17,14 @@ dependencies { compileOnly 'javax.inject:javax.inject:1' - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } diff --git a/java-client/example-utilities/build.gradle b/java-client/example-utilities/build.gradle index 9f1dba0d177..15abc65c4b3 100644 --- a/java-client/example-utilities/build.gradle +++ b/java-client/example-utilities/build.gradle @@ -7,6 +7,6 @@ dependencies { api 'info.picocli:picocli:4.6.1' api project(':java-client-session') - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-api' + api platform(libs.grpc.bom) + api libs.grpc.api } diff --git a/java-client/flight-dagger/build.gradle b/java-client/flight-dagger/build.gradle index dc2f030f9b7..bbf62bb5ba0 100644 --- a/java-client/flight-dagger/build.gradle +++ b/java-client/flight-dagger/build.gradle @@ -9,10 +9,11 @@ dependencies { api project(':java-client-flight') api project(':java-client-session-dagger') - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple // Unable to use newer junit here because of test-libs/junit-wall-4.11.jar /* @@ -23,7 +24,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' */ - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj testImplementation project(':server') testImplementation project(':server-test-utils') diff --git a/java-client/flight-examples/build.gradle b/java-client/flight-examples/build.gradle index bae95faa3ec..ed9dd880546 100644 --- a/java-client/flight-examples/build.gradle +++ b/java-client/flight-examples/build.gradle @@ -9,12 +9,12 @@ dependencies { implementation "io.deephaven.barrage:barrage-format:0.6.0" - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritLogbackClassic(project) + implementation libs.slf4j.api + runtimeOnly libs.logback.classic } test { diff --git a/java-client/flight/build.gradle b/java-client/flight/build.gradle index 93cc54e21a9..a2f0a14a7d8 100644 --- a/java-client/flight/build.gradle +++ b/java-client/flight/build.gradle @@ -9,16 +9,18 @@ dependencies { api project(':java-client-session') implementation project(':proto:proto-backplane-grpc-flight') - Classpaths.inheritArrow(project, 'flight-core', 'api') - Classpaths.inheritArrow(project, 'flight-grpc', 'implementation') - Classpaths.inheritArrow(project, 'arrow-vector', 'api') - Classpaths.inheritAutoService(project) + api libs.arrow.flight.core + implementation libs.arrow.flight.grpc + api libs.arrow.vector + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter } test { diff --git a/java-client/session-dagger/build.gradle b/java-client/session-dagger/build.gradle index ec5209bf0e4..38b325c47a1 100644 --- a/java-client/session-dagger/build.gradle +++ b/java-client/session-dagger/build.gradle @@ -8,13 +8,14 @@ description = 'The Deephaven client session dagger library' dependencies { api project(':java-client-session') - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-api' + api platform(libs.grpc.bom) + api libs.grpc.api - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple // Unable to use newer junit here because of test-libs/junit-wall-4.11.jar /* @@ -25,7 +26,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' */ - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj testImplementation project(':server') testImplementation project(':server-test-utils') @@ -36,7 +37,8 @@ dependencies { testImplementation project(':plugin-echo') testImplementation project(':plugin-figure') testImplementation project(':log-to-slf4j') - Classpaths.inheritAutoService(project, true) + testCompileOnly libs.autoservice + testAnnotationProcessor libs.autoservice.compiler } test { diff --git a/java-client/session-examples/build.gradle b/java-client/session-examples/build.gradle index 8efd6a02de8..db9d4d859bf 100644 --- a/java-client/session-examples/build.gradle +++ b/java-client/session-examples/build.gradle @@ -7,14 +7,14 @@ dependencies { implementation project(':java-client-session') implementation project(':java-client-example-utilities') - Classpaths.inheritGrpcPlatform(project) - runtimeOnly 'io.grpc:grpc-netty' + implementation platform(libs.grpc.bom) + runtimeOnly libs.grpc.netty - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } test { diff --git a/java-client/session/build.gradle b/java-client/session/build.gradle index 4f9dc333a90..000c8b2035d 100644 --- a/java-client/session/build.gradle +++ b/java-client/session/build.gradle @@ -9,35 +9,38 @@ dependencies { api project(':qst') api project(':uri') - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-api' - implementation 'io.grpc:grpc-core' - implementation 'io.grpc:grpc-netty' + api platform(libs.grpc.bom) + api libs.grpc.api + implementation libs.grpc.core + implementation libs.grpc.netty // TODO(deephaven-core#1783): Make proto-backplane-grpc implementation dependency api project(':proto:proto-backplane-grpc') api project(':ssl-config') implementation project(':ssl-kickstart') - Classpaths.inheritSSLContext(project, 'sslcontext-kickstart-for-netty') + implementation libs.sslcontext.kickstart.netty - Classpaths.inheritImmutables(project) - Classpaths.inheritAutoService(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler compileOnly 'javax.inject:javax.inject:1' - Classpaths.inheritJUnitPlatform(project) + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.vintage.engine + testRuntimeOnly libs.junit.platform.launcher - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.vintage:junit-vintage-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' - Classpaths.inheritJUnitClassic(project, 'testImplementation') - testImplementation 'io.grpc:grpc-testing' + testImplementation libs.junit4 + testImplementation libs.grpc.testing - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + implementation libs.slf4j.api + testRuntimeOnly libs.slf4j.simple } test { diff --git a/java-client/uri/build.gradle b/java-client/uri/build.gradle index a41c229676d..cbefb237167 100644 --- a/java-client/uri/build.gradle +++ b/java-client/uri/build.gradle @@ -6,14 +6,15 @@ plugins { description = 'The Deephaven URI library' dependencies { - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj } test { diff --git a/log-factory/examples/example-base/build.gradle b/log-factory/examples/example-base/build.gradle index 85c4b6892cd..568a6c497de 100644 --- a/log-factory/examples/example-base/build.gradle +++ b/log-factory/examples/example-base/build.gradle @@ -5,5 +5,5 @@ plugins { dependencies { implementation project(':log-factory') - Classpaths.inheritSlf4j(project, 'slf4j-api', 'implementation') + implementation libs.slf4j.api } diff --git a/log-factory/examples/example-logback/build.gradle b/log-factory/examples/example-logback/build.gradle index f8fbb0de60b..971c4cee9c9 100644 --- a/log-factory/examples/example-logback/build.gradle +++ b/log-factory/examples/example-logback/build.gradle @@ -7,7 +7,7 @@ dependencies { implementation project(':log-example-base') runtimeOnly project(':log-to-slf4j') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } application { diff --git a/log-factory/examples/example-slf4j/build.gradle b/log-factory/examples/example-slf4j/build.gradle index 9c25032ccc5..8cb0a4ab1e7 100644 --- a/log-factory/examples/example-slf4j/build.gradle +++ b/log-factory/examples/example-slf4j/build.gradle @@ -7,7 +7,7 @@ dependencies { implementation project(':log-example-base') runtimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'runtimeOnly') + runtimeOnly libs.slf4j.simple } application { diff --git a/log-factory/sinks/log-to-file/build.gradle b/log-factory/sinks/log-to-file/build.gradle index 8c4f15930bb..2ddc42f2273 100644 --- a/log-factory/sinks/log-to-file/build.gradle +++ b/log-factory/sinks/log-to-file/build.gradle @@ -9,5 +9,6 @@ dependencies { // access to the internal logger. implementation project(':log-factory') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/log-factory/sinks/log-to-logbuffer/build.gradle b/log-factory/sinks/log-to-logbuffer/build.gradle index 1e719a8e997..f0768c50958 100644 --- a/log-factory/sinks/log-to-logbuffer/build.gradle +++ b/log-factory/sinks/log-to-logbuffer/build.gradle @@ -10,5 +10,6 @@ configurations { dependencies { compileOnly project(':log-factory') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/log-factory/sinks/log-to-slf4j/build.gradle b/log-factory/sinks/log-to-slf4j/build.gradle index 02dd0ccc440..1a683f88228 100644 --- a/log-factory/sinks/log-to-slf4j/build.gradle +++ b/log-factory/sinks/log-to-slf4j/build.gradle @@ -8,7 +8,8 @@ dependencies { // internal logger, that is in service of the ServiceLoader - and if consumers should not need // access to the internal logger. implementation project(':log-factory') - Classpaths.inheritSlf4j(project, 'slf4j-api', 'compileOnly') // users must provide their own impl and slf4j config - Classpaths.inheritLogbackClassic(project, 'compileOnly') // so we can attach an interceptor, if supported - Classpaths.inheritAutoService(project) + compileOnly libs.slf4j.api // users must provide their own impl and slf4j config + compileOnly libs.logback.classic // so we can attach an interceptor, if supported + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/log-factory/sinks/log-to-stream/build.gradle b/log-factory/sinks/log-to-stream/build.gradle index 338f00f9092..4070feefce3 100644 --- a/log-factory/sinks/log-to-stream/build.gradle +++ b/log-factory/sinks/log-to-stream/build.gradle @@ -8,5 +8,6 @@ dependencies { // internal logger, that is in service of the ServiceLoader - and if consumers should not need // access to the internal logger. implementation project(':log-factory') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/log-factory/sinks/logback-logbuffer/build.gradle b/log-factory/sinks/logback-logbuffer/build.gradle index 208d15e28c9..fa5bf1f7de7 100644 --- a/log-factory/sinks/logback-logbuffer/build.gradle +++ b/log-factory/sinks/logback-logbuffer/build.gradle @@ -9,5 +9,5 @@ configurations { dependencies { // consumer still needs to provide dependency - Classpaths.inheritLogbackClassic(project, 'compileOnly') + compileOnly libs.logback.classic } diff --git a/log-factory/sinks/logback-print-stream-globals/build.gradle b/log-factory/sinks/logback-print-stream-globals/build.gradle index 738f072066e..7935cfde2cb 100644 --- a/log-factory/sinks/logback-print-stream-globals/build.gradle +++ b/log-factory/sinks/logback-print-stream-globals/build.gradle @@ -9,5 +9,5 @@ configurations { dependencies { // consumer still needs to provide dependency - Classpaths.inheritLogbackClassic(project, 'compileOnly') + compileOnly libs.logback.classic } diff --git a/log-factory/sources/slf4j-to-log/build.gradle b/log-factory/sources/slf4j-to-log/build.gradle index 0e8de1b650c..b4f8f5738ab 100644 --- a/log-factory/sources/slf4j-to-log/build.gradle +++ b/log-factory/sources/slf4j-to-log/build.gradle @@ -5,6 +5,7 @@ plugins { dependencies { implementation project(':log-factory') - Classpaths.inheritSlf4j(project, 'slf4j-api', 'compileOnly') // users must provide their own api hooks - Classpaths.inheritAutoService(project) + compileOnly libs.slf4j.api // users must provide their own api hooks + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/open-api/lang-parser/lang-parser.gradle b/open-api/lang-parser/lang-parser.gradle index dc1b7bf805f..fdd2bfa5ad5 100644 --- a/open-api/lang-parser/lang-parser.gradle +++ b/open-api/lang-parser/lang-parser.gradle @@ -12,8 +12,8 @@ dependencies { api project(':open-api-shared-fu') implementation project(':log-factory') api project(':proto:proto-backplane-grpc') + implementation libs.javaparser.core } -Classpaths.inheritJavaParser(project, 'implementation') // All javacc plugin configuration disabled to avoid weird IntelliJ breakage // when we try to manually patch the plugin. Will reinstate once upstream diff --git a/open-api/lang-tools/lang-tools.gradle b/open-api/lang-tools/lang-tools.gradle index b91c8029f48..07ace25f46d 100644 --- a/open-api/lang-tools/lang-tools.gradle +++ b/open-api/lang-tools/lang-tools.gradle @@ -4,8 +4,8 @@ plugins { id 'java-library' } -Classpaths.inheritCommonsText(project, 'implementation') dependencies { + implementation libs.commons.text implementation project(':open-api-lang-parser') implementation project(':engine-table') @@ -15,11 +15,11 @@ dependencies { testImplementation 'org.spockframework:spock-core:2.0-groovy-3.0' - Classpaths.inheritJUnitPlatform(project) - testImplementation 'org.junit.jupiter:junit-jupiter' + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter - Classpaths.inheritGroovy(project, 'groovy', 'testImplementation') - Classpaths.inheritGroovy(project, 'groovy-templates', 'testImplementation') + testImplementation libs.groovy + testImplementation libs.groovy.templates testImplementation project(':engine-test-utils') testRuntimeOnly project(':configs') @@ -30,7 +30,7 @@ dependencies { testRuntimeOnly files('build/resources/main') testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } test { diff --git a/plugin/build.gradle b/plugin/build.gradle index 8edf2eb2438..c067fbe73a7 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -5,4 +5,7 @@ plugins { description = 'The Deephaven plugin interface' -Classpaths.inheritImmutables(project) +dependencies { + compileOnly project(':util-immutables') + annotationProcessor libs.immutables +} diff --git a/plugin/dagger/build.gradle b/plugin/dagger/build.gradle index cca2c8e6dfd..4b3db99c9b2 100644 --- a/plugin/dagger/build.gradle +++ b/plugin/dagger/build.gradle @@ -7,14 +7,19 @@ description = 'Dagger for Deephaven plugins' dependencies { api project(':plugin') - Classpaths.inheritDagger(project) - Classpaths.inheritDagger(project, true) // test - Classpaths.inheritAutoService(project, true) // test - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + implementation libs.dagger + annotationProcessor libs.dagger.compiler + + testImplementation libs.dagger + testAnnotationProcessor libs.dagger.compiler + + testCompileOnly libs.autoservice + testAnnotationProcessor libs.autoservice.compiler + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/plugin/echo/build.gradle b/plugin/echo/build.gradle index 240a370bd66..688f9db6758 100644 --- a/plugin/echo/build.gradle +++ b/plugin/echo/build.gradle @@ -5,5 +5,6 @@ plugins { dependencies { api project(':plugin') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/plugin/figure/build.gradle b/plugin/figure/build.gradle index a79919ed4b8..c42ac3a597e 100644 --- a/plugin/figure/build.gradle +++ b/plugin/figure/build.gradle @@ -9,5 +9,6 @@ dependencies { implementation project(':Plot') implementation project(':extensions-barrage') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/plugin/hierarchicaltable/build.gradle b/plugin/hierarchicaltable/build.gradle index 721953224d7..72589c8cf6f 100644 --- a/plugin/hierarchicaltable/build.gradle +++ b/plugin/hierarchicaltable/build.gradle @@ -9,5 +9,6 @@ dependencies { implementation project(':extensions-barrage') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/plugin/partitionedtable/build.gradle b/plugin/partitionedtable/build.gradle index 721953224d7..72589c8cf6f 100644 --- a/plugin/partitionedtable/build.gradle +++ b/plugin/partitionedtable/build.gradle @@ -9,5 +9,6 @@ dependencies { implementation project(':extensions-barrage') - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/props/test-configs/build.gradle b/props/test-configs/build.gradle index c10561e87c7..355b0ff08dd 100644 --- a/props/test-configs/build.gradle +++ b/props/test-configs/build.gradle @@ -7,5 +7,6 @@ configurations { } dependencies { - Classpaths.inheritAutoService(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler } diff --git a/proto/proto-backplane-grpc-flight/build.gradle b/proto/proto-backplane-grpc-flight/build.gradle index 56323e01b50..79437d364b8 100644 --- a/proto/proto-backplane-grpc-flight/build.gradle +++ b/proto/proto-backplane-grpc-flight/build.gradle @@ -7,5 +7,5 @@ description = 'The Deephaven proto-backplane-grpc-flight' dependencies { api project(':proto:proto-backplane-grpc') - Classpaths.inheritArrow(project, 'flight-core', 'api') + api libs.arrow.flight.core } diff --git a/proto/proto-backplane-grpc/build.gradle b/proto/proto-backplane-grpc/build.gradle index f911de50fdc..c939556efda 100644 --- a/proto/proto-backplane-grpc/build.gradle +++ b/proto/proto-backplane-grpc/build.gradle @@ -25,18 +25,18 @@ configurations { dependencies { // This should be implementation, if listed at all, at least once we have own own version management - Classpaths.inheritProtobuf(project, 'api') + api libs.protobuf.java - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-protobuf' - api 'io.grpc:grpc-api' - api 'io.grpc:grpc-stub' + api platform(libs.grpc.bom) + api libs.grpc.protobuf + api libs.grpc.api + api libs.grpc.stub - Classpaths.inheritBoringSsl(project) + runtimeOnly libs.boringssl // This is excessive, and brings in every grpc jar, making it compile-only limits what it pulls in to // downstream classpaths - Classpaths.inheritArrow(project, 'flight-core', 'compileOnly') + compileOnly libs.arrow.flight.core compileOnly 'javax.inject:javax.inject:1' compileOnly "javax.annotation:javax.annotation-api:1.3.1" @@ -45,7 +45,7 @@ dependencies { // the same output that it contains, and we have declared the correct dependencies as necessary // compile 'io.deephaven.barrage:barrage-core:0.5.0' download 'io.deephaven.barrage:barrage-core:0.6.0' - Classpaths.inheritArrow(project, 'flight-core', 'download') + download libs.arrow.flight.core } TaskProvider generateProtobuf = Docker.registerDockerTask(project, 'generateProtobuf') { diff --git a/py/embedded-server/java-runtime/build.gradle b/py/embedded-server/java-runtime/build.gradle index b3e43690825..4076cfde67e 100644 --- a/py/embedded-server/java-runtime/build.gradle +++ b/py/embedded-server/java-runtime/build.gradle @@ -10,9 +10,10 @@ configurations { dependencies { implementation project(':server-jetty') - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritGrpcPlatform(project) + implementation platform(libs.grpc.bom) implementation project(':grpc-java:grpc-servlet-jakarta') implementation project(':grpc-java:grpc-servlet-websocket-jakarta') @@ -20,7 +21,7 @@ dependencies { runtimeOnly project(':log-to-slf4j') runtimeOnly project(':logback-print-stream-globals') runtimeOnly project(':logback-logbuffer') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic if (!hasProperty('excludeHotspotImpl')) { runtimeOnly project(':hotspot-impl') diff --git a/qst/build.gradle b/qst/build.gradle index 823fc46d03e..27709e05351 100644 --- a/qst/build.gradle +++ b/qst/build.gradle @@ -10,12 +10,13 @@ dependencies { api project(':table-api') implementation project(':engine-query-constants') - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/qst/graphviz/build.gradle b/qst/graphviz/build.gradle index aa097620ffa..2de5dcdaa43 100644 --- a/qst/graphviz/build.gradle +++ b/qst/graphviz/build.gradle @@ -12,12 +12,12 @@ dependencies { implementation 'info.picocli:picocli:4.6.1' - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher - Classpaths.inheritLogbackClassic(project, 'implementation') + implementation libs.logback.classic } test { diff --git a/qst/type/build.gradle b/qst/type/build.gradle index 18143433a0f..d41c479e2d7 100644 --- a/qst/type/build.gradle +++ b/qst/type/build.gradle @@ -6,11 +6,13 @@ plugins { description = 'The Deephaven QST Types' dependencies { - Classpaths.inheritImmutables(project) - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/replication/reflective/build.gradle b/replication/reflective/build.gradle index d028ff2b738..3d7bce37751 100644 --- a/replication/reflective/build.gradle +++ b/replication/reflective/build.gradle @@ -16,9 +16,9 @@ dependencies { runtimeOnly project(':log-to-slf4j') runtimeOnly project(path: ':configs') runtimeOnly project(path: ':test-configs') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'runtimeOnly') + runtimeOnly libs.slf4j.simple - Classpaths.inheritArrow(project, 'arrow-vector', 'implementation') + implementation libs.arrow.vector } task replicateAll { diff --git a/server/build.gradle b/server/build.gradle index 27f6f18aa0a..d4dbfa5f84c 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -15,9 +15,9 @@ dependencies { implementation project(':Util'); implementation project(':Integrations') implementation depCommonsLang3 - Classpaths.inheritCommonsText(project, 'implementation') + implementation libs.commons.text - Classpaths.inheritJavaParser(project, 'implementation') + implementation libs.javaparser.core implementation project(':open-api-lang-parser') api(project(':java-client-barrage')) @@ -33,7 +33,7 @@ dependencies { api(project(':log-factory')) { because 'downstream dagger compile, see deephaven-core#1722' } - Classpaths.inheritSlf4j(project, 'jul-to-slf4j', 'implementation') + implementation libs.slf4j.jul.to.slf4j api(project(':application-mode')) { because 'downstream dagger compile, see deephaven-core#1722' } @@ -45,15 +45,21 @@ dependencies { api project(':ssl-config') - Classpaths.inheritFlatbuffer(project, 'implementation') + implementation libs.flatbuffers.java - Classpaths.inheritDagger(project) - Classpaths.inheritDagger(project, /* test */ true) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritAutoService(project) - Classpaths.inheritAutoService(project, /* test */ true) + testImplementation libs.dagger + testAnnotationProcessor libs.dagger.compiler - Classpaths.inheritImmutables(project) + compileOnly libs.autoservice + annotationProcessor libs.autoservice.compiler + testCompileOnly libs.autoservice + testAnnotationProcessor libs.autoservice.compiler + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables implementation project(':Plot') @@ -80,9 +86,9 @@ dependencies { runtimeOnly project(':plugin-hierarchicaltable') implementation project(':plugin-gc-app') - Classpaths.inheritGrpcPlatform(project, 'api') + api platform(libs.grpc.bom) - api('io.grpc:grpc-services') { + api(libs.grpc.services) { because 'downstream dagger compile, see deephaven-core#1722' } @@ -93,10 +99,10 @@ dependencies { testImplementation project(':server-test-utils') runtimeOnly project(':Numerics'), project(':extensions-kafka') - Classpaths.inheritAssertJ(project) + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple runtimeOnly project(':authentication:example-providers:psk') } diff --git a/server/jetty-app-custom/build.gradle b/server/jetty-app-custom/build.gradle index 2224c4e3f90..b66da129e31 100644 --- a/server/jetty-app-custom/build.gradle +++ b/server/jetty-app-custom/build.gradle @@ -9,12 +9,13 @@ configurations { dependencies { implementation project(':server-jetty') - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler runtimeOnly project(':log-to-slf4j') runtimeOnly project(':logback-print-stream-globals') runtimeOnly project(':logback-logbuffer') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } distributions { diff --git a/server/jetty-app/build.gradle b/server/jetty-app/build.gradle index b2024d8b209..5a74c1ce660 100644 --- a/server/jetty-app/build.gradle +++ b/server/jetty-app/build.gradle @@ -13,7 +13,7 @@ dependencies { runtimeOnly project(':log-to-slf4j') runtimeOnly project(':logback-print-stream-globals') runtimeOnly project(':logback-logbuffer') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } distributions { diff --git a/server/jetty/build.gradle b/server/jetty/build.gradle index 44e91f47a43..2bbd813785d 100644 --- a/server/jetty/build.gradle +++ b/server/jetty/build.gradle @@ -12,40 +12,45 @@ dependencies { } runtimeOnly(project(':web')) - Classpaths.inheritDagger(project) - Classpaths.inheritDagger(project, /* test */ true) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritGrpcPlatform(project) - Classpaths.inheritJetty11Platform(project) + testImplementation libs.dagger + testAnnotationProcessor libs.dagger.compiler + + implementation platform(libs.grpc.bom) + implementation platform(libs.jetty.bom) api 'jakarta.servlet:jakarta.servlet-api:5.0.0' - implementation 'org.eclipse.jetty:jetty-servlet' - implementation 'org.eclipse.jetty:jetty-servlets' - implementation 'org.eclipse.jetty:jetty-webapp' - implementation 'org.eclipse.jetty.http2:http2-server' - implementation 'org.eclipse.jetty:jetty-alpn-server' + implementation libs.jetty.servlet + implementation libs.jetty.servlets + implementation libs.jetty.webapp + implementation libs.jetty.http2.server + implementation libs.jetty.alpn.server // TODO(deephaven-core#2506): Support for alternative ALPN implementations - runtimeOnly 'org.eclipse.jetty:jetty-alpn-java-server' + runtimeOnly libs.jetty.alpn.java.server // implementation 'io.grpc:grpc-servlet-jakarta' api(project(':grpc-java:grpc-servlet-jakarta')) { because 'downstream dagger compile' } implementation project(':grpc-java:grpc-servlet-websocket-jakarta') - implementation 'org.eclipse.jetty.websocket:websocket-jakarta-server' + implementation libs.jetty.websocket.jakarta.server + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritImmutables(project) implementation project(':ssl-kickstart') - Classpaths.inheritSSLContext(project, 'sslcontext-kickstart-for-jetty') + implementation libs.sslcontext.kickstart.jetty implementation project(':grpc-java:grpc-mtls') testImplementation project(':server-test-utils') - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritAssertJ(project) + testImplementation libs.junit4 + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } test.systemProperty "PeriodicUpdateGraph.allowUnitTestMode", false diff --git a/server/netty-app/build.gradle b/server/netty-app/build.gradle index 95d9eeea483..f5891c28a57 100644 --- a/server/netty-app/build.gradle +++ b/server/netty-app/build.gradle @@ -13,7 +13,7 @@ dependencies { runtimeOnly project(':log-to-slf4j') runtimeOnly project(':logback-print-stream-globals') runtimeOnly project(':logback-logbuffer') - Classpaths.inheritLogbackClassic(project) + runtimeOnly libs.logback.classic } distributions { diff --git a/server/netty/build.gradle b/server/netty/build.gradle index 3eacfa0724a..6dd3c3ffb68 100644 --- a/server/netty/build.gradle +++ b/server/netty/build.gradle @@ -11,24 +11,29 @@ dependencies { because 'downstream dagger compile' } - Classpaths.inheritDagger(project) - Classpaths.inheritDagger(project, /* test */ true) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritGrpcPlatform(project) - implementation 'io.grpc:grpc-netty' + testImplementation libs.dagger + testAnnotationProcessor libs.dagger.compiler + + implementation platform(libs.grpc.bom) + implementation libs.grpc.netty + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritImmutables(project) implementation project(':ssl-kickstart') - Classpaths.inheritSSLContext(project, 'sslcontext-kickstart-for-netty') + implementation libs.sslcontext.kickstart.netty implementation project(':grpc-java:grpc-mtls') testImplementation project(':server-test-utils') - Classpaths.inheritJUnitClassic(project, 'testImplementation') - Classpaths.inheritAssertJ(project) + testImplementation libs.junit4 + testImplementation libs.assertj testRuntimeOnly project(':log-to-slf4j') - Classpaths.inheritSlf4j(project, 'slf4j-simple', 'testRuntimeOnly') + testRuntimeOnly libs.slf4j.simple } test.systemProperty "PeriodicUpdateGraph.allowUnitTestMode", false diff --git a/server/test-utils/build.gradle b/server/test-utils/build.gradle index 6ff2af4b516..366e7730fdb 100644 --- a/server/test-utils/build.gradle +++ b/server/test-utils/build.gradle @@ -16,14 +16,16 @@ dependencies { implementation depCommonsLang3 api project(':engine-test-utils') - Classpaths.inheritGrpcPlatform(project, 'api') - api 'io.grpc:grpc-testing' + api platform(libs.grpc.bom) + api libs.grpc.testing - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritArrow(project, 'flight-core', 'implementation') + implementation libs.arrow.flight.core - Classpaths.inheritDagger(project) + implementation libs.dagger + annotationProcessor libs.dagger.compiler - Classpaths.inheritJUnitClassic(project, 'api') + api libs.junit4 } diff --git a/sql/build.gradle b/sql/build.gradle index e3c5efe3573..84465d1b86e 100644 --- a/sql/build.gradle +++ b/sql/build.gradle @@ -17,12 +17,13 @@ dependencies { } } - Classpaths.inheritImmutables(project) + compileOnly project(':util-immutables') + annotationProcessor libs.immutables - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/ssl/config/build.gradle b/ssl/config/build.gradle index 0c5cd252a30..812ed9210c2 100644 --- a/ssl/config/build.gradle +++ b/ssl/config/build.gradle @@ -6,21 +6,22 @@ plugins { description = 'The Deephaven SSL Configuration' dependencies { - Classpaths.inheritImmutables(project) - Classpaths.inheritJacksonPlatform(project, 'api') - Classpaths.inheritGrpcPlatform(project) - api 'com.fasterxml.jackson.core:jackson-annotations' - implementation 'com.fasterxml.jackson.core:jackson-databind' - runtimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-jdk8') { + compileOnly project(':util-immutables') + annotationProcessor libs.immutables + + implementation platform(libs.grpc.bom) + api platform(libs.jackson.bom) + api libs.jackson.annotations + implementation libs.jackson.databind + runtimeOnly(libs.jackson.datatype.jdk8) { because 'we need to parse optional types' } - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.jupiter.engine + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/ssl/kickstart/build.gradle b/ssl/kickstart/build.gradle index 65a46a5e455..fd47f380235 100644 --- a/ssl/kickstart/build.gradle +++ b/ssl/kickstart/build.gradle @@ -8,10 +8,10 @@ description = 'The internal Deephaven ssl-kickstart integration' dependencies { api project(':ssl-config') - Classpaths.inheritSSLContext(project, 'sslcontext-kickstart', 'api') + api libs.sslcontext.kickstart - Classpaths.inheritGrpcPlatform(project) - compileOnly('io.grpc:grpc-util') { + implementation platform(libs.grpc.bom) + compileOnly(libs.grpc.util) { because 'we need access to CertificateUtils' } } diff --git a/table-api/build.gradle b/table-api/build.gradle index 4055fcf4eea..25948eb6c95 100644 --- a/table-api/build.gradle +++ b/table-api/build.gradle @@ -7,15 +7,17 @@ description = 'The Deephaven table operations API' dependencies { implementation project(':engine-query-constants') - Classpaths.inheritCommonsText(project, 'implementation') - Classpaths.inheritImmutables(project) + implementation libs.commons.text + + compileOnly project(':util-immutables') + annotationProcessor libs.immutables compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - Classpaths.inheritJUnitPlatform(project) - Classpaths.inheritAssertJ(project) - testImplementation 'org.junit.jupiter:junit-jupiter' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation libs.assertj + testImplementation platform(libs.junit.bom) + testImplementation libs.junit.jupiter + testRuntimeOnly libs.junit.platform.launcher } test { diff --git a/web/client-api/client-api.gradle b/web/client-api/client-api.gradle index 1a43cc08a7a..8ad75e7513e 100644 --- a/web/client-api/client-api.gradle +++ b/web/client-api/client-api.gradle @@ -29,11 +29,13 @@ dependencies { js project(path: ':proto:raw-js-openapi', configuration: 'js') testImplementation 'org.seleniumhq.selenium:selenium-remote-driver:4.16.1' + + implementation libs.elemental.core + implementation libs.elemental.promise + implementation libs.elemental.dom + + testImplementation libs.gwt.user } -Classpaths.inheritElemental(project, 'elemental2-core', 'implementation') -Classpaths.inheritElemental(project, 'elemental2-promise', 'implementation') -Classpaths.inheritElemental(project, 'elemental2-dom', 'implementation') -Classpaths.inheritGwt(project, 'gwt-user', 'testImplementation') GwtTools.gwtCompile project, 'io.deephaven.web.DeephavenApi', 'Create a jar of client JS API' diff --git a/web/client-backplane/client-backplane.gradle b/web/client-backplane/client-backplane.gradle index 0a9fcab9750..29f81ed0f2c 100644 --- a/web/client-backplane/client-backplane.gradle +++ b/web/client-backplane/client-backplane.gradle @@ -3,7 +3,11 @@ plugins { } GwtTools.gwtLib project -Classpaths.inheritJsInterop(project, 'base', 'implementation') -Classpaths.inheritJsInterop(project, 'jsinterop-annotations', 'compileOnly') -Classpaths.inheritElemental(project, 'elemental2-core', 'implementation') -Classpaths.inheritElemental(project, 'elemental2-promise', 'implementation') + +dependencies { + implementation libs.jsinterop.base + compileOnly libs.jsinterop.annotations + + implementation libs.elemental.core + implementation libs.elemental.promise +} diff --git a/web/shared-beans/shared-beans.gradle b/web/shared-beans/shared-beans.gradle index 8cbca1fba04..71f75c5aa53 100644 --- a/web/shared-beans/shared-beans.gradle +++ b/web/shared-beans/shared-beans.gradle @@ -12,13 +12,14 @@ configurations { dependencies { api project(':open-api-shared-fu') - Classpaths.inheritGuava(project, 'testImplementation') -} + testImplementation libs.guava + + implementation libs.elemental.core + compileOnly libs.javax.validation.api -// non-transitive dependency -Classpaths.inheritGwt project, 'gwt-user', 'compileOnly' + // upgrade inherited dependencies to become transitive + compileOnly libs.jsinterop.annotations -// upgrade inherited dependencies to become transitive -Classpaths.inheritJsInterop(project, 'jsinterop-annotations', 'compileOnly') -Classpaths.inheritJavaxAnnotations(project, 'compileOnly') -Classpaths.inheritElemental(project, 'elemental2-core', 'implementation') + // non-transitive dependency + compileOnly libs.gwt.user +}