build.gradle.kts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. plugins {
  2. id("otel.javaagent-instrumentation")
  3. }
  4. muzzle {
  5. pass {
  6. group.set("io.netty")
  7. module.set("netty-codec-http")
  8. versions.set("[4.0.0.Final,4.1.0.Final)")
  9. assertInverse.set(true)
  10. }
  11. pass {
  12. group.set("io.netty")
  13. module.set("netty-all")
  14. versions.set("[4.0.0.Final,4.1.0.Final)")
  15. excludeDependency("io.netty:netty-tcnative")
  16. assertInverse.set(true)
  17. }
  18. fail {
  19. group.set("io.netty")
  20. module.set("netty")
  21. versions.set("[,]")
  22. }
  23. }
  24. dependencies {
  25. library("io.netty:netty-codec-http:4.0.0.Final")
  26. implementation(project(":instrumentation:netty:netty-4-common:javaagent"))
  27. implementation(project(":instrumentation:netty:netty-4-common:library"))
  28. implementation(project(":instrumentation:netty:netty-common:library"))
  29. testInstrumentation(project(":instrumentation:netty:netty-3.8:javaagent"))
  30. testInstrumentation(project(":instrumentation:netty:netty-4.1:javaagent"))
  31. latestDepTestLibrary("io.netty:netty-codec-http:4.0.+") // see netty-4.1 module
  32. }
  33. tasks {
  34. val testConnectionSpan by registering(Test::class) {
  35. filter {
  36. includeTestsMatching("Netty40ConnectionSpanTest")
  37. includeTestsMatching("Netty40ClientSslTest")
  38. }
  39. include("**/Netty40ConnectionSpanTest.*", "**/Netty40ClientSslTest.*")
  40. jvmArgs("-Dotel.instrumentation.netty.connection-telemetry.enabled=true")
  41. jvmArgs("-Dotel.instrumentation.netty.ssl-telemetry.enabled=true")
  42. }
  43. val testStableSemconv by registering(Test::class) {
  44. filter {
  45. excludeTestsMatching("Netty40ConnectionSpanTest")
  46. excludeTestsMatching("Netty40ClientSslTest")
  47. }
  48. jvmArgs("-Dotel.semconv-stability.opt-in=http")
  49. }
  50. val testStableSemconvConnectionSpan by registering(Test::class) {
  51. filter {
  52. includeTestsMatching("Netty40ConnectionSpanTest")
  53. includeTestsMatching("Netty40ClientSslTest")
  54. }
  55. include("**/Netty40ConnectionSpanTest.*", "**/Netty40ClientSslTest.*")
  56. jvmArgs("-Dotel.instrumentation.netty.connection-telemetry.enabled=true")
  57. jvmArgs("-Dotel.instrumentation.netty.ssl-telemetry.enabled=true")
  58. jvmArgs("-Dotel.semconv-stability.opt-in=http")
  59. }
  60. test {
  61. filter {
  62. excludeTestsMatching("Netty40ConnectionSpanTest")
  63. excludeTestsMatching("Netty40ClientSslTest")
  64. }
  65. }
  66. check {
  67. dependsOn(testConnectionSpan)
  68. dependsOn(testStableSemconv)
  69. dependsOn(testStableSemconvConnectionSpan)
  70. }
  71. }
  72. // We need to force the dependency to the earliest supported version because other libraries declare newer versions.
  73. if (!(findProperty("testLatestDeps") as Boolean)) {
  74. configurations.configureEach {
  75. if (!name.contains("muzzle")) {
  76. resolutionStrategy {
  77. eachDependency {
  78. // specifying a fixed version for all libraries with io.netty' group
  79. if (requested.group == "io.netty" && requested.name != "netty-bom") {
  80. useVersion("4.0.0.Final")
  81. }
  82. }
  83. }
  84. }
  85. }
  86. }