build.gradle.kts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. plugins {
  2. id("otel.javaagent-instrumentation")
  3. }
  4. muzzle {
  5. pass {
  6. group.set("com.google.gwt")
  7. module.set("gwt-servlet")
  8. versions.set("[2.0.0,)")
  9. assertInverse.set(true)
  10. }
  11. }
  12. sourceSets {
  13. create("testapp") {
  14. java {
  15. destinationDirectory.set(file("$buildDir/testapp/classes"))
  16. }
  17. resources {
  18. srcDirs("src/webapp")
  19. }
  20. compileClasspath = compileClasspath.plus(sourceSets.main.get().compileClasspath)
  21. }
  22. }
  23. val versions: Map<String, String> by project
  24. dependencies {
  25. // these are needed for compileGwt task
  26. if (findProperty("testLatestDeps") as Boolean) {
  27. compileOnly("com.google.gwt:gwt-user:+")
  28. compileOnly("com.google.gwt:gwt-dev:+")
  29. } else {
  30. compileOnly("com.google.gwt:gwt-user:2.0.0")
  31. compileOnly("com.google.gwt:gwt-dev:2.0.0")
  32. }
  33. library("com.google.gwt:gwt-servlet:2.0.0")
  34. testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
  35. testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
  36. testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent"))
  37. testImplementation("org.testcontainers:selenium:${versions["org.testcontainers"]}")
  38. testImplementation("org.seleniumhq.selenium:selenium-java:3.141.59")
  39. testImplementation("org.eclipse.jetty:jetty-webapp:9.4.35.v20201120")
  40. }
  41. val warDir = "$buildDir/testapp/war"
  42. val launcher = javaToolchains.launcherFor {
  43. languageVersion.set(JavaLanguageVersion.of(8))
  44. }
  45. tasks {
  46. val compileGwt by registering(JavaExec::class) {
  47. dependsOn(classes)
  48. // versions before 2.9 require java8
  49. javaLauncher.set(launcher)
  50. val extraDir = "$buildDir/testapp/extra"
  51. outputs.cacheIf { true }
  52. outputs.dir(extraDir)
  53. outputs.dir(warDir)
  54. mainClass.set("com.google.gwt.dev.Compiler")
  55. classpath(sourceSets["testapp"].java.srcDirs, sourceSets["testapp"].compileClasspath)
  56. args(
  57. "test.gwt.Greeting", // gwt module
  58. "-war", warDir,
  59. "-logLevel", "INFO",
  60. "-localWorkers", "2",
  61. "-compileReport",
  62. "-extra", extraDir,
  63. "-draftCompile" // makes compile a bit faster
  64. )
  65. }
  66. val copyTestWebapp by registering(Copy::class) {
  67. dependsOn(compileGwt)
  68. from(file("src/testapp/webapp"))
  69. from(warDir)
  70. into(file("$buildDir/testapp/web"))
  71. }
  72. named<Test>("test") {
  73. dependsOn(sourceSets["testapp"].output)
  74. dependsOn(copyTestWebapp)
  75. // add test app classes to classpath
  76. classpath = sourceSets.test.get().runtimeClasspath.plus(files("$buildDir/testapp/classes"))
  77. usesService(gradle.sharedServices.registrations["testcontainersBuildService"].getService())
  78. }
  79. }