build.gradle.kts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. plugins {
  2. id("otel.javaagent-testing")
  3. }
  4. val testServer by configurations.creating
  5. dependencies {
  6. testImplementation("javax:javaee-api:7.0")
  7. testImplementation(project(":instrumentation:jaxws:jaxws-2.0-arquillian-testing"))
  8. testRuntimeOnly("org.wildfly.arquillian:wildfly-arquillian-container-embedded:2.2.0.Final")
  9. testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
  10. testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0:javaagent"))
  11. testInstrumentation(project(":instrumentation:jaxws:jaxws-2.0-cxf-3.0:javaagent"))
  12. testInstrumentation(project(":instrumentation:jaxws:jaxws-jws-api-1.1:javaagent"))
  13. // wildfly version used to run tests
  14. testServer("org.wildfly:wildfly-dist:18.0.0.Final@zip")
  15. }
  16. tasks {
  17. // extract wildfly dist, path is used from arquillian.xml
  18. val setupServer by registering(Copy::class) {
  19. inputs.files(testServer)
  20. from({
  21. zipTree(testServer.singleFile)
  22. })
  23. into(file("build/server/"))
  24. }
  25. // logback-classic contains /META-INF/services/javax.servlet.ServletContainerInitializer
  26. // that breaks deploy on embedded wildfly
  27. // create a copy of logback-classic jar that does not have this file
  28. val modifyLogbackJar by registering(Jar::class) {
  29. destinationDirectory.set(file("$buildDir/tmp"))
  30. archiveFileName.set("logback-classic-modified.jar")
  31. exclude("/META-INF/services/javax.servlet.ServletContainerInitializer")
  32. doFirst {
  33. configurations.configureEach {
  34. if (name.lowercase().endsWith("testruntimeclasspath")) {
  35. val logbackJar = find { it.name.contains("logback-classic") }
  36. from(zipTree(logbackJar))
  37. }
  38. }
  39. }
  40. }
  41. test {
  42. dependsOn(modifyLogbackJar)
  43. dependsOn(setupServer)
  44. doFirst {
  45. // --add-modules is unrecognized on jdk8, ignore it instead of failing
  46. jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
  47. // needed for java 11 to avoid org.jboss.modules.ModuleNotFoundException: java.se
  48. jvmArgs("--add-modules=java.se")
  49. // add offset to default port values
  50. jvmArgs("-Djboss.socket.binding.port-offset=200")
  51. // remove logback-classic from classpath
  52. classpath = classpath.filter {
  53. !it.absolutePath.contains("logback-classic")
  54. }
  55. // add modified copy of logback-classic to classpath
  56. classpath = classpath.plus(files("$buildDir/tmp/logback-classic-modified.jar"))
  57. }
  58. }
  59. }
  60. tasks.withType<Test>().configureEach {
  61. // required on jdk17
  62. jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED")
  63. jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
  64. }