Skip to content

Commit 627dc60

Browse files
authored
Use Gradle version catalog (#9)
... and bump a couple dependencies
1 parent 8290019 commit 627dc60

File tree

5 files changed

+139
-73
lines changed

5 files changed

+139
-73
lines changed

build.gradle

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ buildscript {
2121
}
2222
}
2323
dependencies {
24-
classpath "com.diffplug.spotless:spotless-plugin-gradle:6.25.0"
24+
classpath "com.diffplug.spotless:spotless-plugin-gradle:${libs.plugins.spotless.get().version}"
2525
}
2626
}
2727

@@ -50,13 +50,6 @@ subprojects {
5050
apply plugin: "com.diffplug.spotless"
5151
apply plugin: "jacoco-report-aggregation"
5252
apply plugin: "groovy"
53-
ext {
54-
jacksonVersion = "2.17.2"
55-
icebergVersion = "1.5.0"
56-
hadoopVersion = "3.3.6"
57-
dropwizardVersion = "4.0.7"
58-
assertJVersion = "3.25.3"
59-
}
6053

6154
tasks.withType(JavaCompile) {
6255
options.compilerArgs << "-Xlint:unchecked"
@@ -72,17 +65,17 @@ subprojects {
7265
}
7366

7467
dependencies {
75-
implementation(platform("com.fasterxml.jackson:jackson-bom:${jacksonVersion}"))
68+
implementation(platform(libs.jackson.bom))
7669
implementation("com.fasterxml.jackson.core:jackson-annotations")
77-
implementation("com.google.guava:guava:33.0.0-jre")
78-
implementation("org.jetbrains:annotations:24.0.0")
79-
implementation("org.slf4j:slf4j-api:2.0.12")
80-
compileOnly("com.github.spotbugs:spotbugs-annotations:4.8.5")
70+
implementation(libs.guava)
71+
implementation(libs.slf4j.api)
72+
compileOnly(libs.jetbrains.annotations)
73+
compileOnly(libs.spotbugs.annotations)
8174

82-
testImplementation(platform("org.junit:junit-bom:5.10.3"))
75+
testImplementation(platform(libs.junit.bom))
8376
testImplementation("org.junit.jupiter:junit-jupiter")
84-
testImplementation("org.assertj:assertj-core:3.26.3")
85-
testImplementation("org.mockito:mockito-core:5.11.0")
77+
testImplementation(libs.assertj.core)
78+
testImplementation(libs.mockito.core)
8679

8780
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
8881
}

extension/persistence/eclipselink/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@
1717
dependencies {
1818
implementation(project(":polaris-core"))
1919
implementation(project(":polaris-service"))
20-
implementation("org.eclipse.persistence:eclipselink:4.0.3")
21-
implementation("io.dropwizard:dropwizard-jackson:${dropwizardVersion}")
20+
implementation(libs.eclipselink)
21+
implementation(platform(libs.dropwizard.bom))
22+
implementation("io.dropwizard:dropwizard-jackson")
2223

23-
testImplementation("com.h2database:h2:2.2.224")
24+
testImplementation(libs.h2)
2425
testImplementation(testFixtures(project(":polaris-core")))
2526
}

gradle/libs.versions.toml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Copyright (c) 2024 Snowflake Computing Inc.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
[versions]
16+
hadoop = "3.3.6"
17+
iceberg = "1.5.0"
18+
dropwizard = "4.0.7"
19+
slf4j = "2.0.13"
20+
swagger = "1.6.14"
21+
22+
[bundles]
23+
24+
25+
[libraries]
26+
assertj-core = { module = "org.assertj:assertj-core", version = "3.26.3" }
27+
auth0-jwt = { module = "com.auth0:java-jwt", version = "4.2.1" }
28+
awssdk-bom = { module = "software.amazon.awssdk:bom", version = "2.26.25" }
29+
azuresdk-bom = { module = "com.azure:azure-sdk-bom", version = "1.2.25" }
30+
bouncycastle-bcprov = { module = "org.bouncycastle:bcprov-jdk18on", version = "1.78" }
31+
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version = "3.1.8" }
32+
commons-codec1 = { module = "commons-codec:commons-codec", version = "1.17.0" }
33+
commons-lang3 = { module = "org.apache.commons:commons-lang3", version = "3.14.0" }
34+
dropwizard-bom = { module = "io.dropwizard:dropwizard-bom", version = "4.0.7" }
35+
eclipselink = { module = "org.eclipse.persistence:eclipselink", version = "4.0.3" }
36+
google-cloud-storage-bom = { module = "com.google.cloud:google-cloud-storage-bom", version = "2.40.1" }
37+
guava = { module = "com.google.guava:guava", version = "33.2.1-jre" }
38+
h2 = { module = "com.h2database:h2", version = "2.2.224" }
39+
hadoop-client-api = { module = "org.apache.hadoop:hadoop-client-api", version.ref = "hadoop" }
40+
hadoop-common = { module = "org.apache.hadoop:hadoop-common", version.ref = "hadoop" }
41+
hadoop-hdfs-client = { module = "org.apache.hadoop:hadoop-hdfs-client", version.ref = "hadoop" }
42+
iceberg-bom = { module = "org.apache.iceberg:iceberg-bom", version.ref = "iceberg" }
43+
jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version = "2.17.2" }
44+
jakarta-annotation-api = { module = "jakarta.annotation:jakarta.annotation-api", version = "3.0.0" }
45+
jakarta-validation-api = { module = "jakarta.validation:jakarta.validation-api", version = "3.1.0" }
46+
jakarta-persistence-api = { module = "jakarta.persistence:jakarta.persistence-api", version = "3.1.0" }
47+
javax-annotation-api = { module = "javax.annotation:javax.annotation-api", version = "1.3.2" }
48+
javax-inject = { module = "javax.inject:javax.inject", version = "1" }
49+
jetbrains-annotations = { module = "org.jetbrains:annotations", version = "24.0.0" }
50+
junit-bom = { module = "org.junit:junit-bom", version = "5.10.3" }
51+
logback-core = { module = "ch.qos.logback:logback-core", version = "1.4.14" }
52+
micrometer-bom = { module = "io.micrometer:micrometer-bom", version = "1.13.2" }
53+
mockito-core = { module = "org.mockito:mockito-core", version = "5.11.0" }
54+
opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version = "1.38.0" }
55+
opentelemetry-semconv = { module = "io.opentelemetry.semconv:opentelemetry-semconv", version = "1.25.0-alpha" }
56+
prometheus-metrics-exporter-servlet-jakarta = { module = "io.prometheus:prometheus-metrics-exporter-servlet-jakarta", version = "1.3.0" }
57+
s3mock-testcontainers = { module = "com.adobe.testing:s3mock-testcontainers", version = "3.9.1" }
58+
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
59+
spotbugs-annotations = { module = "com.github.spotbugs:spotbugs-annotations", version = "4.8.5" }
60+
sqllite-jdbc = { module = "org.xerial:sqlite-jdbc", version = "3.45.1.0" }
61+
swagger-annotations = { module = "io.swagger:swagger-annotations", version.ref = "swagger" }
62+
swagger-jaxrs = { module = "io.swagger:swagger-jaxrs", version.ref = "swagger" }
63+
testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version = "1.20.0" }
64+
65+
[plugins]
66+
openapi-generator = { id = "org.openapi.generator", version = "7.6.0" }
67+
spotless = { id = "com.diffplug.spotless", version = "6.25.0" }
68+
shadow = { id = "com.github.johnrengelman.shadow", version = "8.1.1" }

