Skip to content

Commit 619ba4e

Browse files
authored
build: Remove java classpath conventions (deephaven#5724)
This removes our custom configuration hierarchy, historically inherited from the "fishlib" days. Follow-up to deephaven#5683 Note: unlike deephaven#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.
1 parent 2d6bf4b commit 619ba4e

File tree

57 files changed

+127
-230
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+127
-230
lines changed

Base/build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ dependencies {
77

88
api project(':clock')
99

10-
implementation depTrove3
11-
compileOnlyApi depAnnotations
12-
implementation depCommonsLang3
10+
implementation libs.trove
11+
compileOnlyApi libs.jetbrains.annotations
12+
implementation libs.commons.lang3
1313

1414
api 'io.deephaven:hash:0.1.0'
1515

BenchmarkSupport/BenchmarkSupport.gradle

+3-8
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,6 @@ plugins {
22
id 'io.deephaven.project.register'
33
}
44

5-
configurations {
6-
implementation.extendsFrom dhBenchmarkSupport
7-
8-
testImplementation.extendsFrom fishIoTest
9-
10-
testRuntimeOnly.extendsFrom fishDataGenerator
11-
}
12-
135
sourceSets {
146
main {
157
java {
@@ -34,7 +26,10 @@ dependencies {
3426
implementation project(':Configuration')
3527
implementation 'org.openjdk.jmh:jmh-core:1.20'
3628

29+
implementation libs.univocity.parsers
30+
3731
testImplementation project(':engine-test-utils')
32+
testImplementation project(path: ':Base', configuration: 'tests')
3833

3934
testRuntimeOnly project(path: ':configs')
4035
testRuntimeOnly project(path: ':test-configs')

ClientSupport/ClientSupport.gradle

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,12 @@ plugins {
22
id 'io.deephaven.project.register'
33
}
44

5-
configurations {
6-
implementation.extendsFrom dhConsole
7-
}
8-
95
dependencies {
106
implementation project(':engine-table')
117
implementation project(':engine-function')
128
implementation project(':log-factory')
139
implementation project(':Configuration')
14-
implementation depCommonsLang3
10+
implementation libs.commons.lang3
1511

1612
testImplementation project(':engine-test-utils')
1713
testImplementation libs.junit4

Configuration/build.gradle

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
plugins {
2+
id 'java-library'
23
id 'io.deephaven.project.register'
34
}
45

56
dependencies {
7+
api libs.trove
8+
69
implementation project(':Base')
710
implementation project(':DataStructures')
811
implementation project(':IO')
912
implementation project(':log-factory')
10-
implementation depCommonsLang3
13+
implementation libs.commons.lang3
1114
testImplementation libs.junit4
1215
testImplementation libs.jmock.junit4
1316
testImplementation libs.jmock.imposters
@@ -16,6 +19,7 @@ dependencies {
1619
annotationProcessor libs.autoservice.compiler
1720

1821
testImplementation project(path: ':Base', configuration: 'tests')
22+
testImplementation libs.commons.compress
1923

2024
testRuntimeOnly project(':log-to-slf4j')
2125
testRuntimeOnly libs.slf4j.simple

Generators/Generators.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ plugins {
66
evaluationDependsOn Docker.registryProject('python')
77

88
configurations {
9-
implementation.extendsFrom jdom
10-
testImplementation.extendsFrom fishBaseTest
119
combinedJavadoc
1210
}
1311

@@ -17,7 +15,7 @@ dependencies {
1715
implementation project(':extensions-csv')
1816
implementation project(':extensions-kafka')
1917
implementation project(':extensions-parquet-table')
20-
implementation depTrove3
18+
implementation libs.trove
2119

2220
implementation libs.groovy
2321
implementation libs.groovy.json
@@ -29,6 +27,8 @@ dependencies {
2927
runtimeOnly project(':log-to-slf4j')
3028
runtimeOnly libs.logback.classic
3129

30+
testImplementation project(path: ':Base', configuration: 'tests')
31+
3232
testRuntimeOnly project(path: ':configs')
3333
testRuntimeOnly project(path: ':test-configs')
3434

IO/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
dependencies {
66
implementation project(':Base')
77
implementation project(':SevenZip')
8-
implementation depCommonsCompress
8+
implementation libs.commons.compress
99
testImplementation project(path: ':Base', configuration: 'tests')
1010
testImplementation libs.junit4
1111
testImplementation libs.jmock.junit4

Integrations/build.gradle

+1-5
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ plugins {
99

1010
evaluationDependsOn ':docker-server-jetty'
1111

12-
configurations {
13-
implementation.extendsFrom dhIntegrations
14-
testImplementation.extendsFrom fishBaseTest
15-
}
16-
1712
dependencies {
1813

1914
implementation project(':engine-table')
@@ -22,6 +17,7 @@ dependencies {
2217
implementation project(':log-factory')
2318

2419
testImplementation project(':engine-test-utils')
20+
testImplementation project(path: ':Base', configuration: 'tests')
2521

2622
// Needed for CalendarInit
2723
testRuntimeOnly TestTools.projectDependency(project, 'engine-time')

ModelFarm/ModelFarm.gradle

+1-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ plugins {
77
id 'java-library'
88
}
99

10-
configurations {
11-
testImplementation.extendsFrom fishBaseTest
12-
}
13-
1410
dependencies {
1511
api project(':engine-table')
1612
api project(':engine-time')
@@ -21,6 +17,7 @@ dependencies {
2117
runtimeOnly project(':configs')
2218

2319
testImplementation project(':engine-test-utils')
20+
testImplementation project(path: ':Base', configuration: 'tests')
2421
testRuntimeOnly project(':Numerics')
2522

2623
testRuntimeOnly project(':log-to-slf4j')

Numerics/Numerics.gradle

+3-5
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@ plugins {
33
id 'java-library'
44
}
55

6-
configurations {
7-
implementation.extendsFrom dhNumerics
8-
testImplementation.extendsFrom fishBaseTest
9-
}
10-
116
dependencies {
127
api project(':engine-time')
138
implementation project(':engine-function')
149
implementation project(':log-factory')
10+
implementation libs.jama
11+
implementation libs.commons.math3
1512

1613
testImplementation project(':base-test-utils')
14+
testImplementation project(path: ':Base', configuration: 'tests')
1715
testRuntimeOnly project(path: ':configs')
1816
testRuntimeOnly project(path: ':test-configs')
1917

Plot/Plot.gradle

+4-6
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,15 @@ plugins {
33
id 'java-library'
44
}
55

6-
configurations {
7-
implementation.extendsFrom dhPlot
8-
9-
testImplementation.extendsFrom fishIoTest
10-
}
11-
126
dependencies {
137

148
api project(':engine-api')
9+
implementation project(':Base')
1510
implementation project(':engine-table')
1611
implementation project(':engine-function')
1712
implementation project(':engine-tuple')
1813
implementation project(':log-factory')
14+
implementation project(':Configuration')
1915

2016
api libs.groovy
2117
implementation libs.groovy.json
@@ -25,9 +21,11 @@ dependencies {
2521
compileOnly 'javax.inject:javax.inject:1'
2622

2723
implementation libs.guava
24+
implementation libs.commons.lang3
2825

2926
testImplementation project(':engine-test-utils')
3027
testImplementation TestTools.projectDependency(project, 'engine-time')
28+
testImplementation project(path: ':Base', configuration: 'tests')
3129

3230
testRuntimeOnly project(':configs')
3331
testRuntimeOnly project(':test-configs')

Util/Util.gradle

+7-5
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@ plugins {
33
id 'io.deephaven.project.register'
44
}
55

6-
configurations {
7-
implementation.extendsFrom configurations.dhUtil, commonsLang3
8-
testImplementation.extendsFrom fishBaseTest
9-
}
10-
116
dependencies {
127
api project(':engine-query-constants')
8+
implementation project(':Base')
139
implementation project(':log-factory')
10+
implementation libs.jdom2
11+
implementation libs.commons.compress
12+
13+
implementation project(':DataStructures')
14+
implementation project(':Configuration')
1415

1516
testRuntimeOnly project(path: ':configs')
1617
testRuntimeOnly project(path: ':test-configs')
@@ -19,6 +20,7 @@ dependencies {
1920
testRuntimeOnly libs.slf4j.simple
2021

2122
testImplementation project(':base-test-utils')
23+
testImplementation project(path: ':Base', configuration: 'tests')
2224
testImplementation platform(libs.junit.bom)
2325
testImplementation libs.junit.jupiter
2426
testRuntimeOnly libs.junit.jupiter.engine

Util/channel/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies {
1212
// For CountingInputStream
1313
implementation libs.guava
1414

15-
compileOnly depAnnotations
15+
compileOnly libs.jetbrains.annotations
1616

1717
testImplementation libs.assertj
1818
testImplementation platform(libs.junit.bom)

Util/function/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ plugins {
66
dependencies {
77
api project(':qst-type')
88

9-
compileOnly depAnnotations
9+
compileOnly libs.jetbrains.annotations
1010

1111
testImplementation libs.assertj
1212
testImplementation platform(libs.junit.bom)

base-test-utils/build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ plugins {
66
dependencies {
77

88
implementation project(':Base')
9-
implementation depTrove3
10-
compileOnlyApi depAnnotations
11-
implementation depCommonsLang3
9+
implementation libs.trove
10+
compileOnlyApi libs.jetbrains.annotations
11+
implementation libs.commons.lang3
1212

1313
api 'io.deephaven:hash:0.1.0'
1414

buildSrc/src/main/groovy/io.deephaven.java-classpath-conventions.gradle

-81
This file was deleted.

buildSrc/src/main/groovy/io.deephaven.java-common-conventions.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
22
id 'base'
33
id 'java'
4-
id 'io.deephaven.java-classpath-conventions'
54
id 'io.deephaven.java-license-conventions'
65
id 'io.deephaven.java-toolchain-conventions'
76
id 'io.deephaven.java-jar-conventions'

engine/api/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies {
1717
api project(':engine-rowset')
1818

1919
implementation project(':DataStructures')
20-
implementation depTrove3
20+
implementation libs.trove
2121

2222
compileOnly project(':util-immutables')
2323
annotationProcessor libs.immutables
@@ -29,7 +29,7 @@ dependencies {
2929
testImplementation project(':engine-test-utils')
3030
testImplementation TestTools.projectDependency(project, 'engine-table')
3131
testImplementation TestTools.projectDependency(project, 'engine-vector')
32-
testImplementation depCommonsLang3
32+
testImplementation libs.commons.lang3
3333

3434
testImplementation libs.junit4
3535

engine/context/build.gradle

-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,6 @@ plugins {
55

66
description 'Engine Context: QueryScope, QueryLibrary and QueryCompiler via ExecutionContext'
77

8-
configurations {
9-
testCompile.extendsFrom junit
10-
}
11-
128
dependencies {
139
api project(':authentication')
1410
api project(':Util')

0 commit comments

Comments
 (0)