opentelemetry-java-instrume.../instrumentation/spring/spring-webflux/spring-webflux-5.0/javaagent/build.gradle.kts

91 lines
3.1 KiB
Plaintext

plugins {
id("otel.javaagent-instrumentation")
}
muzzle {
pass {
name.set("webflux_5.0.0+_with_netty_0.8.0")
group.set("org.springframework")
module.set("spring-webflux")
versions.set("[5.0.0.RELEASE,)")
assertInverse.set(true)
extraDependency("io.projectreactor.netty:reactor-netty:0.8.0.RELEASE")
}
pass {
name.set("webflux_5.0.0_with_ipc_0.7.0")
group.set("org.springframework")
module.set("spring-webflux")
versions.set("[5.0.0.RELEASE,)")
assertInverse.set(true)
extraDependency("io.projectreactor.ipc:reactor-netty:0.7.0.RELEASE")
}
pass {
name.set("netty_0.8.0+_with_spring-webflux:5.1.0")
group.set("io.projectreactor.netty")
module.set("reactor-netty")
versions.set("[0.8.0.RELEASE,)")
extraDependency("org.springframework:spring-webflux:5.1.0.RELEASE")
}
pass {
name.set("ipc_0.7.0+_with_spring-webflux:5.0.0")
group.set("io.projectreactor.ipc")
module.set("reactor-netty")
versions.set("[0.7.0.RELEASE,)")
extraDependency("org.springframework:spring-webflux:5.0.0.RELEASE")
}
}
dependencies {
implementation(project(":instrumentation:spring:spring-webflux:spring-webflux-5.3:library"))
implementation(project(":instrumentation:netty:netty-4.1:library"))
compileOnly("org.springframework:spring-webflux:5.0.0.RELEASE")
compileOnly("io.projectreactor.ipc:reactor-netty:0.7.0.RELEASE")
// this is needed to pick up SpringCoreIgnoredTypesConfigurer
testInstrumentation(project(":instrumentation:spring:spring-core-2.0:javaagent"))
testInstrumentation(project(":instrumentation:netty:netty-4.1:javaagent"))
testInstrumentation(project(":instrumentation:reactor:reactor-3.1:javaagent"))
testInstrumentation(project(":instrumentation:reactor:reactor-netty:reactor-netty-1.0:javaagent"))
testImplementation(project(":instrumentation:spring:spring-webflux:spring-webflux-5.0:testing"))
testImplementation(project(":instrumentation:spring:spring-webflux:spring-webflux-5.3:testing"))
testLibrary("org.springframework.boot:spring-boot-starter-webflux:2.0.0.RELEASE")
testLibrary("org.springframework.boot:spring-boot-starter-test:2.0.0.RELEASE")
testLibrary("org.springframework.boot:spring-boot-starter-reactor-netty:2.0.0.RELEASE")
}
tasks.withType<Test>().configureEach {
// TODO run tests both with and without experimental span attributes
jvmArgs("-Dotel.instrumentation.spring-webflux.experimental-span-attributes=true")
// required on jdk17
jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
jvmArgs("-Dotel.instrumentation.common.experimental.controller-telemetry.enabled=true")
systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
}
val latestDepTest = findProperty("testLatestDeps") as Boolean
if (latestDepTest) {
// spring 6 requires java 17
otelJava {
minJavaVersionSupported.set(JavaVersion.VERSION_17)
}
} else {
// spring 5 requires old logback (and therefore also old slf4j)
configurations.testRuntimeClasspath {
resolutionStrategy {
force("ch.qos.logback:logback-classic:1.2.11")
force("org.slf4j:slf4j-api:1.7.36")
}
}
}