From 619ba4e8c35ad3a5eb2121d7cb2ad8a4fafb99a1 Mon Sep 17 00:00:00 2001 From: Devin Smith Date: Mon, 8 Jul 2024 12:31:21 -0700 Subject: [PATCH] build: Remove java classpath conventions (#5724) This removes our custom configuration hierarchy, historically inherited from the "fishlib" days. Follow-up to #5683 Note: unlike #5683, this migration does not aim to preserve the exact configuration dependencies that were inherited in the java-classpath-conventions hierarchy. The configuration conventions were overly broad, and didn't represent the real dependencies that each project has. As part of this, our dependency on `org.jetbrains:annotations` changed from an implementation dependency (inherited through the `fishBase` configuration) to a compileOnly dependency to better reflect how we actually depend on it. We might expect that the jetbrains annotations would be removed from our application runtime classpath entirely, but that is not the case - it turns out that one of our transitive dependencies has a runtime dependency on it: ``` org.jetbrains:annotations:13.0 \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.10 +--- io.confluent:kafka-protobuf-provider:7.6.0 | \--- io.confluent:kafka-protobuf-serializer:7.6.0 | \--- project :extensions-kafka | \--- project :server | \--- project :server-jetty | \--- runtimeClasspath ``` In this case, it has the visible effect of "downgrading" our runtime classpath from what was previously `org.jetbrains:annotations:24.0.0` to `org.jetbrains:annotations:13.0`. Arguably, this is the more correct runtime dependency to provide given it matches what the exact version the transitive library requests. --- Base/build.gradle | 6 +- BenchmarkSupport/BenchmarkSupport.gradle | 11 +-- ClientSupport/ClientSupport.gradle | 6 +- Configuration/build.gradle | 6 +- Generators/Generators.gradle | 6 +- IO/build.gradle | 2 +- Integrations/build.gradle | 6 +- ModelFarm/ModelFarm.gradle | 5 +- Numerics/Numerics.gradle | 8 +- Plot/Plot.gradle | 10 +-- Util/Util.gradle | 12 +-- Util/channel/build.gradle | 2 +- Util/function/build.gradle | 2 +- base-test-utils/build.gradle | 6 +- ...eephaven.java-classpath-conventions.gradle | 81 ------------------- ...o.deephaven.java-common-conventions.gradle | 1 - engine/api/build.gradle | 4 +- engine/context/build.gradle | 4 - engine/function/build.gradle | 5 +- engine/primitive/build.gradle | 2 +- engine/rowset-test-utils/build.gradle | 4 +- engine/rowset/build.gradle | 6 +- engine/table/build.gradle | 3 +- engine/test-utils/build.gradle | 4 +- engine/time/build.gradle | 6 +- engine/tuple/build.gradle | 2 +- engine/updategraph/build.gradle | 4 +- engine/vector/build.gradle | 2 +- extensions/arrow/build.gradle | 2 +- extensions/barrage/build.gradle | 7 +- extensions/csv/build.gradle | 6 +- extensions/iceberg/build.gradle | 2 + extensions/kafka/build.gradle | 4 +- extensions/parquet/base/build.gradle | 4 +- extensions/parquet/compression/build.gradle | 4 +- extensions/parquet/table/build.gradle | 3 +- extensions/protobuf/build.gradle | 2 +- extensions/s3/build.gradle | 2 +- extensions/source-support/build.gradle | 2 +- extensions/suanshu/build.gradle | 5 +- extensions/trackedfile/build.gradle | 2 +- gradle/libs.versions.toml | 31 ++++++- java-client/barrage/build.gradle | 5 -- log-factory/build.gradle | 6 +- .../sinks/log-to-logbuffer/build.gradle | 5 +- .../sinks/logback-logbuffer/build.gradle | 6 +- .../logback-print-stream-globals/build.gradle | 5 +- props/test-configs/build.gradle | 6 +- proto/proto-backplane-grpc/build.gradle | 5 +- py/jpy-integration/build.gradle | 4 +- replication/reflective/build.gradle | 6 +- replication/static/build.gradle | 4 +- replication/util/build.gradle | 2 +- server/build.gradle | 2 +- server/test-utils/build.gradle | 2 +- web/client-api/client-api.gradle | 2 +- web/shared-beans/shared-beans.gradle | 5 +- 57 files changed, 127 insertions(+), 230 deletions(-) delete mode 100644 buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle diff --git a/Base/build.gradle b/Base/build.gradle index fc63a2efa19..ced34b26a52 100644 --- a/Base/build.gradle +++ b/Base/build.gradle @@ -7,9 +7,9 @@ dependencies { api project(':clock') - implementation depTrove3 - compileOnlyApi depAnnotations - implementation depCommonsLang3 + implementation libs.trove + compileOnlyApi libs.jetbrains.annotations + implementation libs.commons.lang3 api 'io.deephaven:hash:0.1.0' diff --git a/BenchmarkSupport/BenchmarkSupport.gradle b/BenchmarkSupport/BenchmarkSupport.gradle index 6528b126646..0308980c99b 100644 --- a/BenchmarkSupport/BenchmarkSupport.gradle +++ b/BenchmarkSupport/BenchmarkSupport.gradle @@ -2,14 +2,6 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom dhBenchmarkSupport - - testImplementation.extendsFrom fishIoTest - - testRuntimeOnly.extendsFrom fishDataGenerator -} - sourceSets { main { java { @@ -34,7 +26,10 @@ dependencies { implementation project(':Configuration') implementation 'org.openjdk.jmh:jmh-core:1.20' + implementation libs.univocity.parsers + testImplementation project(':engine-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(path: ':configs') testRuntimeOnly project(path: ':test-configs') diff --git a/ClientSupport/ClientSupport.gradle b/ClientSupport/ClientSupport.gradle index 9c297379e1e..091a7200751 100644 --- a/ClientSupport/ClientSupport.gradle +++ b/ClientSupport/ClientSupport.gradle @@ -2,16 +2,12 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom dhConsole -} - dependencies { implementation project(':engine-table') implementation project(':engine-function') implementation project(':log-factory') implementation project(':Configuration') - implementation depCommonsLang3 + implementation libs.commons.lang3 testImplementation project(':engine-test-utils') testImplementation libs.junit4 diff --git a/Configuration/build.gradle b/Configuration/build.gradle index 518dc32a3a3..c0cca8e0f6b 100644 --- a/Configuration/build.gradle +++ b/Configuration/build.gradle @@ -1,13 +1,16 @@ plugins { + id 'java-library' id 'io.deephaven.project.register' } dependencies { + api libs.trove + implementation project(':Base') implementation project(':DataStructures') implementation project(':IO') implementation project(':log-factory') - implementation depCommonsLang3 + implementation libs.commons.lang3 testImplementation libs.junit4 testImplementation libs.jmock.junit4 testImplementation libs.jmock.imposters @@ -16,6 +19,7 @@ dependencies { annotationProcessor libs.autoservice.compiler testImplementation project(path: ':Base', configuration: 'tests') + testImplementation libs.commons.compress testRuntimeOnly project(':log-to-slf4j') testRuntimeOnly libs.slf4j.simple diff --git a/Generators/Generators.gradle b/Generators/Generators.gradle index 67a05142c28..7322d5adba5 100644 --- a/Generators/Generators.gradle +++ b/Generators/Generators.gradle @@ -6,8 +6,6 @@ plugins { evaluationDependsOn Docker.registryProject('python') configurations { - implementation.extendsFrom jdom - testImplementation.extendsFrom fishBaseTest combinedJavadoc } @@ -17,7 +15,7 @@ dependencies { implementation project(':extensions-csv') implementation project(':extensions-kafka') implementation project(':extensions-parquet-table') - implementation depTrove3 + implementation libs.trove implementation libs.groovy implementation libs.groovy.json @@ -29,6 +27,8 @@ dependencies { runtimeOnly project(':log-to-slf4j') runtimeOnly libs.logback.classic + testImplementation project(path: ':Base', configuration: 'tests') + testRuntimeOnly project(path: ':configs') testRuntimeOnly project(path: ':test-configs') diff --git a/IO/build.gradle b/IO/build.gradle index 25c5dbd5bb3..f84060f0416 100644 --- a/IO/build.gradle +++ b/IO/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { implementation project(':Base') implementation project(':SevenZip') - implementation depCommonsCompress + implementation libs.commons.compress testImplementation project(path: ':Base', configuration: 'tests') testImplementation libs.junit4 testImplementation libs.jmock.junit4 diff --git a/Integrations/build.gradle b/Integrations/build.gradle index e651390a5ac..99abec47535 100644 --- a/Integrations/build.gradle +++ b/Integrations/build.gradle @@ -9,11 +9,6 @@ plugins { evaluationDependsOn ':docker-server-jetty' -configurations { - implementation.extendsFrom dhIntegrations - testImplementation.extendsFrom fishBaseTest -} - dependencies { implementation project(':engine-table') @@ -22,6 +17,7 @@ dependencies { implementation project(':log-factory') testImplementation project(':engine-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') // Needed for CalendarInit testRuntimeOnly TestTools.projectDependency(project, 'engine-time') diff --git a/ModelFarm/ModelFarm.gradle b/ModelFarm/ModelFarm.gradle index 9e35a11b103..e2eb2e79e0a 100644 --- a/ModelFarm/ModelFarm.gradle +++ b/ModelFarm/ModelFarm.gradle @@ -7,10 +7,6 @@ plugins { id 'java-library' } -configurations { - testImplementation.extendsFrom fishBaseTest -} - dependencies { api project(':engine-table') api project(':engine-time') @@ -21,6 +17,7 @@ dependencies { runtimeOnly project(':configs') testImplementation project(':engine-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(':Numerics') testRuntimeOnly project(':log-to-slf4j') diff --git a/Numerics/Numerics.gradle b/Numerics/Numerics.gradle index 4cf033b7af7..1059c4424f8 100644 --- a/Numerics/Numerics.gradle +++ b/Numerics/Numerics.gradle @@ -3,17 +3,15 @@ plugins { id 'java-library' } -configurations { - implementation.extendsFrom dhNumerics - testImplementation.extendsFrom fishBaseTest -} - dependencies { api project(':engine-time') implementation project(':engine-function') implementation project(':log-factory') + implementation libs.jama + implementation libs.commons.math3 testImplementation project(':base-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(path: ':configs') testRuntimeOnly project(path: ':test-configs') diff --git a/Plot/Plot.gradle b/Plot/Plot.gradle index d1019b67408..3e49a320498 100644 --- a/Plot/Plot.gradle +++ b/Plot/Plot.gradle @@ -3,19 +3,15 @@ plugins { id 'java-library' } -configurations { - implementation.extendsFrom dhPlot - - testImplementation.extendsFrom fishIoTest -} - dependencies { api project(':engine-api') + implementation project(':Base') implementation project(':engine-table') implementation project(':engine-function') implementation project(':engine-tuple') implementation project(':log-factory') + implementation project(':Configuration') api libs.groovy implementation libs.groovy.json @@ -25,9 +21,11 @@ dependencies { compileOnly 'javax.inject:javax.inject:1' implementation libs.guava + implementation libs.commons.lang3 testImplementation project(':engine-test-utils') testImplementation TestTools.projectDependency(project, 'engine-time') + testImplementation project(path: ':Base', configuration: 'tests') testRuntimeOnly project(':configs') testRuntimeOnly project(':test-configs') diff --git a/Util/Util.gradle b/Util/Util.gradle index 86098c11d4d..f25646a72a7 100644 --- a/Util/Util.gradle +++ b/Util/Util.gradle @@ -3,14 +3,15 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom configurations.dhUtil, commonsLang3 - testImplementation.extendsFrom fishBaseTest -} - dependencies { api project(':engine-query-constants') + implementation project(':Base') implementation project(':log-factory') + implementation libs.jdom2 + implementation libs.commons.compress + + implementation project(':DataStructures') + implementation project(':Configuration') testRuntimeOnly project(path: ':configs') testRuntimeOnly project(path: ':test-configs') @@ -19,6 +20,7 @@ dependencies { testRuntimeOnly libs.slf4j.simple testImplementation project(':base-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') testImplementation platform(libs.junit.bom) testImplementation libs.junit.jupiter testRuntimeOnly libs.junit.jupiter.engine diff --git a/Util/channel/build.gradle b/Util/channel/build.gradle index 44dcac11058..397bdeda530 100644 --- a/Util/channel/build.gradle +++ b/Util/channel/build.gradle @@ -12,7 +12,7 @@ dependencies { // For CountingInputStream implementation libs.guava - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.assertj testImplementation platform(libs.junit.bom) diff --git a/Util/function/build.gradle b/Util/function/build.gradle index 04556534c95..8ee1d3cac80 100644 --- a/Util/function/build.gradle +++ b/Util/function/build.gradle @@ -6,7 +6,7 @@ plugins { dependencies { api project(':qst-type') - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.assertj testImplementation platform(libs.junit.bom) diff --git a/base-test-utils/build.gradle b/base-test-utils/build.gradle index ffe61639325..fc266eb04dd 100644 --- a/base-test-utils/build.gradle +++ b/base-test-utils/build.gradle @@ -6,9 +6,9 @@ plugins { dependencies { implementation project(':Base') - implementation depTrove3 - compileOnlyApi depAnnotations - implementation depCommonsLang3 + implementation libs.trove + compileOnlyApi libs.jetbrains.annotations + implementation libs.commons.lang3 api 'io.deephaven:hash:0.1.0' diff --git a/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle deleted file mode 100644 index d6163fb3efa..00000000000 --- a/buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle +++ /dev/null @@ -1,81 +0,0 @@ -plugins { - id 'base' - id 'java' -} - -// TODO(deephaven-core#1162): Adopt java-platform to manage versions -ext { - depAnnotations = 'org.jetbrains:annotations:24.0.0' - depCommonsCompress = 'org.apache.commons:commons-compress:1.26.0' - depCommonsLang3 = 'org.apache.commons:commons-lang3:3.12.0' - depCommonsIo = 'commons-io:commons-io:2.11.0' - depJdom2 = 'org.jdom:jdom2:2.0.6.1' - depTrove3 = 'net.sf.trove4j:trove4j:3.0.3' -} - -configurations { - - commonsIo - jdom - math3 - jama.extendsFrom math3 - dxCompile - dxRuntime.extendsFrom dxCompile - mockrunner - junit - - fishBase - fishIo.extendsFrom fishBase - fishDataStructure.extendsFrom fishIo - fishConfig.extendsFrom fishDataStructure - fishDataGenerator.extendsFrom jdom - fishNumerics.extendsFrom fishBase - fishBaseTest.extendsFrom junit - fishIoTest.extendsFrom fishBaseTest - - dhNumerics.extendsFrom fishNumerics, jama - dhUtil.extendsFrom commonsIo, commonsLang3, commonsText, fishConfig, fishIo, jdom - dhPlot.extendsFrom dhUtil - dhBenchmarkSupport.extendsFrom fishData - dhIntegrations.extendsFrom math3 -} - -dependencies { - - // First, one-off configurations for stuff we need "here and there" - jdom 'org.jdom:jdom2:2.0.6.1' - commonsLang3 'org.apache.commons:commons-lang3:3.12.0' - commonsText 'org.apache.commons:commons-text:1.10.0' - commonsIo 'commons-io:commons-io:2.11.0' - math3 'org.apache.commons:commons-math3:3.6.1' - jama 'gov.nist.math.jama:gov.nist.math.jama:1.1.1' - mockrunner 'com.mockrunner:mockrunner-jdbc:1.0.4' - - 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 - // having to maintain this... - fishBase project(':Base'), - 'net.sf.trove4j:trove4j:3.0.3', - 'org.jetbrains:annotations:24.0.0', - depCommonsCompress - - fishIo project(':IO') - - fishDataStructure project(':DataStructures') - - fishConfig project(':Configuration') - - fishBaseTest project(path: ':Base', configuration: 'tests') - - fishIoTest project(path: ':IO', configuration: 'tests') - - // https://mvnrepository.com/artifact/com.univocity/univocity-parsers - dhBenchmarkSupport 'com.univocity:univocity-parsers:2.6.0' - - dhBenchmarkSupport platform(libs.jackson.bom) - dhBenchmarkSupport libs.jackson.core -} diff --git a/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle b/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle index 291dcf03d23..58c0e11c37f 100644 --- a/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle +++ b/buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle @@ -1,7 +1,6 @@ plugins { id 'base' id 'java' - id 'io.deephaven.java-classpath-conventions' id 'io.deephaven.java-license-conventions' id 'io.deephaven.java-toolchain-conventions' id 'io.deephaven.java-jar-conventions' diff --git a/engine/api/build.gradle b/engine/api/build.gradle index e39e13ad876..dc914bca940 100644 --- a/engine/api/build.gradle +++ b/engine/api/build.gradle @@ -17,7 +17,7 @@ dependencies { api project(':engine-rowset') implementation project(':DataStructures') - implementation depTrove3 + implementation libs.trove compileOnly project(':util-immutables') annotationProcessor libs.immutables @@ -29,7 +29,7 @@ dependencies { testImplementation project(':engine-test-utils') testImplementation TestTools.projectDependency(project, 'engine-table') testImplementation TestTools.projectDependency(project, 'engine-vector') - testImplementation depCommonsLang3 + testImplementation libs.commons.lang3 testImplementation libs.junit4 diff --git a/engine/context/build.gradle b/engine/context/build.gradle index 2b36dd81002..c1dc47c7346 100644 --- a/engine/context/build.gradle +++ b/engine/context/build.gradle @@ -5,10 +5,6 @@ plugins { description 'Engine Context: QueryScope, QueryLibrary and QueryCompiler via ExecutionContext' -configurations { - testCompile.extendsFrom junit -} - dependencies { api project(':authentication') api project(':Util') diff --git a/engine/function/build.gradle b/engine/function/build.gradle index b493bec2635..7e88ff177c4 100644 --- a/engine/function/build.gradle +++ b/engine/function/build.gradle @@ -7,19 +7,18 @@ description 'Engine Functions: Libraries for use in query expressions' configurations { primitiveCodegen - testImplementation.extendsFrom junit } dependencies { primitiveCodegen project(':codegen') - api 'net.sf.trove4j:trove4j:3.0.3' + api libs.trove api project(':Util') api project(':engine-vector') api project(':engine-primitive') implementation project(':Base') - implementation depCommonsLang3 + implementation libs.commons.lang3 testImplementation project(':base-test-utils') } diff --git a/engine/primitive/build.gradle b/engine/primitive/build.gradle index f51d401e900..a76885c049a 100644 --- a/engine/primitive/build.gradle +++ b/engine/primitive/build.gradle @@ -8,5 +8,5 @@ description 'Primitives: Expanding upon java.util.PrimitiveIterator and java.uti dependencies { implementation project(':Util') - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations } diff --git a/engine/rowset-test-utils/build.gradle b/engine/rowset-test-utils/build.gradle index 5fe07f0d84b..aa48913ac5c 100644 --- a/engine/rowset-test-utils/build.gradle +++ b/engine/rowset-test-utils/build.gradle @@ -8,8 +8,8 @@ description 'Test Utils for Engine RowSets' dependencies { api project(':engine-rowset') - implementation depCommonsLang3 - implementation depTrove3 + implementation libs.commons.lang3 + implementation libs.trove implementation libs.junit4 } diff --git a/engine/rowset/build.gradle b/engine/rowset/build.gradle index ca8e5d9c49e..23ccb24fd67 100644 --- a/engine/rowset/build.gradle +++ b/engine/rowset/build.gradle @@ -8,16 +8,16 @@ description 'Engine RowSets: Data structures for working with row keys' dependencies { api project(':engine-chunk') api project(':Base') - api depTrove3 + api libs.trove implementation project(':Container') implementation project(':engine-context') implementation project(':engine-updategraph') implementation project(':Configuration') - implementation depCommonsLang3 + implementation libs.commons.lang3 compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.junit4 diff --git a/engine/table/build.gradle b/engine/table/build.gradle index 5e45904b291..906e51f0ca1 100644 --- a/engine/table/build.gradle +++ b/engine/table/build.gradle @@ -37,8 +37,9 @@ dependencies { implementation 'it.unimi.dsi:fastutil:8.5.13' implementation project(':plugin') - implementation depCommonsLang3 + implementation libs.commons.lang3 implementation libs.commons.text + implementation libs.commons.compress implementation libs.groovy implementation libs.groovy.json diff --git a/engine/test-utils/build.gradle b/engine/test-utils/build.gradle index 904f769ab6f..6c2118b715e 100644 --- a/engine/test-utils/build.gradle +++ b/engine/test-utils/build.gradle @@ -15,8 +15,8 @@ dependencies { implementation project(':engine-rowset-test-utils') implementation project(':extensions-source-support') - implementation depCommonsLang3 - implementation depTrove3 + implementation libs.commons.lang3 + implementation libs.trove implementation 'it.unimi.dsi:fastutil:8.5.13' diff --git a/engine/time/build.gradle b/engine/time/build.gradle index 3a057100582..6ab2a69cf04 100644 --- a/engine/time/build.gradle +++ b/engine/time/build.gradle @@ -5,10 +5,6 @@ plugins { description 'Engine Time: Types and libraries for working with instants, periods, and calendars' -configurations { - testImplementation.extendsFrom junit -} - dependencies { api project(':Base') api project(':Util') @@ -17,7 +13,7 @@ dependencies { implementation project(':engine-function') implementation project(':Configuration') implementation project(':log-factory') - implementation depJdom2 + implementation libs.jdom2 implementation libs.dagger annotationProcessor libs.dagger.compiler diff --git a/engine/tuple/build.gradle b/engine/tuple/build.gradle index c5b04aa9518..f845ac4442a 100644 --- a/engine/tuple/build.gradle +++ b/engine/tuple/build.gradle @@ -6,7 +6,7 @@ plugins { description 'Engine Tuples: Value sequences for use in aggregations, joins, and indexing' dependencies { - api 'net.sf.trove4j:trove4j:3.0.3' + api libs.trove api project(':Util') api project(':engine-time') implementation project(':DataStructures') diff --git a/engine/updategraph/build.gradle b/engine/updategraph/build.gradle index 80289ddd397..6787b24e2e6 100644 --- a/engine/updategraph/build.gradle +++ b/engine/updategraph/build.gradle @@ -10,10 +10,10 @@ dependencies { implementation project(':hotspot') implementation project(':log-factory') implementation project(':Configuration') - implementation depCommonsLang3 + implementation libs.commons.lang3 compileOnly 'com.google.code.findbugs:jsr305:3.0.2' - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation project(':engine-context') diff --git a/engine/vector/build.gradle b/engine/vector/build.gradle index 34718c5347b..34559d7e7f5 100644 --- a/engine/vector/build.gradle +++ b/engine/vector/build.gradle @@ -12,7 +12,7 @@ dependencies { implementation project(':Base') - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.junit4 } diff --git a/extensions/arrow/build.gradle b/extensions/arrow/build.gradle index edfee512ef6..fb03d4d63b2 100644 --- a/extensions/arrow/build.gradle +++ b/extensions/arrow/build.gradle @@ -9,7 +9,7 @@ dependencies { api project(':engine-table') implementation project(':Configuration') - implementation depCommonsLang3 + implementation libs.commons.lang3 implementation libs.arrow.format implementation libs.arrow.vector diff --git a/extensions/barrage/build.gradle b/extensions/barrage/build.gradle index f542b0a813d..cdf1f4b54a2 100644 --- a/extensions/barrage/build.gradle +++ b/extensions/barrage/build.gradle @@ -3,11 +3,6 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom irisDb - testImplementation.extendsFrom irisDbTest -} - description = 'An extension integrating Barrage with Deephaven\'s Table Model' dependencies { @@ -15,7 +10,7 @@ dependencies { implementation project(':Util') implementation project(':Configuration') implementation project(':util-function') - implementation depCommonsLang3 + implementation libs.commons.lang3 api project(':engine-table') implementation project(':proto:proto-backplane-grpc-flight') diff --git a/extensions/csv/build.gradle b/extensions/csv/build.gradle index 4954ff199da..e1b6c5d1f1d 100644 --- a/extensions/csv/build.gradle +++ b/extensions/csv/build.gradle @@ -12,7 +12,7 @@ dependencies { implementation project(':engine-table') implementation project(':engine-base') - implementation depTrove3 + implementation libs.trove compileOnly project(':util-immutables') annotationProcessor libs.immutables @@ -20,8 +20,8 @@ dependencies { testImplementation platform(libs.junit.bom) testImplementation libs.assertj - testImplementation depCommonsCompress - testImplementation depCommonsIo + testImplementation libs.commons.compress + testImplementation libs.commons.io testImplementation project(':engine-test-utils') testImplementation libs.junit4 diff --git a/extensions/iceberg/build.gradle b/extensions/iceberg/build.gradle index 8b61f11ec3e..704f3fb9cd2 100644 --- a/extensions/iceberg/build.gradle +++ b/extensions/iceberg/build.gradle @@ -35,6 +35,8 @@ dependencies { implementation libs.avro + implementation libs.commons.lang3 + testImplementation libs.assertj testImplementation platform(libs.junit.bom) diff --git a/extensions/kafka/build.gradle b/extensions/kafka/build.gradle index e2252af961c..7c381a35d08 100644 --- a/extensions/kafka/build.gradle +++ b/extensions/kafka/build.gradle @@ -32,8 +32,8 @@ dependencies { implementation project(':engine-processor-function') implementation project(':Configuration') implementation project(':log-factory') - implementation depTrove3 - implementation depCommonsLang3 + implementation libs.trove + implementation libs.commons.lang3 compileOnly project(':util-immutables') annotationProcessor libs.immutables diff --git a/extensions/parquet/base/build.gradle b/extensions/parquet/base/build.gradle index ecb4f525be5..9a71ac9382c 100644 --- a/extensions/parquet/base/build.gradle +++ b/extensions/parquet/base/build.gradle @@ -16,8 +16,8 @@ dependencies { implementation project(':engine-time') implementation project(':Configuration') implementation project(':DataStructures') - implementation depCommonsIo + implementation libs.commons.io - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.junit4 } diff --git a/extensions/parquet/compression/build.gradle b/extensions/parquet/compression/build.gradle index 3d1a55b4eff..3f9ab1843a2 100644 --- a/extensions/parquet/compression/build.gradle +++ b/extensions/parquet/compression/build.gradle @@ -12,11 +12,11 @@ dependencies { implementation project(':Configuration') - implementation depCommonsIo + implementation libs.commons.io implementation libs.guava - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations runtimeOnly('org.lz4:lz4-java:1.8.0') { // also consider lz4-pure-java to avoid native code diff --git a/extensions/parquet/table/build.gradle b/extensions/parquet/table/build.gradle index 5c7f6ec5221..b1a6c449723 100644 --- a/extensions/parquet/table/build.gradle +++ b/extensions/parquet/table/build.gradle @@ -32,10 +32,11 @@ dependencies { implementation project(':extensions-csv') implementation project(':log-factory') implementation project(':Configuration') - implementation depCommonsLang3 + implementation libs.commons.lang3 implementation project(':Util') implementation libs.commons.text + implementation libs.commons.compress implementation platform(libs.jackson.bom) implementation libs.jackson.dataformat.yaml diff --git a/extensions/protobuf/build.gradle b/extensions/protobuf/build.gradle index 242e9afca69..a4a30185ddb 100644 --- a/extensions/protobuf/build.gradle +++ b/extensions/protobuf/build.gradle @@ -13,7 +13,7 @@ dependencies { compileOnly project(':util-immutables') annotationProcessor libs.immutables - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations testImplementation libs.assertj diff --git a/extensions/s3/build.gradle b/extensions/s3/build.gradle index c4488f3ef32..23d687a4401 100644 --- a/extensions/s3/build.gradle +++ b/extensions/s3/build.gradle @@ -20,7 +20,7 @@ dependencies { implementation libs.awssdk.s3 implementation libs.awssdk.crt.client - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations // For OSUtil testImplementation project(':Stats') diff --git a/extensions/source-support/build.gradle b/extensions/source-support/build.gradle index 33b88963b37..95abcd54947 100644 --- a/extensions/source-support/build.gradle +++ b/extensions/source-support/build.gradle @@ -16,7 +16,7 @@ dependencies { compileOnly 'com.google.code.findbugs:jsr305:3.0.2' testImplementation project(':engine-test-utils') - testImplementation depCommonsLang3 + testImplementation libs.commons.lang3 testImplementation libs.junit4 testImplementation libs.assertj diff --git a/extensions/suanshu/build.gradle b/extensions/suanshu/build.gradle index fcf78f7cf47..4fad4f06ee7 100644 --- a/extensions/suanshu/build.gradle +++ b/extensions/suanshu/build.gradle @@ -3,10 +3,6 @@ plugins { id 'io.deephaven.project.register' } -configurations { - testImplementation.extendsFrom fishBaseTest -} - dependencies { compileOnly project(':Base') compileOnly project(':engine-table') @@ -20,4 +16,5 @@ dependencies { testImplementation project(':engine-table') testImplementation project(':base-test-utils') + testImplementation project(path: ':Base', configuration: 'tests') } diff --git a/extensions/trackedfile/build.gradle b/extensions/trackedfile/build.gradle index 6ea28e4b4e2..3896eb1e4ee 100644 --- a/extensions/trackedfile/build.gradle +++ b/extensions/trackedfile/build.gradle @@ -12,7 +12,7 @@ dependencies { implementation project(':Util') implementation project(':engine-table') - compileOnly depAnnotations + compileOnly libs.jetbrains.annotations compileOnly libs.autoservice annotationProcessor libs.autoservice.compiler diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c2a81edae63..b7cd9dcf63f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,11 @@ 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" +commons-compress = "1.26.0" +commons-io = "2.11.0" +commons-lang3 = "3.12.0" +commons-math3 = "3.6.1" +commons-text = "1.10.0" dagger = "2.44" elemental = "1.2.1" flatbuffers = "1.12.0" @@ -20,8 +24,11 @@ hadoop = "3.4.0" iceberg = "1.5.2" immutables = "2.9.2" jackson = "2.17.0" +jama = "1.1.1" javaparser = "3.23.0" javax-validation = "1.0.0.GA" +jdom2 = "2.0.6.1" +jetbrains = "24.0.0" jetty = "11.0.20" jsinterop = "2.0.2" # google is annoying, and have different versions released for the same groupId @@ -31,6 +38,8 @@ parquet = "1.14.0" protobuf = "3.25.3" slf4j = "2.0.11" sslcontext = "8.1.1" +trove = "3.0.3" +univocity = "2.6.0" # test versions assertj = "3.19.0" @@ -60,7 +69,15 @@ 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" } +commons-compress = { module = "org.apache.commons:commons-compress", version.ref = "commons-compress" } + +commons-io = { module = "commons-io:commons-io", version.ref = "commons-io" } + +commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commons-lang3" } + +commons-math3 = { module = "org.apache.commons:commons-math3", version.ref = "commons-math3" } + +commons-text = { module = "org.apache.commons:commons-text", version.ref = "commons-text" } dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" } dagger-compiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" } @@ -112,10 +129,16 @@ 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" } +jama = { module = "gov.nist.math.jama:gov.nist.math.jama", version.ref = "jama" } + javaparser-core = { module = "com.github.javaparser:javaparser-core", version.ref = "javaparser" } javax-validation-api = { module = "javax.validation:validation-api", version.ref = "javax-validation" } +jdom2 = { module = "org.jdom:jdom2", version.ref = "jdom2" } + +jetbrains-annotations = { module = "org.jetbrains:annotations", version.ref = "jetbrains" } + 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" } @@ -142,6 +165,10 @@ sslcontext-kickstart = { module = "io.github.hakky54:sslcontext-kickstart", vers 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" } +trove = { module = "net.sf.trove4j:trove4j", version.ref = "trove" } + +univocity-parsers = { module = "com.univocity:univocity-parsers", version.ref = "univocity" } + # test libraries assertj = { module = "org.assertj:assertj-core", version.ref = "assertj" } diff --git a/java-client/barrage/build.gradle b/java-client/barrage/build.gradle index 51831fedb34..135471b40c8 100644 --- a/java-client/barrage/build.gradle +++ b/java-client/barrage/build.gradle @@ -3,11 +3,6 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom irisDb - testImplementation.extendsFrom irisDbTest -} - description = 'The Deephaven Barrage Client' dependencies { diff --git a/log-factory/build.gradle b/log-factory/build.gradle index 9a3cdb9d750..175b7694c51 100644 --- a/log-factory/build.gradle +++ b/log-factory/build.gradle @@ -3,9 +3,7 @@ plugins { id 'io.deephaven.project.register' } -configurations { - api.extendsFrom fishIo -} - dependencies { + api project(':Base') + api project(':IO') } diff --git a/log-factory/sinks/log-to-logbuffer/build.gradle b/log-factory/sinks/log-to-logbuffer/build.gradle index f0768c50958..81eaf423e40 100644 --- a/log-factory/sinks/log-to-logbuffer/build.gradle +++ b/log-factory/sinks/log-to-logbuffer/build.gradle @@ -3,11 +3,8 @@ plugins { id 'io.deephaven.project.register' } -configurations { - compileOnly.extendsFrom fishIo -} - dependencies { + compileOnly project(':Base') compileOnly project(':log-factory') compileOnly libs.autoservice diff --git a/log-factory/sinks/logback-logbuffer/build.gradle b/log-factory/sinks/logback-logbuffer/build.gradle index fa5bf1f7de7..b5c78ad3cd3 100644 --- a/log-factory/sinks/logback-logbuffer/build.gradle +++ b/log-factory/sinks/logback-logbuffer/build.gradle @@ -3,11 +3,9 @@ plugins { id 'io.deephaven.project.register' } -configurations { - compileOnly.extendsFrom fishIo -} - dependencies { + compileOnly project(':Base') + compileOnly project(':IO') // consumer still needs to provide dependency 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 7935cfde2cb..ca09edcb778 100644 --- a/log-factory/sinks/logback-print-stream-globals/build.gradle +++ b/log-factory/sinks/logback-print-stream-globals/build.gradle @@ -3,11 +3,8 @@ plugins { id 'io.deephaven.project.register' } -configurations { - compileOnly.extendsFrom fishBase -} - dependencies { + compileOnly project(':Base') // consumer still needs to provide dependency compileOnly libs.logback.classic } diff --git a/props/test-configs/build.gradle b/props/test-configs/build.gradle index 355b0ff08dd..a8700e7ac46 100644 --- a/props/test-configs/build.gradle +++ b/props/test-configs/build.gradle @@ -2,11 +2,9 @@ plugins { id 'io.deephaven.project.register' } -configurations { - implementation.extendsFrom fishConfig -} - dependencies { compileOnly libs.autoservice annotationProcessor libs.autoservice.compiler + + implementation project(':Configuration') } diff --git a/proto/proto-backplane-grpc/build.gradle b/proto/proto-backplane-grpc/build.gradle index c939556efda..54a277a296d 100644 --- a/proto/proto-backplane-grpc/build.gradle +++ b/proto/proto-backplane-grpc/build.gradle @@ -14,9 +14,6 @@ configurations { transitive = false } - // automatically pick up the standard junit version - testImplementation.extendsFrom junit - js {} python {} go {} @@ -46,6 +43,8 @@ dependencies { // compile 'io.deephaven.barrage:barrage-core:0.5.0' download 'io.deephaven.barrage:barrage-core:0.6.0' download libs.arrow.flight.core + + testImplementation libs.junit4 } TaskProvider generateProtobuf = Docker.registerDockerTask(project, 'generateProtobuf') { diff --git a/py/jpy-integration/build.gradle b/py/jpy-integration/build.gradle index f0271aa83f8..bdeed8a0aeb 100644 --- a/py/jpy-integration/build.gradle +++ b/py/jpy-integration/build.gradle @@ -43,8 +43,6 @@ sourceSets { configurations { javaToPythonJar - testImplementation.extendsFrom junit - javaToPythonImplementation.extendsFrom testImplementation pythonToJavaImplementation.extendsFrom testImplementation @@ -57,6 +55,8 @@ dependencies { testImplementation project(':deephaven-jpy-ext') javaToPythonImplementation sourceSets.test.output pythonToJavaImplementation sourceSets.test.output + + testImplementation libs.junit4 } test { diff --git a/replication/reflective/build.gradle b/replication/reflective/build.gradle index 3d7bce37751..2e85df34e49 100644 --- a/replication/reflective/build.gradle +++ b/replication/reflective/build.gradle @@ -9,9 +9,9 @@ dependencies { implementation project(':replication-util') implementation project(':engine-table') implementation 'com.squareup:javapoet:1.13.0' - implementation depTrove3 - implementation depCommonsIo - implementation depCommonsLang3 + implementation libs.trove + implementation libs.commons.io + implementation libs.commons.lang3 runtimeOnly project(':log-to-slf4j') runtimeOnly project(path: ':configs') diff --git a/replication/static/build.gradle b/replication/static/build.gradle index 6382374ad23..57be19681e5 100644 --- a/replication/static/build.gradle +++ b/replication/static/build.gradle @@ -9,8 +9,8 @@ dependencies { implementation project(':Util') implementation project(':Base') implementation project(':replication-util') - implementation depTrove3 - implementation depCommonsIo + implementation libs.trove + implementation libs.commons.io } // These replicators do not require any manual fix-up and may be run without supervision diff --git a/replication/util/build.gradle b/replication/util/build.gradle index 9ee71496eae..1747b07c4e1 100644 --- a/replication/util/build.gradle +++ b/replication/util/build.gradle @@ -7,7 +7,7 @@ description 'Replication Tools: Utilities for source code generation and replica dependencies { implementation project(':Base'), - 'commons-io:commons-io:2.11.0' + libs.commons.io compileOnly 'com.google.code.findbugs:jsr305:3.0.2' } diff --git a/server/build.gradle b/server/build.gradle index d4dbfa5f84c..01fb7ea8c0f 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -14,7 +14,7 @@ dependencies { implementation project(':extensions-jdbc') implementation project(':Util'); implementation project(':Integrations') - implementation depCommonsLang3 + implementation libs.commons.lang3 implementation libs.commons.text implementation libs.javaparser.core diff --git a/server/test-utils/build.gradle b/server/test-utils/build.gradle index 366e7730fdb..37884eca41c 100644 --- a/server/test-utils/build.gradle +++ b/server/test-utils/build.gradle @@ -13,7 +13,7 @@ dependencies { implementation project(':proto:proto-backplane-grpc-flight') implementation project(':extensions-barrage') implementation project(':test-configs') - implementation depCommonsLang3 + implementation libs.commons.lang3 api project(':engine-test-utils') api platform(libs.grpc.bom) diff --git a/web/client-api/client-api.gradle b/web/client-api/client-api.gradle index 8ad75e7513e..da2fd222ac7 100644 --- a/web/client-api/client-api.gradle +++ b/web/client-api/client-api.gradle @@ -14,7 +14,6 @@ configurations { js dts typescriptDoclet - testImplementation.extendsFrom junit } dependencies { @@ -28,6 +27,7 @@ dependencies { js project(path: ':proto:raw-js-openapi', configuration: 'js') + testImplementation libs.junit4 testImplementation 'org.seleniumhq.selenium:selenium-remote-driver:4.16.1' implementation libs.elemental.core diff --git a/web/shared-beans/shared-beans.gradle b/web/shared-beans/shared-beans.gradle index 71f75c5aa53..208f0c86e47 100644 --- a/web/shared-beans/shared-beans.gradle +++ b/web/shared-beans/shared-beans.gradle @@ -5,13 +5,10 @@ plugins { GwtTools.gwtLib project -configurations { - testImplementation.extendsFrom junit -} - dependencies { api project(':open-api-shared-fu') + testImplementation libs.junit4 testImplementation libs.guava implementation libs.elemental.core