diff --git a/build-logic/src/main/kotlin/polaris-java.gradle.kts b/build-logic/src/main/kotlin/polaris-java.gradle.kts index 7c845a2087..78f3634749 100644 --- a/build-logic/src/main/kotlin/polaris-java.gradle.kts +++ b/build-logic/src/main/kotlin/polaris-java.gradle.kts @@ -26,8 +26,10 @@ import org.gradle.kotlin.dsl.named import publishing.PublishingHelperPlugin plugins { - id("jacoco") - id("java") + jacoco + `java-library` + `java-test-fixtures` + `jvm-test-suite` id("com.diffplug.spotless") id("jacoco-report-aggregation") id("net.ltgt.errorprone") @@ -63,9 +65,69 @@ tasks.register("format").configure { dependsOn("spotlessApply") } -tasks.named("test").configure { - useJUnitPlatform() - jvmArgs("-Duser.language=en") +tasks.named("test").configure { jvmArgs("-Duser.language=en") } + +testing { + suites { + withType { + val libs = versionCatalogs.named("libs") + + useJUnitJupiter( + libs + .findLibrary("junit-bom") + .orElseThrow { GradleException("junit-bom not declared in libs.versions.toml") } + .map { it.version!! } + ) + + dependencies { + implementation(project()) + implementation(testFixtures(project())) + runtimeOnly( + libs.findLibrary("logback-classic").orElseThrow { + GradleException("logback-classic not declared in libs.versions.toml") + } + ) + implementation( + libs.findLibrary("assertj-core").orElseThrow { + GradleException("assertj-core not declared in libs.versions.toml") + } + ) + implementation( + libs.findLibrary("mockito-core").orElseThrow { + GradleException("mockito-core not declared in libs.versions.toml") + } + ) + } + + targets.all { + if (testTask.name != "test") { + testTask.configure { shouldRunAfter("test") } + } + } + } + } +} + +dependencies { + val libs = versionCatalogs.named("libs") + testFixturesImplementation( + platform( + libs.findLibrary("junit-bom").orElseThrow { + GradleException("junit-bom not declared in libs.versions.toml") + } + ) + ) + testFixturesImplementation("org.junit.jupiter:junit-jupiter") + testFixturesImplementation( + libs.findLibrary("assertj-core").orElseThrow { + GradleException("assertj-core not declared in libs.versions.toml") + } + ) + testFixturesImplementation( + libs.findLibrary("mockito-core").orElseThrow { + GradleException("mockito-core not declared in libs.versions.toml") + } + ) } tasks.withType(Jar::class).configureEach { diff --git a/dropwizard/service/build.gradle.kts b/dropwizard/service/build.gradle.kts index f64d2ad881..8745c5bd48 100644 --- a/dropwizard/service/build.gradle.kts +++ b/dropwizard/service/build.gradle.kts @@ -125,12 +125,6 @@ dependencies { testCompileOnly(libs.smallrye.common.annotation) - testImplementation(platform(libs.junit.bom)) - testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation(libs.assertj.core) - testImplementation(libs.mockito.core) - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation(project(":polaris-eclipselink")) } diff --git a/extension/persistence/eclipselink/build.gradle.kts b/extension/persistence/eclipselink/build.gradle.kts index 20802ba657..d4edc3ee81 100644 --- a/extension/persistence/eclipselink/build.gradle.kts +++ b/extension/persistence/eclipselink/build.gradle.kts @@ -22,10 +22,7 @@ fun isValidDep(dep: String): Boolean { return dep.matches(depRegex) } -plugins { - id("polaris-server") - `java-library` -} +plugins { id("polaris-server") } dependencies { implementation(project(":polaris-core")) @@ -52,12 +49,6 @@ dependencies { testImplementation(libs.h2) testImplementation(testFixtures(project(":polaris-core"))) - - testImplementation(platform(libs.junit.bom)) - testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation(libs.assertj.core) - testImplementation(libs.mockito.core) - testRuntimeOnly("org.junit.platform:junit-platform-launcher") } tasks.register("createTestConfJar") { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a060d3324..5734b92f2d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,7 +64,7 @@ jakarta-ws-rs-api = { module = "jakarta.ws.rs:jakarta.ws.rs-api", version = "4.0 javax-annotation-api = { module = "javax.annotation:javax.annotation-api", version = "1.3.2" } jetbrains-annotations = { module = "org.jetbrains:annotations", version = "26.0.1" } junit-bom = { module = "org.junit:junit-bom", version = "5.11.4" } -logback-core = { module = "ch.qos.logback:logback-core", version = "1.4.14" } +logback-classic = { module = "ch.qos.logback:logback-classic", version = "1.4.14" } micrometer-bom = { module = "io.micrometer:micrometer-bom", version = "1.14.3" } mockito-core = { module = "org.mockito:mockito-core", version = "5.15.2" } opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version = "1.46.0" } diff --git a/polaris-core/build.gradle.kts b/polaris-core/build.gradle.kts index 320a086852..2415826081 100644 --- a/polaris-core/build.gradle.kts +++ b/polaris-core/build.gradle.kts @@ -17,11 +17,7 @@ * under the License. */ -plugins { - id("polaris-client") - id("java-library") - id("java-test-fixtures") -} +plugins { id("polaris-client") } dependencies { implementation(project(":polaris-api-management-model")) @@ -95,10 +91,6 @@ dependencies { implementation(platform(libs.google.cloud.storage.bom)) implementation("com.google.cloud:google-cloud-storage") - testFixturesApi(platform(libs.junit.bom)) - testFixturesApi("org.junit.jupiter:junit-jupiter") - testFixturesApi(libs.assertj.core) - testFixturesApi(libs.mockito.core) testFixturesApi("com.fasterxml.jackson.core:jackson-core") testFixturesApi("com.fasterxml.jackson.core:jackson-databind") testFixturesApi(libs.commons.lang3) diff --git a/service/common/build.gradle.kts b/service/common/build.gradle.kts index 7aad223956..a8f32eab76 100644 --- a/service/common/build.gradle.kts +++ b/service/common/build.gradle.kts @@ -68,7 +68,6 @@ dependencies { implementation(libs.auth0.jwt) - implementation(libs.logback.core) implementation(libs.bouncycastle.bcprov) implementation(platform(libs.google.cloud.storage.bom)) diff --git a/tools/config-docs/annotations/build.gradle.kts b/tools/config-docs/annotations/build.gradle.kts index 90bb2ac84d..88b6c7567d 100644 --- a/tools/config-docs/annotations/build.gradle.kts +++ b/tools/config-docs/annotations/build.gradle.kts @@ -17,9 +17,6 @@ * under the License. */ -plugins { - id("polaris-client") - `java-library` -} +plugins { id("polaris-client") } description = "Polaris reference docs annotations" diff --git a/tools/config-docs/generator/build.gradle.kts b/tools/config-docs/generator/build.gradle.kts index 61ea0218fc..9d68970614 100644 --- a/tools/config-docs/generator/build.gradle.kts +++ b/tools/config-docs/generator/build.gradle.kts @@ -17,11 +17,7 @@ * under the License. */ -plugins { - id("polaris-server") - `java-library` - `java-test-fixtures` -} +plugins { id("polaris-server") } description = "Generates Polaris reference docs" @@ -36,12 +32,6 @@ dependencies { implementation(libs.picocli) annotationProcessor(libs.picocli.codegen) - testFixturesApi(platform(libs.junit.bom)) - testFixturesApi("org.junit.jupiter:junit-jupiter") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testFixturesApi(libs.assertj.core) - testFixturesApi(libs.mockito.core) - genTesting(project(":polaris-config-docs-annotations")) genTesting(libs.smallrye.config.core) } diff --git a/tools/version/build.gradle.kts b/tools/version/build.gradle.kts index 1ebb5bc3e8..a4f5ca26a2 100644 --- a/tools/version/build.gradle.kts +++ b/tools/version/build.gradle.kts @@ -19,12 +19,7 @@ import org.apache.tools.ant.filters.ReplaceTokens -plugins { - id("polaris-client") - `java-library` - `java-test-fixtures` - `jvm-test-suite` -} +plugins { id("polaris-client") } dependencies { testFixturesApi(libs.assertj.core) } @@ -81,14 +76,8 @@ val jarTestJar by // need to test the `jar:` scheme/protocol resolution. testing { suites { - withType { useJUnitJupiter(libs.junit.bom.map { it.version!! }) } - register("jarTest") { - dependencies { - compileOnly(project()) - runtimeOnly(files(jarTestJar.get().archiveFile.get().asFile)) - implementation(libs.assertj.core) - } + dependencies { runtimeOnly(files(jarTestJar.get().archiveFile.get().asFile)) } targets.all { testTask.configure {