build.gradle.kts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. dependencies {
  24. // these are needed for compileGwt task
  25. if (findProperty("testLatestDeps") as Boolean) {
  26. compileOnly("com.google.gwt:gwt-user:+")
  27. compileOnly("com.google.gwt:gwt-dev:+")
  28. } else {
  29. compileOnly("com.google.gwt:gwt-user:2.0.0")
  30. compileOnly("com.google.gwt:gwt-dev:2.0.0")
  31. }
  32. library("com.google.gwt:gwt-servlet:2.0.0")
  33. testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
  34. testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
  35. testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent"))
  36. testImplementation("org.testcontainers:selenium")
  37. testImplementation("org.seleniumhq.selenium:selenium-java:3.141.59")
  38. testImplementation("org.eclipse.jetty:jetty-webapp:9.4.35.v20201120")
  39. }
  40. val warDir = file("$buildDir/testapp/war")
  41. val launcher = javaToolchains.launcherFor {
  42. languageVersion.set(JavaLanguageVersion.of(8))
  43. }
  44. class CompilerArgumentsProvider : CommandLineArgumentProvider {
  45. override fun asArguments(): Iterable<String> = listOf(
  46. "test.gwt.Greeting", // gwt module
  47. "-war", "$buildDir/testapp/war",
  48. "-logLevel", "INFO",
  49. "-localWorkers", "2",
  50. "-compileReport",
  51. "-extra", "$buildDir/testapp/extra",
  52. "-draftCompile" // makes compile a bit faster
  53. )
  54. }
  55. tasks {
  56. val compileGwt by registering(JavaExec::class) {
  57. dependsOn(classes)
  58. // versions before 2.9 require java8
  59. javaLauncher.set(launcher)
  60. outputs.cacheIf { true }
  61. outputs.dir(warDir)
  62. mainClass.set("com.google.gwt.dev.Compiler")
  63. classpath(sourceSets["testapp"].java.srcDirs, sourceSets["testapp"].compileClasspath)
  64. argumentProviders.add(CompilerArgumentsProvider())
  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. 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. }