Skip to content

Commit

Permalink
Make tasks compatible with configuration cache
Browse files Browse the repository at this point in the history
  • Loading branch information
marcphilipp committed Apr 29, 2023
1 parent 7644bbd commit 9c28789
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ plugins {

val importAPIGuardian = "org.apiguardian.*;resolution:=\"optional\""

val projectDescription = objects.property<String>().convention(provider { project.description })

// This task enhances `jar` and `shadowJar` tasks with the bnd
// `BundleTaskExtension` extension which allows for generating OSGi
// metadata into the jar
Expand All @@ -16,8 +18,8 @@ tasks.withType<Jar>().matching { task: Jar ->
extra["importAPIGuardian"] = importAPIGuardian

extensions.create<BundleTaskExtension>(BundleTaskExtension.NAME, this).apply {
properties.set(provider {
mapOf("project.description" to project.description)
properties.set(projectDescription.map {
mapOf("project.description" to it)
})
// These are bnd instructions necessary for generating OSGi metadata.
// We've generalized these so that they are widely applicable limiting
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ signing {
}

tasks.withType<Sign>().configureEach {
val isSnapshot = project.version.toString().contains("SNAPSHOT")
onlyIf {
!isSnapshot // Gradle Module Metadata currently does not support signing snapshots
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ val tempRepoName by extra("temp")
val tempRepoDir by extra(file("$buildDir/repo"))

val clearTempRepoDir by tasks.registering {
val dir = tempRepoDir
doFirst {
tempRepoDir.deleteRecursively()
dir.deleteRecursively()
}
}

Expand Down
3 changes: 2 additions & 1 deletion junit-jupiter-api/junit-jupiter-api.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ dependencies {
tasks {
jar {
bundle {
val version = project.version
bnd("""
Require-Capability:\
org.junit.platform.engine;\
filter:='(&(org.junit.platform.engine=junit-jupiter)(version>=${'$'}{version_cleanup;${rootProject.property("version")!!}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${rootProject.property("version")!!}}})))';\
filter:='(&(org.junit.platform.engine=junit-jupiter)(version>=${'$'}{version_cleanup;${version}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${version}}})))';\
effective:=active
""")
}
Expand Down
3 changes: 2 additions & 1 deletion junit-jupiter-engine/junit-jupiter-engine.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,15 @@ tasks {
}
jar {
bundle {
val platformVersion: String by rootProject.extra
bnd("""
Provide-Capability:\
org.junit.platform.engine;\
org.junit.platform.engine='junit-jupiter';\
version:Version="${'$'}{version_cleanup;${project.version}}"
Require-Capability:\
org.junit.platform.launcher;\
filter:='(&(org.junit.platform.launcher=junit-platform-launcher)(version>=${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}}})))';\
filter:='(&(org.junit.platform.launcher=junit-platform-launcher)(version>=${'$'}{version_cleanup;${platformVersion}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${platformVersion}}})))';\
effective:=active
""")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,11 @@ dependencies {

tasks.jar {
bundle {
val importAPIGuardian: String by extra
bnd("""
# Import JUnit4 packages with a version
Import-Package: \
${extra["importAPIGuardian"]},\
$importAPIGuardian,\
org.junit;version="[${libs.versions.junit4Min.get()},5)",\
org.junit.platform.commons.logging;status=INTERNAL,\
org.junit.rules;version="[${libs.versions.junit4Min.get()},5)",\
Expand Down
3 changes: 2 additions & 1 deletion junit-jupiter-params/junit-jupiter-params.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,11 @@ dependencies {
tasks {
jar {
bundle {
val version = project.version
bnd("""
Require-Capability:\
org.junit.platform.engine;\
filter:='(&(org.junit.platform.engine=junit-jupiter)(version>=${'$'}{version_cleanup;${rootProject.property("version")!!}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${rootProject.property("version")!!}}})))';\
filter:='(&(org.junit.platform.engine=junit-jupiter)(version>=${'$'}{version_cleanup;$version})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;$version}})))';\
effective:=active
""")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,11 @@ tasks {
}

bundle {
val importAPIGuardian: String by extra
bnd("""
# Customize the imports because this is an aggregate jar
Import-Package: \
${extra["importAPIGuardian"]},\
$importAPIGuardian,\
kotlin.*;resolution:="optional",\
*
# Disable the APIGuardian plugin since everything was already
Expand Down
3 changes: 2 additions & 1 deletion junit-platform-launcher/junit-platform-launcher.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ dependencies {
tasks {
jar {
bundle {
val version = project.version
bnd("""
Provide-Capability:\
org.junit.platform.launcher;\
org.junit.platform.launcher='junit-platform-launcher';\
version:Version="${'$'}{version_cleanup;${project.version}}"
version:Version="${'$'}{version_cleanup;${version}}"
""")
}
}
Expand Down
3 changes: 2 additions & 1 deletion junit-platform-runner/junit-platform-runner.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,11 @@ dependencies {

tasks.jar {
bundle {
val importAPIGuardian: String by extra
bnd("""
# Import JUnit4 packages with a version
Import-Package: \
${extra["importAPIGuardian"]},\
$importAPIGuardian,\
org.junit.platform.commons.logging;status=INTERNAL,\
org.junit.runner.*;version="[${libs.versions.junit4Min.get()},5)",\
*
Expand Down
6 changes: 4 additions & 2 deletions junit-vintage-engine/junit-vintage-engine.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ tasks {
jar {
bundle {
val junit4Min = libs.versions.junit4Min.get()
val platformVersion: String by rootProject.extra
val version = project.version
bnd("""
# Import JUnit4 packages with a version
Import-Package: \
Expand All @@ -53,10 +55,10 @@ tasks {
Provide-Capability:\
org.junit.platform.engine;\
org.junit.platform.engine='junit-vintage';\
version:Version="${'$'}{version_cleanup;${project.version}}"
version:Version="${'$'}{version_cleanup;$version}"
Require-Capability:\
org.junit.platform.launcher;\
filter:='(&(org.junit.platform.launcher=junit-platform-launcher)(version>=${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;${rootProject.property("platformVersion")!!}}})))';\
filter:='(&(org.junit.platform.launcher=junit-platform-launcher)(version>=${'$'}{version_cleanup;$platformVersion})(!(version>=${'$'}{versionmask;+;${'$'}{version_cleanup;$platformVersion}})))';\
effective:=active
""")
}
Expand Down

0 comments on commit 9c28789

Please sign in to comment.