polaris-core/build.gradle

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*/
1616

1717
plugins {
18-
id "org.openapi.generator" version "7.6.0"
18+
alias(libs.plugins.openapi.generator)
1919
id("java-library")
2020
id("java-test-fixtures")
2121
}
@@ -26,27 +26,28 @@ compileJava {
2626
}
2727

2828
dependencies {
29-
implementation(platform("org.apache.iceberg:iceberg-bom:${icebergVersion}"))
30-
implementation("org.apache.iceberg:iceberg-api:${icebergVersion}")
31-
implementation("org.apache.iceberg:iceberg-core:${icebergVersion}")
29+
implementation(platform(libs.iceberg.bom))
30+
implementation("org.apache.iceberg:iceberg-api")
31+
implementation("org.apache.iceberg:iceberg-core")
3232
constraints {
3333
implementation("io.airlift:aircompressor:0.27") {
3434
because "Vulnerability detected in 0.25"
3535
}
3636
}
3737
// TODO - this is only here for the Discoverable interface
3838
// We should use a different mechanism to discover the plugin implementations
39-
implementation("io.dropwizard:dropwizard-jackson:${dropwizardVersion}")
39+
implementation(platform(libs.dropwizard.bom))
40+
implementation("io.dropwizard:dropwizard-jackson")
4041

41-
implementation(platform("com.fasterxml.jackson:jackson-bom:${jacksonVersion}"))
42+
implementation(platform(libs.jackson.bom))
4243
implementation("com.fasterxml.jackson.core:jackson-annotations")
4344
implementation("com.fasterxml.jackson.core:jackson-core")
4445
implementation("com.fasterxml.jackson.core:jackson-databind")
45-
implementation("com.github.ben-manes.caffeine:caffeine:3.1.8")
46-
implementation("org.apache.commons:commons-lang3:3.14.0")
47-
implementation("commons-codec:commons-codec:1.17.0")
46+
implementation(libs.caffeine)
47+
implementation(libs.commons.lang3)
48+
implementation(libs.commons.codec1)
4849

49-
implementation("org.apache.hadoop:hadoop-common:${hadoopVersion}") {
50+
implementation(libs.hadoop.common) {
5051
exclude group: "org.slf4j", module: "slf4j-reload4j"
5152
exclude group: "org.slf4j", module: "slf4j-log4j12"
5253
exclude group: "ch.qos.reload4j", module: "reload4j"
@@ -71,24 +72,25 @@ dependencies {
7172
}
7273

7374
}
74-
implementation("org.apache.hadoop:hadoop-hdfs-client:${hadoopVersion}")
75+
implementation(libs.hadoop.hdfs.client)
7576

76-
implementation("javax.inject:javax.inject:1")
77-
implementation("io.swagger:swagger-annotations:1.6.14")
78-
implementation("io.swagger:swagger-jaxrs:1.6.14")
79-
implementation("jakarta.validation:jakarta.validation-api:3.0.2")
77+
implementation(libs.javax.inject)
78+
implementation(libs.swagger.annotations)
79+
implementation(libs.swagger.jaxrs)
80+
implementation(libs.jakarta.validation.api)
8081

8182
implementation("org.apache.iceberg:iceberg-aws")
82-
implementation(platform("software.amazon.awssdk:bom:2.26.25"))
83+
implementation(platform(libs.awssdk.bom))
8384
implementation("software.amazon.awssdk:sts")
8485
implementation("software.amazon.awssdk:iam-policy-builder")
8586
implementation("software.amazon.awssdk:s3")
8687

8788
implementation("org.apache.iceberg:iceberg-azure")
88-
implementation("com.azure:azure-storage-blob:12.18.0")
89-
implementation("com.azure:azure-storage-common:12.14.2")
90-
implementation("com.azure:azure-identity:1.12.2")
91-
implementation("com.azure:azure-storage-file-datalake:12.19.0")
89+
implementation(platform(libs.azuresdk.bom))
90+
implementation("com.azure:azure-storage-blob")
91+
implementation("com.azure:azure-storage-common")
92+
implementation("com.azure:azure-identity")
93+
implementation("com.azure:azure-storage-file-datalake")
9294
constraints {
9395
implementation("io.netty:netty-codec-http2:4.1.100") {
9496
because "Vulnerability detected in 4.1.72"
@@ -99,24 +101,24 @@ dependencies {
99101
}
100102

101103
implementation("org.apache.iceberg:iceberg-gcp")
102-
implementation(platform("com.google.cloud:google-cloud-storage-bom:2.39.0"))
104+
implementation(platform(libs.google.cloud.storage.bom))
103105
implementation("com.google.cloud:google-cloud-storage")
104106

105-
implementation(platform("io.micrometer:micrometer-bom:1.13.2"))
107+
implementation(platform(libs.micrometer.bom))
106108
implementation("io.micrometer:micrometer-core")
107109

108-
testFixturesApi(platform("org.junit:junit-bom:5.10.3"))
110+
testFixturesApi(platform(libs.junit.bom))
109111
testFixturesApi("org.junit.jupiter:junit-jupiter")
110-
testFixturesApi("org.assertj:assertj-core:3.25.3")
111-
testFixturesApi("org.mockito:mockito-core:5.11.0")
112+
testFixturesApi(libs.assertj.core)
113+
testFixturesApi(libs.mockito.core)
112114
testFixturesApi("com.fasterxml.jackson.core:jackson-core")
113115
testFixturesApi("com.fasterxml.jackson.core:jackson-databind")
114-
testFixturesApi("org.apache.commons:commons-lang3:3.14.0")
115-
testFixturesApi("org.jetbrains:annotations:24.0.0")
116-
testFixturesApi(platform("com.fasterxml.jackson:jackson-bom:${jacksonVersion}"))
116+
testFixturesApi(libs.commons.lang3)
117+
testFixturesApi(libs.jetbrains.annotations)
118+
testFixturesApi(platform(libs.jackson.bom))
117119

118-
compileOnly("jakarta.annotation:jakarta.annotation-api:2.1.1")
119-
compileOnly("jakarta.persistence:jakarta.persistence-api:3.1.0")
120+
compileOnly(libs.jakarta.annotation.api)
121+
compileOnly(libs.jakarta.persistence.api)
120122
}
121123

122124
openApiValidate {

polaris-service/build.gradle

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,63 +15,65 @@
1515
*/
1616

1717
plugins {
18-
id "com.github.johnrengelman.shadow" version "8.1.1"
19-
id "org.openapi.generator" version "7.6.0"
18+
alias(libs.plugins.shadow)
19+
alias(libs.plugins.openapi.generator)
2020
}
2121

2222
dependencies {
2323
implementation(project(":polaris-core"))
2424

25-
implementation(platform("org.apache.iceberg:iceberg-bom:${icebergVersion}"))
25+
implementation(platform(libs.iceberg.bom))
2626
implementation("org.apache.iceberg:iceberg-api")
2727
implementation("org.apache.iceberg:iceberg-core")
2828
implementation("org.apache.iceberg:iceberg-aws")
2929

30-
implementation(platform("io.dropwizard:dropwizard-bom:${dropwizardVersion}"))
30+
implementation(platform(libs.dropwizard.bom))
3131
implementation("io.dropwizard:dropwizard-core")
3232
implementation("io.dropwizard:dropwizard-auth")
3333
implementation("io.dropwizard:dropwizard-json-logging")
3434

35-
implementation(platform("com.fasterxml.jackson:jackson-bom:${jacksonVersion}"))
35+
implementation(platform(libs.jackson.bom))
3636
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
3737

38-
implementation(platform("io.opentelemetry:opentelemetry-bom:1.38.0"))
38+
implementation(platform(libs.opentelemetry.bom))
3939
implementation("io.opentelemetry:opentelemetry-api")
4040
implementation("io.opentelemetry:opentelemetry-sdk-trace")
4141
implementation("io.opentelemetry:opentelemetry-exporter-logging")
42-
implementation("io.opentelemetry.semconv:opentelemetry-semconv:1.25.0-alpha")
42+
implementation(libs.opentelemetry.semconv)
4343

44-
implementation("com.github.ben-manes.caffeine:caffeine:3.1.8")
44+
implementation(libs.caffeine)
4545

46-
implementation("io.prometheus:prometheus-metrics-exporter-servlet-jakarta:1.3.0")
47-
implementation(platform("io.micrometer:micrometer-bom:1.13.2"))
46+
implementation(libs.prometheus.metrics.exporter.servlet.jakarta)
47+
implementation(platform(libs.micrometer.bom))
4848
implementation("io.micrometer:micrometer-core")
4949
implementation("io.micrometer:micrometer-registry-prometheus")
5050

51-
implementation("io.swagger:swagger-annotations:1.6.14")
52-
implementation("io.swagger:swagger-jaxrs:1.6.14")
53-
implementation("javax.annotation:javax.annotation-api:1.3.2")
51+
compileOnly(libs.swagger.annotations)
52+
implementation(libs.swagger.jaxrs)
53+
implementation(libs.javax.annotation.api)
5454

55-
implementation("org.apache.hadoop:hadoop-client-api:${hadoopVersion}")
55+
implementation(libs.hadoop.client.api)
5656

57-
implementation("org.xerial:sqlite-jdbc:3.45.1.0")
58-
implementation("com.auth0:java-jwt:4.2.1")
57+
implementation(libs.sqllite.jdbc)
58+
implementation(libs.auth0.jwt)
5959

60-
implementation("ch.qos.logback:logback-core:1.4.14")
61-
implementation("org.bouncycastle:bcprov-jdk18on:1.78")
60+
implementation(libs.logback.core)
61+
implementation(libs.bouncycastle.bcprov)
6262

63-
implementation("com.google.cloud:google-cloud-storage:2.39.0")
64-
implementation(platform("software.amazon.awssdk:bom:2.26.25"))
63+
implementation(platform(libs.google.cloud.storage.bom))
64+
implementation("com.google.cloud:google-cloud-storage")
65+
implementation(platform(libs.awssdk.bom))
6566
implementation("software.amazon.awssdk:sts")
6667
implementation("software.amazon.awssdk:sts")
6768
implementation("software.amazon.awssdk:iam-policy-builder")
6869
implementation("software.amazon.awssdk:s3")
6970

70-
testImplementation("org.apache.iceberg:iceberg-api:${icebergVersion}:tests")
71-
testImplementation("org.apache.iceberg:iceberg-core:${icebergVersion}:tests")
71+
testImplementation("org.apache.iceberg:iceberg-api:${libs.versions.iceberg.get()}:tests")
72+
testImplementation("org.apache.iceberg:iceberg-core:${libs.versions.iceberg.get()}:tests")
7273
testImplementation("io.dropwizard:dropwizard-testing")
73-
testImplementation("org.testcontainers:testcontainers:1.19.8")
74-
testImplementation("com.adobe.testing:s3mock-testcontainers:3.9.1")
74+
testImplementation(platform(libs.testcontainers.bom))
75+
testImplementation("org.testcontainers:testcontainers")
76+
testImplementation(libs.s3mock.testcontainers)
7577

7678
testImplementation("org.apache.iceberg:iceberg-spark-3.5_2.12")
7779
testImplementation("org.apache.iceberg:iceberg-spark-extensions-3.5_2.12")

0 commit comments

Comments
 (0)