Skip to content

Commit c8960d6

Browse files
committed
no consistent versions and two sparks
Signed-off-by: Robert Kruszewski <github@robertk.io>
1 parent d37c6dc commit c8960d6

6 files changed

Lines changed: 106 additions & 47 deletions

File tree

java/build.gradle.kts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import net.ltgt.gradle.errorprone.errorprone
55

66
plugins {
77
id("com.diffplug.spotless") version "8.4.0"
8-
id("com.palantir.consistent-versions") version "3.15.0"
98
id("com.palantir.git-version") version "5.0.0"
109
id("net.ltgt.errorprone") version "5.1.0" apply false
1110
id("com.google.protobuf") version "0.9.6" apply false
@@ -33,9 +32,9 @@ allprojects {
3332
apply(plugin = "net.ltgt.errorprone")
3433

3534
dependencies {
36-
"errorprone"("com.google.errorprone:error_prone_core")
37-
"errorprone"("com.jakewharton.nopen:nopen-checker")
38-
"compileOnly"("com.jakewharton.nopen:nopen-annotations")
35+
"errorprone"("com.google.errorprone:error_prone_core:2.36.0")
36+
"errorprone"("com.jakewharton.nopen:nopen-checker:1.0.1")
37+
"compileOnly"("com.jakewharton.nopen:nopen-annotations:1.0.1")
3938
}
4039

4140
spotless {

java/gradle/libs.versions.toml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
# SPDX-FileCopyrightText: Copyright the Vortex contributors
3+
4+
[versions]
5+
arrow = "18.3.0"
6+
errorprone = "2.36.0"
7+
guava = "33.5.0-jre"
8+
immutables = "2.12.1"
9+
junit-jupiter = "6.0.3"
10+
logback = "1.5.32"
11+
netty = "4.2.7.Final"
12+
nopen = "1.0.1"
13+
protobuf = "4.33.5"
14+
slf4j = "2.0.17"
15+
spark3 = "3.5.8"
16+
spark4 = "4.1.1"
17+
18+
[libraries]
19+
arrow-c-data = { module = "org.apache.arrow:arrow-c-data", version.ref = "arrow" }
20+
arrow-memory-core = { module = "org.apache.arrow:arrow-memory-core", version.ref = "arrow" }
21+
arrow-memory-netty = { module = "org.apache.arrow:arrow-memory-netty", version.ref = "arrow" }
22+
errorprone-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "errorprone" }
23+
errorprone-core = { module = "com.google.errorprone:error_prone_core", version.ref = "errorprone" }
24+
guava = { module = "com.google.guava:guava", version.ref = "guava" }
25+
immutables-value = { module = "org.immutables:value", version.ref = "immutables" }
26+
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
27+
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit-jupiter" }
28+
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
29+
netty-bom = { module = "io.netty:netty-bom", version.ref = "netty" }
30+
nopen-annotations = { module = "com.jakewharton.nopen:nopen-annotations", version.ref = "nopen" }
31+
nopen-checker = { module = "com.jakewharton.nopen:nopen-checker", version.ref = "nopen" }
32+
protobuf-java = { module = "com.google.protobuf:protobuf-java", version.ref = "protobuf" }
33+
slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
34+
slf4j-simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }

java/settings.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,8 @@ rootProject.name = "vortex-root"
1919

2020
// API bindings
2121
include("vortex-jni")
22-
include("vortex-spark")
22+
include("vortex-spark_2.12")
23+
project(":vortex-spark_2.12").projectDir = file("vortex-spark")
24+
25+
include("vortex-spark_2.13")
26+
project(":vortex-spark_2.13").projectDir = file("vortex-spark")

java/testfiles/Cargo.lock

Lines changed: 5 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

java/vortex-jni/build.gradle.kts

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,35 @@ plugins {
1212
}
1313

1414
dependencies {
15-
implementation("org.apache.arrow:arrow-c-data")
16-
implementation("org.apache.arrow:arrow-memory-core")
17-
implementation("org.apache.arrow:arrow-memory-netty")
15+
// Align Netty versions across Arrow and Spark
16+
implementation(platform(libs.netty.bom))
1817

19-
compileOnly("org.immutables:value")
20-
annotationProcessor("org.immutables:value")
18+
implementation(libs.arrow.c.data)
19+
implementation(libs.arrow.memory.core)
20+
implementation(libs.arrow.memory.netty)
2121

22-
errorprone("com.google.errorprone:error_prone_core")
23-
errorprone("com.jakewharton.nopen:nopen-checker")
22+
compileOnly(libs.immutables.value)
23+
annotationProcessor(libs.immutables.value)
2424

25-
implementation("com.google.guava:guava")
26-
implementation("com.google.protobuf:protobuf-java")
27-
compileOnly("com.google.errorprone:error_prone_annotations")
28-
compileOnly("com.jakewharton.nopen:nopen-annotations")
25+
errorprone(libs.errorprone.core)
26+
errorprone(libs.nopen.checker)
27+
28+
implementation(libs.guava)
29+
implementation(libs.protobuf.java)
30+
compileOnly(libs.errorprone.annotations)
31+
compileOnly(libs.nopen.annotations)
2932

3033
// Logging
31-
implementation("org.slf4j:slf4j-api:2.0.17")
32-
testRuntimeOnly("ch.qos.logback:logback-classic:1.5.32")
34+
implementation(libs.slf4j.api)
35+
testRuntimeOnly(libs.logback.classic)
3336
}
3437

3538
testing {
3639
suites {
3740
val test by getting(JvmTestSuite::class) {
3841
useJUnitJupiter()
3942
dependencies {
40-
implementation("org.junit.jupiter:junit-jupiter-params")
43+
implementation(libs.junit.jupiter.params)
4144
}
4245
}
4346
}
@@ -47,7 +50,7 @@ mavenPublishing {
4750
coordinates(groupId = "dev.vortex", artifactId = "vortex-jni", version = "${rootProject.version}")
4851
publishToMavenCentral()
4952

50-
signAllPublications()
53+
// signAllPublications()
5154

5255
pom {
5356
name = "vortex-jni"
@@ -90,7 +93,7 @@ tasks.withType<Test>().all {
9093

9194
protobuf {
9295
protoc {
93-
artifact = "com.google.protobuf:protoc:4.33.5"
96+
artifact = "com.google.protobuf:protoc:${libs.versions.protobuf.get()}"
9497
}
9598
}
9699

java/vortex-spark/build.gradle.kts

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,45 @@
33

44
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
55

6-
apply(plugin = "com.vanniktech.maven.publish")
7-
86
plugins {
97
`java-library`
108
`jvm-test-suite`
119
id("com.gradleup.shadow") version "9.4.0"
1210
}
1311

12+
// Derive Scala and Spark versions from the Gradle project name (vortex-spark_2.12 or vortex-spark_2.13)
13+
val scalaVersion: String = project.name.substringAfterLast("_")
14+
val sparkVersion: String =
15+
when (scalaVersion) {
16+
"2.12" -> {
17+
libs.versions.spark3.get()
18+
}
19+
20+
"2.13" -> {
21+
libs.versions.spark4.get()
22+
}
23+
24+
else -> {
25+
throw GradleException(
26+
"Unsupported Scala version: $scalaVersion (project name must end with _2.12 or _2.13)",
27+
)
28+
}
29+
}
30+
31+
// Both vortex-spark_2.12 and vortex-spark_2.13 share this projectDir.
32+
// Give each its own build directory to avoid output conflicts.
33+
layout.buildDirectory = layout.projectDirectory.dir("build/${project.name}")
34+
1435
dependencies {
15-
compileOnly("org.apache.spark:spark-catalyst_2.13")
16-
compileOnly("org.apache.spark:spark-sql_2.13")
36+
compileOnly("org.apache.spark:spark-catalyst_$scalaVersion:$sparkVersion")
37+
compileOnly("org.apache.spark:spark-sql_$scalaVersion:$sparkVersion")
1738
api(project(":vortex-jni", configuration = "shadow"))
1839

19-
compileOnly("org.immutables:value")
20-
annotationProcessor("org.immutables:value")
40+
compileOnly(libs.immutables.value)
41+
annotationProcessor(libs.immutables.value)
2142

22-
implementation("com.google.guava:guava")
23-
implementation("org.slf4j:slf4j-api:2.0.17")
43+
implementation(libs.guava)
44+
implementation(libs.slf4j.api)
2445
}
2546

2647
testing {
@@ -29,27 +50,30 @@ testing {
2950
useJUnitJupiter()
3051

3152
dependencies {
32-
implementation("org.junit.jupiter:junit-jupiter:6.0.3")
33-
implementation("org.apache.spark:spark-core_2.13")
34-
implementation("org.apache.spark:spark-sql_2.13")
35-
runtimeOnly("org.slf4j:slf4j-simple:2.0.17")
36-
// S3Mock Testcontainers for testing S3 integration (avoids classpath conflicts)
53+
implementation(libs.junit.jupiter)
54+
implementation("org.apache.spark:spark-core_$scalaVersion:$sparkVersion")
55+
implementation("org.apache.spark:spark-sql_$scalaVersion:$sparkVersion")
3756
implementation("com.adobe.testing:s3mock-testcontainers")
3857
implementation("org.testcontainers:junit-jupiter")
58+
runtimeOnly(libs.slf4j.simple)
59+
if (scalaVersion == "2.12") {
60+
// Spark 3.5 marks javax.servlet-api as provided; needed at test runtime for MetricsServlet
61+
runtimeOnly("javax.servlet:javax.servlet-api:4.0.1")
62+
}
3963
}
4064
}
4165
}
4266
}
4367

4468
mavenPublishing {
45-
coordinates(groupId = "dev.vortex", artifactId = "vortex-spark", version = "${rootProject.version}")
69+
coordinates(groupId = "dev.vortex", artifactId = "vortex-spark_$scalaVersion", version = "${rootProject.version}")
4670

4771
publishToMavenCentral()
4872

49-
signAllPublications()
73+
// signAllPublications()
5074

5175
pom {
52-
name = "vortex-spark"
76+
name = "vortex-spark_$scalaVersion"
5377
description = project.description
5478
url = "https://vortex.dev"
5579
inceptionYear = "2025"

0 commit comments

Comments
 (0)