diff --git a/build.gradle.kts b/build.gradle.kts index bfa4aef86f3..6656e00e49a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -87,7 +87,9 @@ apiValidation { "test-app-sentry", "test-app-size", "sentry-samples-netflix-dgs", - "sentry-samples-console-otlp" + "sentry-samples-console-otlp", + "sentry-test-support", + "sentry-system-test-support" ) ) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9eb39e5066e..6cc10910315 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -61,14 +61,13 @@ detekt = { id = "io.gitlab.arturbosch.detekt", version = "1.23.8" } jacoco-android = { id = "com.mxalbert.gradle.jacoco-android", version = "0.2.0" } kover = { id = "org.jetbrains.kotlinx.kover", version = "0.7.3" } vanniktech-maven-publish = { id = "com.vanniktech.maven.publish", version = "0.30.0" } -springboot2 = { id = "org.springframework.boot", version.ref = "springboot2" } springboot3 = { id = "org.springframework.boot", version.ref = "springboot3" } springboot4 = { id = "org.springframework.boot", version.ref = "springboot4" } spring-dependency-management = { id = "io.spring.dependency-management", version = "1.1.7" } gretty = { id = "org.gretty", version = "4.0.0" } animalsniffer = { id = "ru.vyarus.animalsniffer", version = "2.0.1" } sentry = { id = "io.sentry.android.gradle", version = "6.0.0-alpha.6"} -shadow = { id = "com.gradleup.shadow", version = "8.3.6" } +shadow = { id = "com.gradleup.shadow", version = "9.4.1" } [libraries] apache-httpclient = { module = "org.apache.httpcomponents.client5:httpclient5", version = "5.0.4" } @@ -159,6 +158,7 @@ slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } slf4j-jdk14 = { module = "org.slf4j:slf4j-jdk14", version.ref = "slf4j" } slf4j2-api = { module = "org.slf4j:slf4j-api", version = "2.0.5" } spotlessLib = { module = "com.diffplug.spotless:com.diffplug.spotless.gradle.plugin", version.ref = "spotless"} +springboot2-bom = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "springboot2" } springboot-starter = { module = "org.springframework.boot:spring-boot-starter", version.ref = "springboot2" } springboot-starter-graphql = { module = "org.springframework.boot:spring-boot-starter-graphql", version.ref = "springboot2" } springboot-starter-quartz = { module = "org.springframework.boot:spring-boot-starter-quartz", version.ref = "springboot2" } diff --git a/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts b/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts index 1a57766cc96..09649fbb4a5 100644 --- a/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts +++ b/sentry-opentelemetry/sentry-opentelemetry-agent/build.gradle.kts @@ -150,7 +150,11 @@ tasks { archiveClassifier.set("") - duplicatesStrategy = DuplicatesStrategy.FAIL + // INCLUDE is required so that mergeServiceFiles can see duplicates from both the + // upstream agent JAR and the isolated distro libs before they are deduplicated. + // Shadow 9.x enforces duplicatesStrategy before transformers run, so FAIL/EXCLUDE + // would prevent service file merging. + duplicatesStrategy = DuplicatesStrategy.INCLUDE mergeServiceFiles { include("inst/META-INF/services/*") } exclude("**/module-info.class") diff --git a/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts index dfab063591b..04ddecc4ec2 100644 --- a/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-console-opentelemetry-noagent/build.gradle.kts @@ -66,6 +66,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-console-otlp/build.gradle.kts b/sentry-samples/sentry-samples-console-otlp/build.gradle.kts index 08b9315f785..cbb3b7c7a64 100644 --- a/sentry-samples/sentry-samples-console-otlp/build.gradle.kts +++ b/sentry-samples/sentry-samples-console-otlp/build.gradle.kts @@ -69,6 +69,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-console/build.gradle.kts b/sentry-samples/sentry-samples-console/build.gradle.kts index 6d0a4fc736b..c27196e96b8 100644 --- a/sentry-samples/sentry-samples-console/build.gradle.kts +++ b/sentry-samples/sentry-samples-console/build.gradle.kts @@ -69,6 +69,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-jul/build.gradle.kts b/sentry-samples/sentry-samples-jul/build.gradle.kts index ac1afa03d37..01e6a95f13d 100644 --- a/sentry-samples/sentry-samples-jul/build.gradle.kts +++ b/sentry-samples/sentry-samples-jul/build.gradle.kts @@ -62,6 +62,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-log4j2/build.gradle.kts b/sentry-samples/sentry-samples-log4j2/build.gradle.kts index 84e6bb6a0ab..213f009376a 100644 --- a/sentry-samples/sentry-samples-log4j2/build.gradle.kts +++ b/sentry-samples/sentry-samples-log4j2/build.gradle.kts @@ -67,6 +67,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-logback/build.gradle.kts b/sentry-samples/sentry-samples-logback/build.gradle.kts index 5cd5a2eb85b..05f96c346a8 100644 --- a/sentry-samples/sentry-samples-logback/build.gradle.kts +++ b/sentry-samples/sentry-samples-logback/build.gradle.kts @@ -62,6 +62,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts b/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts index ade18a0cbc1..6386a5d1593 100644 --- a/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts +++ b/sentry-samples/sentry-samples-netflix-dgs/build.gradle.kts @@ -2,12 +2,15 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - alias(libs.plugins.springboot2) - alias(libs.plugins.spring.dependency.management) + java + application + alias(libs.plugins.shadow) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) } +application { mainClass.set("io.sentry.samples.netflix.dgs.NetlixDgsApplication") } + group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" @@ -19,6 +22,7 @@ java.targetCompatibility = JavaVersion.VERSION_1_8 repositories { mavenCentral() } dependencies { + implementation(platform(libs.springboot2.bom)) implementation(libs.springboot.starter.web) implementation(Config.Libs.kotlinReflect) implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) @@ -32,6 +36,25 @@ dependencies { } } +// Configure the Shadow JAR (executable JAR with all dependencies) +tasks.shadowJar { + manifest { attributes["Main-Class"] = "io.sentry.samples.netflix.dgs.NetlixDgsApplication" } + archiveClassifier.set("") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + mergeServiceFiles() + append("META-INF/spring.handlers") + append("META-INF/spring.schemas") + append("META-INF/spring.factories") + append("META-INF/spring-autoconfigure-metadata.properties") +} + +tasks.jar { + enabled = false + dependsOn(tasks.shadowJar) +} + +tasks.startScripts { dependsOn(tasks.shadowJar) } + tasks.withType().configureEach { useJUnitPlatform() } tasks.withType().configureEach { diff --git a/sentry-samples/sentry-samples-spring-7/build.gradle.kts b/sentry-samples/sentry-samples-spring-7/build.gradle.kts index a8f2dc4da7c..e3300cd2841 100644 --- a/sentry-samples/sentry-samples-spring-7/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-7/build.gradle.kts @@ -73,6 +73,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts index 71ff985d67c..a7b2d939cdc 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry-noagent/build.gradle.kts @@ -82,6 +82,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts index c3e8ba06fae..d43a628eb9a 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-opentelemetry/build.gradle.kts @@ -110,6 +110,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts index 01e07fc2526..7329d5cc0ea 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-otlp/build.gradle.kts @@ -87,6 +87,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts index cdcf65711a8..a311b8a972e 100644 --- a/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4-webflux/build.gradle.kts @@ -66,6 +66,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts index f43cc47cc6d..d96e5602483 100644 --- a/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-4/build.gradle.kts @@ -84,6 +84,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts index 86914467a6d..c7fc0106131 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry-noagent/build.gradle.kts @@ -18,6 +18,9 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + configure { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -80,6 +83,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts index 37d7a94eec0..767208a6082 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta-opentelemetry/build.gradle.kts @@ -19,6 +19,9 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + configure { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -114,6 +117,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts index a945b87109a..98f7ba434ff 100644 --- a/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-jakarta/build.gradle.kts @@ -18,6 +18,9 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + configure { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 @@ -69,7 +72,6 @@ dependencies { testImplementation(kotlin(Config.kotlinStdLib)) testImplementation(projects.sentry) testImplementation(projects.sentrySystemTestSupport) - testImplementation(libs.apollo3.kotlin) testImplementation(libs.kotlin.test.junit) testImplementation(libs.slf4j2.api) testImplementation(libs.springboot3.starter.test) { @@ -85,6 +87,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts index 07e61c75af8..f5791ee5ed1 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry-noagent/build.gradle.kts @@ -2,12 +2,15 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - alias(libs.plugins.springboot2) - alias(libs.plugins.spring.dependency.management) + java + application + alias(libs.plugins.shadow) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) } +application { mainClass.set("io.sentry.samples.spring.boot.SentryDemoApplication") } + group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" @@ -35,6 +38,8 @@ tasks.withType().configureEach { } dependencies { + implementation(platform(libs.springboot2.bom)) + implementation(platform(libs.otel.instrumentation.bom)) implementation(libs.springboot.starter) implementation(libs.springboot.starter.actuator) implementation(libs.springboot.starter.aop) @@ -72,7 +77,24 @@ dependencies { testImplementation("org.apache.httpcomponents:httpclient") } -dependencyManagement { imports { mavenBom(libs.otel.instrumentation.bom.get().toString()) } } +// Configure the Shadow JAR (executable JAR with all dependencies) +tasks.shadowJar { + manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" } + archiveClassifier.set("") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + mergeServiceFiles() + append("META-INF/spring.handlers") + append("META-INF/spring.schemas") + append("META-INF/spring.factories") + append("META-INF/spring-autoconfigure-metadata.properties") +} + +tasks.jar { + enabled = false + dependsOn(tasks.shadowJar) +} + +tasks.startScripts { dependsOn(tasks.shadowJar) } configure { test { java.srcDir("src/test/java") } } @@ -80,6 +102,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts index 21a3cf3f7d5..4542215792b 100644 --- a/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-opentelemetry/build.gradle.kts @@ -1,14 +1,16 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.springframework.boot.gradle.tasks.run.BootRun plugins { - alias(libs.plugins.springboot2) - alias(libs.plugins.spring.dependency.management) + java + application + alias(libs.plugins.shadow) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) } +application { mainClass.set("io.sentry.samples.spring.boot.SentryDemoApplication") } + group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" @@ -33,6 +35,7 @@ tasks.withType().configureEach { } dependencies { + implementation(platform(libs.springboot2.bom)) implementation(libs.springboot.starter) implementation(libs.springboot.starter.actuator) implementation(libs.springboot.starter.aop) @@ -70,14 +73,32 @@ dependencies { testImplementation("org.apache.httpcomponents:httpclient") } +// Configure the Shadow JAR (executable JAR with all dependencies) +tasks.shadowJar { + manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" } + archiveClassifier.set("") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + mergeServiceFiles() + append("META-INF/spring.handlers") + append("META-INF/spring.schemas") + append("META-INF/spring.factories") + append("META-INF/spring-autoconfigure-metadata.properties") +} + +tasks.jar { + enabled = false + dependsOn(tasks.shadowJar) +} + +tasks.startScripts { dependsOn(tasks.shadowJar) } + configure { test { java.srcDir("src/test/java") } } -tasks.register("bootRunWithAgent").configure { +tasks.register("bootRunWithAgent").configure { group = "application" - val mainBootRunTask = tasks.getByName("bootRun") - mainClass = mainBootRunTask.mainClass - classpath = mainBootRunTask.classpath + mainClass.set("io.sentry.samples.spring.boot.SentryDemoApplication") + classpath = sourceSets["main"].runtimeClasspath val versionName = project.properties["versionName"] as String val agentJarPath = @@ -101,6 +122,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts index a45249830f4..d5b04543576 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux-jakarta/build.gradle.kts @@ -18,6 +18,9 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + dependencies { implementation(Config.Libs.kotlinReflect) implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION)) @@ -60,6 +63,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts index 3c0a5f8c83e..c4ff81afb8b 100644 --- a/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot-webflux/build.gradle.kts @@ -2,12 +2,15 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - alias(libs.plugins.springboot2) - alias(libs.plugins.spring.dependency.management) + java + application + alias(libs.plugins.shadow) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) } +application { mainClass.set("io.sentry.samples.spring.boot.SentryDemoApplication") } + group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" @@ -19,6 +22,7 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } dependencies { + implementation(platform(libs.springboot2.bom)) implementation(libs.springboot.starter.actuator) implementation(libs.springboot.starter.graphql) implementation(libs.springboot.starter.webflux) @@ -42,6 +46,25 @@ dependencies { testImplementation("org.apache.httpcomponents:httpclient") } +// Configure the Shadow JAR (executable JAR with all dependencies) +tasks.shadowJar { + manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" } + archiveClassifier.set("") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + mergeServiceFiles() + append("META-INF/spring.handlers") + append("META-INF/spring.schemas") + append("META-INF/spring.factories") + append("META-INF/spring-autoconfigure-metadata.properties") +} + +tasks.jar { + enabled = false + dependsOn(tasks.shadowJar) +} + +tasks.startScripts { dependsOn(tasks.shadowJar) } + configure { test { java.srcDir("src/test/java") } } tasks.withType().configureEach { @@ -55,6 +78,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts index b6fcd675cf3..28baa6830cd 100644 --- a/sentry-samples/sentry-samples-spring-boot/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-boot/build.gradle.kts @@ -2,12 +2,15 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - alias(libs.plugins.springboot2) - alias(libs.plugins.spring.dependency.management) + java + application + alias(libs.plugins.shadow) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) } +application { mainClass.set("io.sentry.samples.spring.boot.SentryDemoApplication") } + group = "io.sentry.sample.spring-boot" version = "0.0.1-SNAPSHOT" @@ -31,6 +34,7 @@ tasks.withType().configureEach { } dependencies { + implementation(platform(libs.springboot2.bom)) implementation(libs.springboot.starter) implementation(libs.springboot.starter.actuator) implementation(libs.springboot.starter.aop) @@ -69,12 +73,35 @@ dependencies { testImplementation("org.apache.httpcomponents:httpclient") } +// Configure the Shadow JAR (executable JAR with all dependencies) +tasks.shadowJar { + manifest { attributes["Main-Class"] = "io.sentry.samples.spring.boot.SentryDemoApplication" } + archiveClassifier.set("") + duplicatesStrategy = DuplicatesStrategy.INCLUDE + mergeServiceFiles() + append("META-INF/spring.handlers") + append("META-INF/spring.schemas") + append("META-INF/spring.factories") + append("META-INF/spring-autoconfigure-metadata.properties") +} + +tasks.jar { + enabled = false + dependsOn(tasks.shadowJar) +} + +tasks.startScripts { dependsOn(tasks.shadowJar) } + configure { test { java.srcDir("src/test/java") } } tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts index 8e450865659..319431e71d2 100644 --- a/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring-jakarta/build.gradle.kts @@ -26,6 +26,9 @@ java.targetCompatibility = JavaVersion.VERSION_17 repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + dependencyManagement { imports { mavenBom(SpringBootPlugin.BOM_COORDINATES) @@ -72,6 +75,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-samples/sentry-samples-spring/build.gradle.kts b/sentry-samples/sentry-samples-spring/build.gradle.kts index f6aa0e925ee..446baf3a696 100644 --- a/sentry-samples/sentry-samples-spring/build.gradle.kts +++ b/sentry-samples/sentry-samples-spring/build.gradle.kts @@ -1,9 +1,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES plugins { application - alias(libs.plugins.springboot2) apply false alias(libs.plugins.spring.dependency.management) alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.spring) @@ -27,9 +25,12 @@ java { repositories { mavenCentral() } +// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version +extra["kotlin-coroutines.version"] = "1.9.0" + dependencyManagement { imports { - mavenBom(BOM_COORDINATES) + mavenBom(libs.springboot2.bom.get().toString()) mavenBom(libs.kotlin.bom.get().toString()) mavenBom(libs.jackson.bom.get().toString()) } @@ -73,6 +74,10 @@ tasks.register("systemTest").configure { group = "verification" description = "Runs the System tests" + val test = project.extensions.getByType()["test"] + testClassesDirs = test.output.classesDirs + classpath = test.runtimeClasspath + outputs.upToDateWhen { false } maxParallelForks = 1 diff --git a/sentry-spring-boot-starter/build.gradle.kts b/sentry-spring-boot-starter/build.gradle.kts index a8b22a50f09..6b5bcdf5752 100644 --- a/sentry-spring-boot-starter/build.gradle.kts +++ b/sentry-spring-boot-starter/build.gradle.kts @@ -1,6 +1,5 @@ import net.ltgt.gradle.errorprone.errorprone import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.springframework.boot.gradle.plugin.SpringBootPlugin plugins { `java-library` @@ -9,7 +8,6 @@ plugins { jacoco alias(libs.plugins.errorprone) alias(libs.plugins.gradle.versions) - alias(libs.plugins.springboot2) apply false } tasks.withType().configureEach { @@ -22,7 +20,7 @@ dependencies { api(projects.sentrySpringBoot) api(libs.springboot.starter) - annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) + annotationProcessor(platform(libs.springboot2.bom)) annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) annotationProcessor(Config.AnnotationProcessors.springBootConfiguration) diff --git a/sentry-spring-boot/build.gradle.kts b/sentry-spring-boot/build.gradle.kts index a81613e5e1e..43150869db5 100644 --- a/sentry-spring-boot/build.gradle.kts +++ b/sentry-spring-boot/build.gradle.kts @@ -1,6 +1,5 @@ import net.ltgt.gradle.errorprone.errorprone import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.springframework.boot.gradle.plugin.SpringBootPlugin plugins { `java-library` @@ -10,7 +9,6 @@ plugins { alias(libs.plugins.errorprone) alias(libs.plugins.gradle.versions) alias(libs.plugins.buildconfig) - alias(libs.plugins.springboot2) apply false } tasks.withType().configureEach { @@ -40,14 +38,14 @@ dependencies { compileOnly(libs.springboot.starter.graphql) compileOnly(libs.springboot.starter.quartz) compileOnly(libs.springboot.starter.security) - compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) + compileOnly(platform(libs.springboot2.bom)) compileOnly(Config.Libs.springWeb) compileOnly(Config.Libs.springWebflux) compileOnly(projects.sentryOpentelemetry.sentryOpentelemetryCore) compileOnly(projects.sentryGraphql) compileOnly(projects.sentryQuartz) - annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) + annotationProcessor(platform(libs.springboot2.bom)) annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) annotationProcessor(Config.AnnotationProcessors.springBootConfiguration) diff --git a/sentry-spring/build.gradle.kts b/sentry-spring/build.gradle.kts index 57c0b9d9f31..b651a9e62b2 100644 --- a/sentry-spring/build.gradle.kts +++ b/sentry-spring/build.gradle.kts @@ -1,6 +1,5 @@ import net.ltgt.gradle.errorprone.errorprone import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.springframework.boot.gradle.plugin.SpringBootPlugin plugins { `java-library` @@ -10,7 +9,6 @@ plugins { alias(libs.plugins.errorprone) alias(libs.plugins.gradle.versions) alias(libs.plugins.buildconfig) - alias(libs.plugins.springboot2) apply false } tasks.withType().configureEach { @@ -22,7 +20,7 @@ tasks.withType().configureEach { dependencies { api(projects.sentry) - compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) + compileOnly(platform(libs.springboot2.bom)) compileOnly(Config.Libs.springWeb) compileOnly(Config.Libs.springAop) compileOnly(Config.Libs.springSecurityWeb) diff --git a/sentry-system-test-support/api/sentry-system-test-support.api b/sentry-system-test-support/api/sentry-system-test-support.api deleted file mode 100644 index 83a9f288d0c..00000000000 --- a/sentry-system-test-support/api/sentry-system-test-support.api +++ /dev/null @@ -1,619 +0,0 @@ -public final class io/sentry/samples/graphql/AddProjectMutation : com/apollographql/apollo3/api/Mutation { - public static final field Companion Lio/sentry/samples/graphql/AddProjectMutation$Companion; - public static final field OPERATION_ID Ljava/lang/String; - public static final field OPERATION_NAME Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun adapter ()Lcom/apollographql/apollo3/api/Adapter; - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/AddProjectMutation; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/AddProjectMutation;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/AddProjectMutation; - public fun document ()Ljava/lang/String; - public fun equals (Ljava/lang/Object;)Z - public final fun getSlug ()Ljava/lang/String; - public fun hashCode ()I - public fun id ()Ljava/lang/String; - public fun name ()Ljava/lang/String; - public fun rootField ()Lcom/apollographql/apollo3/api/CompiledField; - public fun serializeVariables (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)V - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/AddProjectMutation$Companion { - public final fun getOPERATION_DOCUMENT ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/AddProjectMutation$Data : com/apollographql/apollo3/api/Mutation$Data { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/AddProjectMutation$Data; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/AddProjectMutation$Data;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/AddProjectMutation$Data; - public fun equals (Ljava/lang/Object;)Z - public final fun getAddProject ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/GreetingQuery : com/apollographql/apollo3/api/Query { - public static final field Companion Lio/sentry/samples/graphql/GreetingQuery$Companion; - public static final field OPERATION_ID Ljava/lang/String; - public static final field OPERATION_NAME Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun adapter ()Lcom/apollographql/apollo3/api/Adapter; - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/GreetingQuery; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/GreetingQuery;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/GreetingQuery; - public fun document ()Ljava/lang/String; - public fun equals (Ljava/lang/Object;)Z - public final fun getName ()Ljava/lang/String; - public fun hashCode ()I - public fun id ()Ljava/lang/String; - public fun name ()Ljava/lang/String; - public fun rootField ()Lcom/apollographql/apollo3/api/CompiledField; - public fun serializeVariables (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)V - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/GreetingQuery$Companion { - public final fun getOPERATION_DOCUMENT ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/GreetingQuery$Data : com/apollographql/apollo3/api/Query$Data { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/GreetingQuery$Data; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/GreetingQuery$Data;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/GreetingQuery$Data; - public fun equals (Ljava/lang/Object;)Z - public final fun getGreeting ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/ProjectQuery : com/apollographql/apollo3/api/Query { - public static final field Companion Lio/sentry/samples/graphql/ProjectQuery$Companion; - public static final field OPERATION_ID Ljava/lang/String; - public static final field OPERATION_NAME Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun adapter ()Lcom/apollographql/apollo3/api/Adapter; - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/ProjectQuery; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/ProjectQuery;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/ProjectQuery; - public fun document ()Ljava/lang/String; - public fun equals (Ljava/lang/Object;)Z - public final fun getSlug ()Ljava/lang/String; - public fun hashCode ()I - public fun id ()Ljava/lang/String; - public fun name ()Ljava/lang/String; - public fun rootField ()Lcom/apollographql/apollo3/api/CompiledField; - public fun serializeVariables (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)V - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/ProjectQuery$Companion { - public final fun getOPERATION_DOCUMENT ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/ProjectQuery$Data : com/apollographql/apollo3/api/Query$Data { - public fun (Lio/sentry/samples/graphql/ProjectQuery$Project;)V - public final fun component1 ()Lio/sentry/samples/graphql/ProjectQuery$Project; - public final fun copy (Lio/sentry/samples/graphql/ProjectQuery$Project;)Lio/sentry/samples/graphql/ProjectQuery$Data; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/ProjectQuery$Data;Lio/sentry/samples/graphql/ProjectQuery$Project;ILjava/lang/Object;)Lio/sentry/samples/graphql/ProjectQuery$Data; - public fun equals (Ljava/lang/Object;)Z - public final fun getProject ()Lio/sentry/samples/graphql/ProjectQuery$Project; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/ProjectQuery$Project { - public fun (Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/type/ProjectStatus;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lio/sentry/samples/graphql/type/ProjectStatus; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/type/ProjectStatus;)Lio/sentry/samples/graphql/ProjectQuery$Project; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/ProjectQuery$Project;Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/type/ProjectStatus;ILjava/lang/Object;)Lio/sentry/samples/graphql/ProjectQuery$Project; - public fun equals (Ljava/lang/Object;)Z - public final fun getName ()Ljava/lang/String; - public final fun getSlug ()Ljava/lang/String; - public final fun getStatus ()Lio/sentry/samples/graphql/type/ProjectStatus; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery : com/apollographql/apollo3/api/Query { - public static final field Companion Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Companion; - public static final field OPERATION_ID Ljava/lang/String; - public static final field OPERATION_NAME Ljava/lang/String; - public fun (Ljava/lang/String;)V - public fun adapter ()Lcom/apollographql/apollo3/api/Adapter; - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/TasksAndAssigneesQuery;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery; - public fun document ()Ljava/lang/String; - public fun equals (Ljava/lang/Object;)Z - public final fun getSlug ()Ljava/lang/String; - public fun hashCode ()I - public fun id ()Ljava/lang/String; - public fun name ()Ljava/lang/String; - public fun rootField ()Lcom/apollographql/apollo3/api/CompiledField; - public fun serializeVariables (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)V - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee { - public fun (Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery$Companion { - public final fun getOPERATION_DOCUMENT ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery$Creator { - public fun (Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator; - public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery$Data : com/apollographql/apollo3/api/Query$Data { - public fun (Ljava/util/List;)V - public final fun component1 ()Ljava/util/List; - public final fun copy (Ljava/util/List;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Data; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Data;Ljava/util/List;ILjava/lang/Object;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Data; - public fun equals (Ljava/lang/Object;)Z - public final fun getTasks ()Ljava/util/List; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/TasksAndAssigneesQuery$Task { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Task; - public static synthetic fun copy$default (Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Task;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee;Ljava/lang/String;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator;ILjava/lang/Object;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Task; - public fun equals (Ljava/lang/Object;)Z - public final fun getAssignee ()Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee; - public final fun getAssigneeId ()Ljava/lang/String; - public final fun getCreator ()Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator; - public final fun getCreatorId ()Ljava/lang/String; - public final fun getId ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/samples/graphql/adapter/AddProjectMutation_ResponseAdapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/AddProjectMutation_ResponseAdapter; -} - -public final class io/sentry/samples/graphql/adapter/AddProjectMutation_ResponseAdapter$Data : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/AddProjectMutation_ResponseAdapter$Data; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/AddProjectMutation$Data; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/AddProjectMutation$Data;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/AddProjectMutation_VariablesAdapter : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/AddProjectMutation_VariablesAdapter; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/AddProjectMutation; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/AddProjectMutation;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/GreetingQuery_ResponseAdapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/GreetingQuery_ResponseAdapter; -} - -public final class io/sentry/samples/graphql/adapter/GreetingQuery_ResponseAdapter$Data : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/GreetingQuery_ResponseAdapter$Data; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/GreetingQuery$Data; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/GreetingQuery$Data;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/GreetingQuery_VariablesAdapter : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/GreetingQuery_VariablesAdapter; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/GreetingQuery; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/GreetingQuery;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter; -} - -public final class io/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter$Data : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter$Data; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/ProjectQuery$Data; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/ProjectQuery$Data;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter$Project : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/ProjectQuery_ResponseAdapter$Project; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/ProjectQuery$Project; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/ProjectQuery$Project;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/ProjectQuery_VariablesAdapter : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/ProjectQuery_VariablesAdapter; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/ProjectQuery; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/ProjectQuery;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter; -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Assignee : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Assignee; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Assignee;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Creator : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Creator; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Creator;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Data : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Data; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Data; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Data;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Task : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_ResponseAdapter$Task; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Task; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public final fun getRESPONSE_NAMES ()Ljava/util/List; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/TasksAndAssigneesQuery$Task;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_VariablesAdapter : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/adapter/TasksAndAssigneesQuery_VariablesAdapter; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/TasksAndAssigneesQuery; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/TasksAndAssigneesQuery;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/samples/graphql/selections/AddProjectMutationSelections { - public static final field INSTANCE Lio/sentry/samples/graphql/selections/AddProjectMutationSelections; - public final fun get__root ()Ljava/util/List; -} - -public final class io/sentry/samples/graphql/selections/GreetingQuerySelections { - public static final field INSTANCE Lio/sentry/samples/graphql/selections/GreetingQuerySelections; - public final fun get__root ()Ljava/util/List; -} - -public final class io/sentry/samples/graphql/selections/ProjectQuerySelections { - public static final field INSTANCE Lio/sentry/samples/graphql/selections/ProjectQuerySelections; - public final fun get__root ()Ljava/util/List; -} - -public final class io/sentry/samples/graphql/selections/TasksAndAssigneesQuerySelections { - public static final field INSTANCE Lio/sentry/samples/graphql/selections/TasksAndAssigneesQuerySelections; - public final fun get__root ()Ljava/util/List; -} - -public final class io/sentry/samples/graphql/type/Assignee { - public static final field Companion Lio/sentry/samples/graphql/type/Assignee$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Assignee$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/Creator { - public static final field Companion Lio/sentry/samples/graphql/type/Creator$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Creator$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/GraphQLBoolean { - public static final field Companion Lio/sentry/samples/graphql/type/GraphQLBoolean$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/GraphQLBoolean$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/CustomScalarType; -} - -public final class io/sentry/samples/graphql/type/GraphQLFloat { - public static final field Companion Lio/sentry/samples/graphql/type/GraphQLFloat$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/GraphQLFloat$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/CustomScalarType; -} - -public final class io/sentry/samples/graphql/type/GraphQLID { - public static final field Companion Lio/sentry/samples/graphql/type/GraphQLID$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/GraphQLID$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/CustomScalarType; -} - -public final class io/sentry/samples/graphql/type/GraphQLInt { - public static final field Companion Lio/sentry/samples/graphql/type/GraphQLInt$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/GraphQLInt$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/CustomScalarType; -} - -public final class io/sentry/samples/graphql/type/GraphQLString { - public static final field Companion Lio/sentry/samples/graphql/type/GraphQLString$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/GraphQLString$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/CustomScalarType; -} - -public final class io/sentry/samples/graphql/type/Mutation { - public static final field Companion Lio/sentry/samples/graphql/type/Mutation$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Mutation$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/Project { - public static final field Companion Lio/sentry/samples/graphql/type/Project$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Project$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/ProjectStatus : java/lang/Enum { - public static final field ACTIVE Lio/sentry/samples/graphql/type/ProjectStatus; - public static final field ATTIC Lio/sentry/samples/graphql/type/ProjectStatus; - public static final field COMMUNITY Lio/sentry/samples/graphql/type/ProjectStatus; - public static final field Companion Lio/sentry/samples/graphql/type/ProjectStatus$Companion; - public static final field EOL Lio/sentry/samples/graphql/type/ProjectStatus; - public static final field INCUBATING Lio/sentry/samples/graphql/type/ProjectStatus; - public static final field UNKNOWN__ Lio/sentry/samples/graphql/type/ProjectStatus; - public static fun getEntries ()Lkotlin/enums/EnumEntries; - public final fun getRawValue ()Ljava/lang/String; - public static fun valueOf (Ljava/lang/String;)Lio/sentry/samples/graphql/type/ProjectStatus; - public static fun values ()[Lio/sentry/samples/graphql/type/ProjectStatus; -} - -public final class io/sentry/samples/graphql/type/ProjectStatus$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/EnumType; - public final fun knownValues ()[Lio/sentry/samples/graphql/type/ProjectStatus; - public final fun safeValueOf (Ljava/lang/String;)Lio/sentry/samples/graphql/type/ProjectStatus; -} - -public final class io/sentry/samples/graphql/type/Query { - public static final field Companion Lio/sentry/samples/graphql/type/Query$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Query$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/Task { - public static final field Companion Lio/sentry/samples/graphql/type/Task$Companion; - public fun ()V -} - -public final class io/sentry/samples/graphql/type/Task$Companion { - public final fun getType ()Lcom/apollographql/apollo3/api/ObjectType; -} - -public final class io/sentry/samples/graphql/type/adapter/ProjectStatus_ResponseAdapter : com/apollographql/apollo3/api/Adapter { - public static final field INSTANCE Lio/sentry/samples/graphql/type/adapter/ProjectStatus_ResponseAdapter; - public fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Lio/sentry/samples/graphql/type/ProjectStatus; - public synthetic fun fromJson (Lcom/apollographql/apollo3/api/json/JsonReader;Lcom/apollographql/apollo3/api/CustomScalarAdapters;)Ljava/lang/Object; - public fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Lio/sentry/samples/graphql/type/ProjectStatus;)V - public synthetic fun toJson (Lcom/apollographql/apollo3/api/json/JsonWriter;Lcom/apollographql/apollo3/api/CustomScalarAdapters;Ljava/lang/Object;)V -} - -public final class io/sentry/systemtest/Person { - public fun (Ljava/lang/String;Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lio/sentry/systemtest/Person; - public static synthetic fun copy$default (Lio/sentry/systemtest/Person;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lio/sentry/systemtest/Person; - public fun equals (Ljava/lang/Object;)Z - public final fun getFirstName ()Ljava/lang/String; - public final fun getLastName ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/systemtest/Todo { - public fun (JLjava/lang/String;Z)V - public final fun component1 ()J - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Z - public final fun copy (JLjava/lang/String;Z)Lio/sentry/systemtest/Todo; - public static synthetic fun copy$default (Lio/sentry/systemtest/Todo;JLjava/lang/String;ZILjava/lang/Object;)Lio/sentry/systemtest/Todo; - public fun equals (Ljava/lang/Object;)Z - public final fun getCompleted ()Z - public final fun getId ()J - public final fun getTitle ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/systemtest/graphql/GraphqlTestClient { - public fun (Ljava/lang/String;)V - public final fun addProject (Ljava/lang/String;)Lcom/apollographql/apollo3/api/ApolloResponse; - public final fun getApollo ()Lcom/apollographql/apollo3/ApolloClient; - public final fun greet (Ljava/lang/String;)Lcom/apollographql/apollo3/api/ApolloResponse; - public final fun project (Ljava/lang/String;)Lcom/apollographql/apollo3/api/ApolloResponse; - public final fun tasksAndAssignees (Ljava/lang/String;)Lcom/apollographql/apollo3/api/ApolloResponse; -} - -public final class io/sentry/systemtest/util/EnvelopeCounts { - public fun ()V - public final fun getEnvelopes ()Ljava/lang/Long; - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/systemtest/util/EnvelopesReceived { - public fun ()V - public final fun getEnvelopes ()Ljava/util/List; - public fun toString ()Ljava/lang/String; -} - -public final class io/sentry/systemtest/util/FeatureFlagResponse { - public fun (Ljava/lang/String;Z)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Z - public final fun copy (Ljava/lang/String;Z)Lio/sentry/systemtest/util/FeatureFlagResponse; - public static synthetic fun copy$default (Lio/sentry/systemtest/util/FeatureFlagResponse;Ljava/lang/String;ZILjava/lang/Object;)Lio/sentry/systemtest/util/FeatureFlagResponse; - public fun equals (Ljava/lang/Object;)Z - public final fun getFlagKey ()Ljava/lang/String; - public final fun getValue ()Z - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public class io/sentry/systemtest/util/LoggingInsecureRestClient { - public fun ()V - protected final fun call (Lokhttp3/Request$Builder;ZLjava/util/Map;)Lokhttp3/Response; - public static synthetic fun call$default (Lio/sentry/systemtest/util/LoggingInsecureRestClient;Lokhttp3/Request$Builder;ZLjava/util/Map;ILjava/lang/Object;)Lokhttp3/Response; - protected final fun client ()Lokhttp3/OkHttpClient; - public final fun getLastKnownStatusCode ()Ljava/lang/Integer; - public final fun getLogger ()Lorg/slf4j/Logger; - protected final fun objectMapper ()Lcom/fasterxml/jackson/databind/ObjectMapper; - public final fun setLastKnownStatusCode (Ljava/lang/Integer;)V - protected final fun toRequestBody (Ljava/lang/Object;)Lokhttp3/RequestBody; -} - -public final class io/sentry/systemtest/util/RestTestClient : io/sentry/systemtest/util/LoggingInsecureRestClient { - public fun (Ljava/lang/String;)V - public final fun checkFeatureFlag (Ljava/lang/String;)Lio/sentry/systemtest/util/FeatureFlagResponse; - public final fun createPerson (Lio/sentry/systemtest/Person;Ljava/util/Map;)Lio/sentry/systemtest/Person; - public static synthetic fun createPerson$default (Lio/sentry/systemtest/util/RestTestClient;Lio/sentry/systemtest/Person;Ljava/util/Map;ILjava/lang/Object;)Lio/sentry/systemtest/Person; - public final fun createPersonDistributedTracing (Lio/sentry/systemtest/Person;Ljava/util/Map;)Lio/sentry/systemtest/Person; - public static synthetic fun createPersonDistributedTracing$default (Lio/sentry/systemtest/util/RestTestClient;Lio/sentry/systemtest/Person;Ljava/util/Map;ILjava/lang/Object;)Lio/sentry/systemtest/Person; - public final fun deleteCachedTodo (J)V - public final fun errorWithFeatureFlag (Ljava/lang/String;)Ljava/lang/String; - public final fun getCachedTodo (J)Lio/sentry/systemtest/Todo; - public final fun getCountMetric ()Ljava/lang/String; - public final fun getDistributionMetric (J)Ljava/lang/String; - public final fun getGaugeMetric (J)Ljava/lang/String; - public final fun getPerson (J)Lio/sentry/systemtest/Person; - public final fun getPersonDistributedTracing (JLjava/util/Map;)Lio/sentry/systemtest/Person; - public static synthetic fun getPersonDistributedTracing$default (Lio/sentry/systemtest/util/RestTestClient;JLjava/util/Map;ILjava/lang/Object;)Lio/sentry/systemtest/Person; - public final fun getTodo (J)Lio/sentry/systemtest/Todo; - public final fun getTodoRestClient (J)Lio/sentry/systemtest/Todo; - public final fun getTodoWebclient (J)Lio/sentry/systemtest/Todo; - public final fun saveCachedTodo (Lio/sentry/systemtest/Todo;)Lio/sentry/systemtest/Todo; -} - -public final class io/sentry/systemtest/util/SentryMockServerClient : io/sentry/systemtest/util/LoggingInsecureRestClient { - public fun (Ljava/lang/String;)V - public final fun getEnvelopeCount ()Lio/sentry/systemtest/util/EnvelopeCounts; - public final fun getEnvelopes ()Lio/sentry/systemtest/util/EnvelopesReceived; - public final fun reset ()V -} - -public final class io/sentry/systemtest/util/TestHelper { - public fun (Ljava/lang/String;)V - public final fun doesContainLogWithBody (Lio/sentry/SentryLogEvents;Ljava/lang/String;)Z - public final fun doesContainMetric (Lio/sentry/SentryMetricsEvents;Ljava/lang/String;Ljava/lang/String;DLjava/lang/String;)Z - public static synthetic fun doesContainMetric$default (Lio/sentry/systemtest/util/TestHelper;Lio/sentry/SentryMetricsEvents;Ljava/lang/String;Ljava/lang/String;DLjava/lang/String;ILjava/lang/Object;)Z - public final fun doesEventHaveExceptionMessage (Lio/sentry/SentryEvent;Ljava/lang/String;)Z - public final fun doesEventHaveFlag (Lio/sentry/SentryEvent;Ljava/lang/String;Z)Z - public final fun doesLogWithBodyHaveAttribute (Lio/sentry/SentryLogEvents;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Z - public final fun doesMetricHaveAttribute (Lio/sentry/SentryMetricsEvents;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Z - public final fun doesTransactionContainSpanWithDescription (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;)Z - public final fun doesTransactionContainSpanWithOp (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;)Z - public final fun doesTransactionContainSpanWithOpAndDescription (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;Ljava/lang/String;)Z - public final fun doesTransactionHave (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;Lio/sentry/protocol/FeatureFlag;)Z - public static synthetic fun doesTransactionHave$default (Lio/sentry/systemtest/util/TestHelper;Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;Lio/sentry/protocol/FeatureFlag;ILjava/lang/Object;)Z - public final fun doesTransactionHaveOp (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;)Z - public final fun doesTransactionHaveSpanWith (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;Lio/sentry/protocol/FeatureFlag;Z)Z - public static synthetic fun doesTransactionHaveSpanWith$default (Lio/sentry/systemtest/util/TestHelper;Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;Lio/sentry/protocol/FeatureFlag;ZILjava/lang/Object;)Z - public final fun doesTransactionHaveTraceId (Lio/sentry/protocol/SentryTransaction;Ljava/lang/String;)Z - public final fun ensureEnvelopeCountIncreased ()V - public final fun ensureEnvelopeReceived (ILkotlin/jvm/functions/Function1;)V - public static synthetic fun ensureEnvelopeReceived$default (Lio/sentry/systemtest/util/TestHelper;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)V - public final fun ensureErrorCount (Lcom/apollographql/apollo3/api/ApolloResponse;I)V - public final fun ensureErrorReceived (Lkotlin/jvm/functions/Function1;)V - public final fun ensureLogsReceived (Lkotlin/jvm/functions/Function2;)V - public final fun ensureMetricsReceived (Lkotlin/jvm/functions/Function2;)V - public final fun ensureNoEnvelopeReceived (Lkotlin/jvm/functions/Function1;)V - public final fun ensureNoErrors (Lcom/apollographql/apollo3/api/ApolloResponse;)V - public final fun ensureNoTransactionReceived (Lkotlin/jvm/functions/Function2;)V - public final fun ensureProfileChunkReceived (Lkotlin/jvm/functions/Function2;)V - public final fun ensureTransactionReceived (Lkotlin/jvm/functions/Function2;)V - public final fun ensureTransactionWithSpanReceived (Lkotlin/jvm/functions/Function1;)V - public final fun findJar (Ljava/lang/String;Ljava/lang/String;)Ljava/io/File; - public static synthetic fun findJar$default (Lio/sentry/systemtest/util/TestHelper;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Ljava/io/File; - public final fun getDsn ()Ljava/lang/String; - public final fun getEnvelopeCounts ()Lio/sentry/systemtest/util/EnvelopeCounts; - public final fun getGraphqlClient ()Lio/sentry/systemtest/graphql/GraphqlTestClient; - public final fun getJsonSerializer ()Lio/sentry/JsonSerializer; - public final fun getRestClient ()Lio/sentry/systemtest/util/RestTestClient; - public final fun getSentryClient ()Lio/sentry/systemtest/util/SentryMockServerClient; - public final fun launch (Ljava/io/File;Ljava/util/Map;Z)Ljava/lang/Process; - public static synthetic fun launch$default (Lio/sentry/systemtest/util/TestHelper;Ljava/io/File;Ljava/util/Map;ZILjava/lang/Object;)Ljava/lang/Process; - public final fun logObject (Ljava/lang/Object;)V - public final fun reset ()V - public final fun setEnvelopeCounts (Lio/sentry/systemtest/util/EnvelopeCounts;)V - public final fun snapshotEnvelopeCount ()V -} - diff --git a/sentry-test-support/api/sentry-test-support.api b/sentry-test-support/api/sentry-test-support.api deleted file mode 100644 index 1d8ae671216..00000000000 --- a/sentry-test-support/api/sentry-test-support.api +++ /dev/null @@ -1,75 +0,0 @@ -public final class io/sentry/AssertionsKt { - public static final fun assertEnvelopeEvent (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;)Lio/sentry/SentryEvent; - public static synthetic fun assertEnvelopeEvent$default (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lio/sentry/SentryEvent; - public static final fun assertEnvelopeFeedback (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;)Lio/sentry/SentryEvent; - public static synthetic fun assertEnvelopeFeedback$default (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lio/sentry/SentryEvent; - public static final fun assertEnvelopeProfile (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;)Lio/sentry/ProfilingTraceData; - public static synthetic fun assertEnvelopeProfile$default (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lio/sentry/ProfilingTraceData; - public static final fun assertEnvelopeTransaction (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;)Lio/sentry/protocol/SentryTransaction; - public static synthetic fun assertEnvelopeTransaction$default (Ljava/util/List;Lio/sentry/ILogger;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lio/sentry/protocol/SentryTransaction; - public static final fun checkEvent (Lkotlin/jvm/functions/Function1;)Lio/sentry/SentryEnvelope; - public static final fun checkLogs (Lkotlin/jvm/functions/Function1;)Lio/sentry/SentryEnvelope; - public static final fun checkTransaction (Lkotlin/jvm/functions/Function1;)Lio/sentry/SentryEnvelope; - public static final fun getMockServerRequestTimeoutMillis ()J -} - -public final class io/sentry/SkipError : java/lang/Error { - public fun (Ljava/lang/String;)V -} - -public final class io/sentry/test/DeferredExecutorService : io/sentry/ISentryExecutorService { - public fun ()V - public fun close (J)V - public final fun hasScheduledRunnables ()Z - public fun isClosed ()Z - public fun prewarm ()V - public final fun runAll ()V - public fun schedule (Ljava/lang/Runnable;J)Ljava/util/concurrent/Future; - public fun submit (Ljava/lang/Runnable;)Ljava/util/concurrent/Future; - public fun submit (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -} - -public final class io/sentry/test/ImmediateExecutorService : io/sentry/ISentryExecutorService { - public fun ()V - public fun close (J)V - public fun isClosed ()Z - public fun prewarm ()V - public fun schedule (Ljava/lang/Runnable;J)Ljava/util/concurrent/Future; - public fun submit (Ljava/lang/Runnable;)Ljava/util/concurrent/Future; - public fun submit (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -} - -public final class io/sentry/test/InitKt { - public static final fun applyTestOptions (Lio/sentry/SentryOptions;)V - public static final fun initForTest ()V - public static final fun initForTest (Lio/sentry/Sentry$OptionsConfiguration;)V - public static final fun initForTest (Lio/sentry/Sentry$OptionsConfiguration;Z)V - public static final fun initForTest (Lio/sentry/SentryOptions;)V - public static final fun initForTest (Ljava/lang/String;)V -} - -public final class io/sentry/test/MocksKt { - public static final fun createSentryClientMock (Z)Lio/sentry/ISentryClient; - public static synthetic fun createSentryClientMock$default (ZILjava/lang/Object;)Lio/sentry/ISentryClient; - public static final fun createTestScopes (Lio/sentry/SentryOptions;ZLio/sentry/IScope;Lio/sentry/IScope;Lio/sentry/IScope;)Lio/sentry/Scopes; - public static synthetic fun createTestScopes$default (Lio/sentry/SentryOptions;ZLio/sentry/IScope;Lio/sentry/IScope;Lio/sentry/IScope;ILjava/lang/Object;)Lio/sentry/Scopes; -} - -public final class io/sentry/test/NonOverridableNoOpSentryExecutorService : io/sentry/ISentryExecutorService { - public fun ()V - public fun close (J)V - public fun isClosed ()Z - public fun prewarm ()V - public fun schedule (Ljava/lang/Runnable;J)Ljava/util/concurrent/Future; - public fun submit (Ljava/lang/Runnable;)Ljava/util/concurrent/Future; - public fun submit (Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; -} - -public final class io/sentry/test/ReflectionKt { - public static final fun collectInterfaceHierarchy (Ljava/lang/Class;)Ljava/util/List; - public static final fun containsMethod (Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Z - public static final fun containsMethod (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Z - public static final fun getCtor (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor; - public static final fun getDeclaredCtor (Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor; -} - diff --git a/test/system-test-runner.py b/test/system-test-runner.py index 70489c580a5..64670b06212 100644 --- a/test/system-test-runner.py +++ b/test/system-test-runner.py @@ -326,7 +326,7 @@ def start_tomcat_server(self, sample_module: str) -> None: # Start the Tomcat server with open("tomcat-server.txt", "w") as log_file: self.tomcat_server.process = subprocess.Popen( - ["./gradlew", f"sentry-samples:{sample_module}:run"], + ["./gradlew", f"sentry-samples:{sample_module}:run", "--console=plain"], env=env, stdout=log_file, stderr=subprocess.STDOUT @@ -418,6 +418,20 @@ def wait_for_spring(self, max_attempts: int = 20) -> bool: except: pass + # Fallback: shadow JAR apps may not have actuator endpoints, + # so also try any HTTP connection to confirm the server is up + try: + response = requests.head( + "http://localhost:8080/", + auth=("user", "password"), + timeout=5 + ) + if response.status_code is not None: + print("Spring application is ready! (actuator not available)") + return True + except: + pass + print(f"Waiting... (attempt {attempt}/{max_attempts})") time.sleep(1) @@ -447,6 +461,18 @@ def get_spring_status(self) -> dict: except: pass + if not status["http_ready"]: + try: + response = requests.head( + "http://localhost:8080/", + auth=("user", "password"), + timeout=2 + ) + if response.status_code is not None: + status["http_ready"] = True + except: + pass + return status def get_sentry_status(self) -> dict: @@ -528,18 +554,23 @@ def stop_spring_server(self) -> None: # Clean up PID file and instance variable cleanup_pid(self.spring_server) - def get_build_task(self, server_type: Optional[ServerType]) -> str: + def get_build_task(self, sample_module: str, server_type: Optional[ServerType]) -> str: """Get the appropriate build task for a module.""" if server_type == ServerType.TOMCAT: return "war" elif server_type == ServerType.SPRING: + # Modules using Shadow plugin (e.g. Spring Boot 2 samples) use shadowJar, + # modules using Spring Boot plugin (SB3/SB4 samples) use bootJar + build_file = Path(f"sentry-samples/{sample_module}/build.gradle.kts") + if build_file.exists() and "shadow" in build_file.read_text(): + return "shadowJar" return "bootJar" return "assemble" def build_module(self, sample_module: str, server_type: Optional[ServerType]) -> int: """Build a sample module using the appropriate task.""" - build_task = self.get_build_task(server_type) + build_task = self.get_build_task(sample_module, server_type) print(f"Building {sample_module} using {build_task} task") return self.run_gradle_task(f":sentry-samples:{sample_module}:{build_task}") @@ -547,7 +578,7 @@ def run_gradle_task(self, task: str) -> int: """Run a Gradle task and return the exit code.""" print(f"Running: ./gradlew {task}") try: - result = subprocess.run(["./gradlew", task], check=False) + result = subprocess.run(["./gradlew", task, "--console=plain"], check=False) return result.returncode except Exception as e: print(f"Failed to run Gradle task: {e}")