apply from: "$rootDir/gradle/instrumentation.gradle" muzzle { pass { name = "webflux_5.0.0+_with_netty_0.8.0" group = "org.springframework" module = "spring-webflux" versions = "[5.0.0.RELEASE,)" assertInverse = true extraDependency "io.projectreactor.netty:reactor-netty:0.8.0.RELEASE" } pass { name = "webflux_5.0.0_with_ipc_0.7.0" group = "org.springframework" module = "spring-webflux" versions = "[5.0.0.RELEASE,)" assertInverse = true extraDependency "io.projectreactor.ipc:reactor-netty:0.7.0.RELEASE" } pass { name = "netty_0.8.0+_with_spring-webflux:5.1.0" group = "io.projectreactor.netty" module = "reactor-netty" versions = "[0.8.0.RELEASE,)" extraDependency "org.springframework:spring-webflux:5.1.0.RELEASE" } pass { name = "ipc_0.7.0+_with_spring-webflux:5.0.0" group = "io.projectreactor.ipc" module = "reactor-netty" versions = "[0.7.0.RELEASE,)" extraDependency "org.springframework:spring-webflux:5.0.0.RELEASE" } } dependencies { implementation project(':instrumentation:spring:spring-webflux-5.0:library') compileOnly "org.springframework:spring-webflux:5.0.0.RELEASE" compileOnly "io.projectreactor.ipc:reactor-netty:0.7.0.RELEASE" testInstrumentation project(':instrumentation:netty:netty-4.1:javaagent') testInstrumentation project(':instrumentation:reactor-3.1:javaagent') testInstrumentation project(':instrumentation:reactor-netty:reactor-netty-1.0:javaagent') // Compile with both old and new netty packages since our test references both for old and // latest dep tests. testCompileOnly "io.projectreactor.ipc:reactor-netty:0.7.0.RELEASE" testCompileOnly "io.projectreactor.netty:reactor-netty-http:1.0.7" 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" testImplementation "org.spockframework:spock-spring:1.1-groovy-2.4" } tasks.withType(Test).configureEach { // TODO run tests both with and without experimental span attributes jvmArgs '-Dotel.instrumentation.spring-webflux.experimental-span-attributes=true' // TODO(anuraaga): There is no actual context leak - it just seems that the server-side does not // fully complete processing before the test cases finish, which is when we check for context // leaks. Adding Thread.sleep(1000) just before checking for leaks allows it to pass but is not // a good approach. Come up with a better one and enable this. jvmArgs "-Dio.opentelemetry.javaagent.shaded.io.opentelemetry.context.enableStrictContext=false" systemProperty "testLatestDeps", testLatestDeps }