summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml4
-rw-r--r--.github/workflows/release.yml5
-rw-r--r--buildSrc/src/main/kotlin/Libs.kt37
-rw-r--r--buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts4
-rw-r--r--buildSrc/src/main/kotlin/java-conventions.gradle.kts6
-rw-r--r--buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts9
-rw-r--r--buildSrc/src/main/kotlin/testing-conventions.gradle.kts26
-rw-r--r--gradle/libs.versions.toml1
8 files changed, 55 insertions, 37 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 79bbe4d9..96b86233 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -16,7 +16,7 @@ jobs:
java: [ 17, 19 ]
include:
- os: windows-latest
- java: 19
+ java: 17
steps:
- name: Checkout repository
uses: actions/checkout@v3
@@ -36,7 +36,7 @@ jobs:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
- name: Publish report
if: always()
- uses: mikepenz/action-junit-report@v3.5.2
+ uses: mikepenz/action-junit-report@v3
with:
check_name: test (Java ${{ matrix.java }})
report_paths: '**/build/test-results/test/TEST-*.xml'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 73ec0a4d..4f62843c 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -8,9 +8,6 @@ jobs:
build:
name: Build OpenDC
runs-on: ubuntu-latest
- strategy:
- matrix:
- java: [ 17 ]
steps:
- name: Checkout repository
uses: actions/checkout@v3
@@ -20,7 +17,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'zulu'
- java-version: ${{ matrix.java }}
+ java-version: 17
- name: Publish with Gradle
uses: gradle/gradle-build-action@v2
with:
diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt
index 97dc36ca..09432b06 100644
--- a/buildSrc/src/main/kotlin/Libs.kt
+++ b/buildSrc/src/main/kotlin/Libs.kt
@@ -24,32 +24,27 @@
import org.gradle.api.JavaVersion
import org.gradle.api.Project
+import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType
/**
- * This class makes the version catalog accessible for the build scripts until Gradle adds support for it.
- *
- * See https://github.com/gradle/gradle/issues/15383
+ * Obtain the default [VersionCatalog] of the project.
*/
-public class Libs(project: Project) {
- /**
- * The version catalog of the project.
- */
- private val versionCatalog = project.extensions.getByType(VersionCatalogsExtension::class).named("libs")
+public val Project.defaultVersionCatalog: VersionCatalog
+ get() = project.extensions.getByType(VersionCatalogsExtension::class).named("libs")
- /**
- * Obtain the version for the specified [dependency][name].
- */
- operator fun get(name: String): String {
- val dep = versionCatalog.findLibrary(name).get().get()
- return "${dep.module.group}:${dep.module.name}:${dep.versionConstraint.displayName}"
- }
+/**
+ * Obtain the dependency string for the specified [name].
+ */
+public operator fun VersionCatalog.get(name: String): String {
+ val dep = findLibrary(name).get().get()
+ return "${dep.module.group}:${dep.module.name}:${dep.versionConstraint.displayName}"
+}
- companion object {
- /**
- * The JVM version to target.
- */
- val jvmTarget = JavaVersion.VERSION_17
- }
+/**
+ * Obtain the string representation of the version with the given [name].
+ */
+public fun VersionCatalog.getVersion(name: String): String {
+ return findVersion(name).get().displayName
}
diff --git a/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts b/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
index 554d2279..e16733a4 100644
--- a/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/benchmark-conventions.gradle.kts
@@ -50,7 +50,7 @@ tasks.named("jmh", JMHTask::class) {
dependencies {
constraints {
- val libs = Libs(project)
- jmh(libs["commons.math3"]) // XXX Force JMH to use the same commons-math3 version as OpenDC
+ val versionCatalog = project.defaultVersionCatalog
+ jmh(versionCatalog["commons.math3"]) // XXX Force JMH to use the same commons-math3 version as OpenDC
}
}
diff --git a/buildSrc/src/main/kotlin/java-conventions.gradle.kts b/buildSrc/src/main/kotlin/java-conventions.gradle.kts
index 8857d4ab..875ae2a7 100644
--- a/buildSrc/src/main/kotlin/java-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/java-conventions.gradle.kts
@@ -31,8 +31,10 @@ repositories {
}
java {
- sourceCompatibility = Libs.jvmTarget
- targetCompatibility = Libs.jvmTarget
+ toolchain {
+ val javaVersion = project.defaultVersionCatalog.getVersion("java")
+ languageVersion.set(JavaLanguageVersion.of(javaVersion))
+ }
}
tasks.withType<JavaCompile> {
diff --git a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
index 5ccc06a4..79afdf7c 100644
--- a/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/kotlin-conventions.gradle.kts
@@ -29,8 +29,15 @@ plugins {
}
/* Project configuration */
+
+kotlin {
+ jvmToolchain {
+ val javaVersion = project.defaultVersionCatalog.getVersion("java")
+ languageVersion.set(JavaLanguageVersion.of(javaVersion))
+ }
+}
+
tasks.withType<KotlinCompile>().configureEach {
- kotlinOptions.jvmTarget = Libs.jvmTarget.toString()
kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
kotlinOptions.freeCompilerArgs += "-Xjvm-default=all"
}
diff --git a/buildSrc/src/main/kotlin/testing-conventions.gradle.kts b/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
index ebeb58a4..a7fa9da9 100644
--- a/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
+++ b/buildSrc/src/main/kotlin/testing-conventions.gradle.kts
@@ -34,10 +34,26 @@ tasks.test {
}
dependencies {
- val libs = Libs(project)
+ val versionCatalog = project.defaultVersionCatalog
- testImplementation(libs["junit.jupiter.api"])
- testImplementation(libs["junit.jupiter.params"])
- testImplementation(libs["mockk"])
- testRuntimeOnly(libs["junit.jupiter.engine"])
+ testImplementation(versionCatalog["junit.jupiter.api"])
+ testImplementation(versionCatalog["junit.jupiter.params"])
+ testImplementation(versionCatalog["mockk"])
+ testRuntimeOnly(versionCatalog["junit.jupiter.engine"])
+}
+
+tasks.register<Test>("testsOn18") {
+ javaLauncher.set(javaToolchains.launcherFor {
+ languageVersion.set(JavaLanguageVersion.of(18))
+ })
+
+ useJUnitPlatform()
+}
+
+tasks.register<Test>("testsOn19") {
+ javaLauncher.set(javaToolchains.launcherFor {
+ languageVersion.set(JavaLanguageVersion.of(19))
+ })
+
+ useJUnitPlatform()
}
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 68f3119f..cdc7b835 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -7,6 +7,7 @@ gradle-node = "3.4.0"
hadoop = "3.3.4"
jackson = "2.13.4"
jandex-gradle = "0.13.2"
+java = "17"
jline = "3.21.0"
jmh-gradle = "0.6.8"
jakarta-validation = "2.0.2"