diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 29ba96e617b..f7ae50fb376 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -29,11 +29,23 @@ spotless { repositories { mavenCentral() gradlePluginPortal() + // TODO: delete bndtools repository once biz.aQute.bnd.gradle:7.3.0 is released + maven { url = uri("https://bndtools.jfrog.io/artifactory/libs-release/") } mavenLocal() } +// TODO: delete version pinning once biz.aQute.bnd.gradle:7.3.0 is released +configurations.all { + resolutionStrategy.eachDependency { + // biz.aQute.bnd.gradle 7.3.0-RC1 transitives are not all published at RC1; pin to latest stable + if (requested.group == "biz.aQute.bnd" && requested.name != "biz.aQute.bnd.gradle") { + useVersion("7.2.3") + } + } +} + dependencies { - implementation("biz.aQute.bnd:biz.aQute.bnd.gradle:7.2.0") + implementation("biz.aQute.bnd:biz.aQute.bnd.gradle:7.3.0-RC1") implementation(enforcedPlatform("com.squareup.wire:wire-bom:6.2.0")) implementation("com.google.auto.value:auto-value-annotations:1.11.1") // When updating, update above in plugins too diff --git a/integration-tests/osgi/build.gradle.kts b/integration-tests/osgi/build.gradle.kts index 187383a9332..6f3646f2377 100644 --- a/integration-tests/osgi/build.gradle.kts +++ b/integration-tests/osgi/build.gradle.kts @@ -1,6 +1,7 @@ import aQute.bnd.gradle.Bundle import aQute.bnd.gradle.Resolve import aQute.bnd.gradle.TestOSGi +import java.time.Duration plugins { id("otel.java-conventions") @@ -13,19 +14,6 @@ otelJava.moduleName.set("io.opentelemetry.integration.tests.osgi") // https://github.com/micrometer-metrics/micrometer/tree/main/micrometer-osgi-test // https://github.com/eclipse-osgi-technology/osgi-test/tree/main/examples/osgi-test-example-gradle -configurations.all { - resolutionStrategy { - // BND not compatible with JUnit 5.13+; see https://github.com/bndtools/bnd/issues/6651 - val junitVersion = "5.12.2" - val junitLauncherVersion = "1.12.1" - force("org.junit.jupiter:junit-jupiter:$junitVersion") - force("org.junit.jupiter:junit-jupiter-api:$junitVersion") - force("org.junit.jupiter:junit-jupiter-params:$junitVersion") - force("org.junit.jupiter:junit-jupiter-engine:$junitVersion") - force("org.junit.platform:junit-platform-launcher:$junitLauncherVersion") - } -} - dependencies { // Testing the "kitchen sink" hides OSGi configuration issues. For example, opentelemetry-api has // optional dependencies on :sdk-extensions:autoconfigure and :api:incubator. If we only test a @@ -80,6 +68,7 @@ val testOSGiTask = tasks.register("testOSGi") { group = JavaBasePlugin.VERIFICATION_GROUP bndrun = resolveTask.flatMap { it.outputBndrun } bundles = files(sourceSets.test.get().runtimeClasspath, testingBundleTask.get().archiveFile) + timeout.set(Duration.ofMinutes(2)) // BND reports success when zero tests ran (e.g. if bundles failed to start). Fail explicitly. val testResultsDir = layout.buildDirectory.dir("test-results/testOSGi") doLast {