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 +}