This is an automated email from the ASF dual-hosted git repository.
snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/main by this push:
new 72600e40 Build/testing: add `java-test-fixtures` to every Java project
& reduce repeated dependency declarations (#714)
72600e40 is described below
commit 72600e40c8fd16266500942c7771806b135a38cb
Author: Robert Stupp <[email protected]>
AuthorDate: Tue Jan 14 10:21:34 2025 +0100
Build/testing: add `java-test-fixtures` to every Java project & reduce
repeated dependency declarations (#714)
Reduce the amount of dependency declarations in all projects by adding
adding the dependencies logback-classic (runtimeOnly) and assertj+mockito
(implementation) to all test sources. test-fixtures get
junit-jupiter+assertj+mockito as implementation dependencies.
Also ensures that `useJUnitJupiter` is called with the correct version (it
implicitly adds the jupiter runtime).
logback-classic is needed at test runtime to actually get logs during test
executions, logback-core is a dependency of logback-classic that provides the
logback implementation.
---
.../src/main/kotlin/polaris-java.gradle.kts | 72 ++++++++++++++++++++--
dropwizard/service/build.gradle.kts | 6 --
extension/persistence/eclipselink/build.gradle.kts | 11 +---
gradle/libs.versions.toml | 2 +-
polaris-core/build.gradle.kts | 10 +--
service/common/build.gradle.kts | 1 -
tools/config-docs/annotations/build.gradle.kts | 5 +-
tools/config-docs/generator/build.gradle.kts | 12 +---
tools/version/build.gradle.kts | 15 +----
9 files changed, 74 insertions(+), 60 deletions(-)
diff --git a/build-logic/src/main/kotlin/polaris-java.gradle.kts
b/build-logic/src/main/kotlin/polaris-java.gradle.kts
index 7c845a20..78f36347 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>("test").configure {
- useJUnitPlatform()
- jvmArgs("-Duser.language=en")
+tasks.named<Test>("test").configure { jvmArgs("-Duser.language=en") }
+
+testing {
+ suites {
+ withType<JvmTestSuite> {
+ 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 f64d2ad8..8745c5bd 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 20802ba6..d4edc3ee 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<Jar>("createTestConfJar") {
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 1a060d33..5734b92f 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 320a0868..24158260 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 7aad2239..a8f32eab 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 90bb2ac8..88b6c756 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 61ea0218..9d689706 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 1ebb5bc3..a4f5ca26 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<JvmTestSuite> { useJUnitJupiter(libs.junit.bom.map { it.version!!
}) }
-
register<JvmTestSuite>("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 {