Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
3ec789b
Add new modules for Spring 7 and Spring Boot 4
adinauer Aug 4, 2025
ddeada2
Fix Spring 7 and Spring Boot 4 modules (#4602)
adinauer Aug 8, 2025
1b6c6e0
Merge branch 'main' into 08-04-add_new_modules_for_spring_7_and_sprin…
adinauer Aug 8, 2025
59cb440
Attempt to fix kotlin 2.2 issue (#4603)
adinauer Aug 11, 2025
a18e719
Merge branch 'main' into 08-04-add_new_modules_for_spring_7_and_sprin…
adinauer Aug 11, 2025
975f6c7
changelog
adinauer Aug 11, 2025
47b3629
Merge branch 'main' into 08-04-add_new_modules_for_spring_7_and_sprin…
adinauer Aug 12, 2025
36e68d4
Merge branch 'main' into 08-04-add_new_modules_for_spring_7_and_sprin…
adinauer Aug 13, 2025
1ae3d92
fix ci
adinauer Aug 13, 2025
fe36a4e
add ignored span origins for Spring 7 and Spring Boot 4
adinauer Aug 14, 2025
d3164a3
move changelog
adinauer Aug 14, 2025
8662adb
Speed up tests
adinauer Aug 14, 2025
9f086cd
Merge branch 'main' into feat/speed-up-tests
adinauer Aug 26, 2025
618dfa2
Merge branch 'main' into feat/speed-up-tests
adinauer Aug 27, 2025
3b965a8
Merge branch 'main' into feat/speed-up-tests
adinauer Aug 27, 2025
ec23239
Merge branch 'main' into feat/speed-up-tests
markushi Oct 15, 2025
86e19e6
docs(changelog): Add entry for external shutdown/session-flush timeou…
adinauer Mar 4, 2026
eddda96
ref: Use tracingEnabledRunner in boot4 and jakarta test classes
adinauer Mar 4, 2026
5a9dbd4
ref: Add Millis suffix to ExternalOptions timeout fields
adinauer Mar 4, 2026
72c2c53
ref: Add Millis suffix to ExternalOptions timeout fields
adinauer Mar 4, 2026
294b1ed
docs(changelog): Restructure timeout options changelog entry
adinauer Mar 4, 2026
723becd
fix(test): Use baseContextRunner for transport factory tests
adinauer Mar 4, 2026
b5881fb
Merge branch 'main' into feat/speed-up-tests
adinauer Mar 4, 2026
bbc7378
Format code
getsentry-bot Mar 4, 2026
fe57531
ci: retrigger CI
adinauer Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .craft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,13 @@ targets:
maven:io.sentry:sentry:
maven:io.sentry:sentry-spring:
maven:io.sentry:sentry-spring-jakarta:
# maven:io.sentry:sentry-spring-7:
maven:io.sentry:sentry-spring-boot:
maven:io.sentry:sentry-spring-boot-jakarta:
maven:io.sentry:sentry-spring-boot-starter:
maven:io.sentry:sentry-spring-boot-starter-jakarta:
# maven:io.sentry:sentry-spring-boot-4:
# maven:io.sentry:sentry-spring-boot-4-starter:
maven:io.sentry:sentry-servlet:
maven:io.sentry:sentry-servlet-jakarta:
maven:io.sentry:sentry-logback:
Expand Down
3 changes: 3 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report_java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,11 @@ body:
- sentry-spring-boot-jakarta
- sentry-spring-boot-starter
- sentry-spring-boot-starter-jakarta
- sentry-spring-boot-4
- sentry-spring-boot-4-starter
- sentry-spring
- sentry-spring-jakarta
- sentry-spring-7
- sentry-logback
- sentry-log4j2
- sentry-graphql
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/system-tests-backend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,21 @@ jobs:
- sample: "sentry-samples-jul"
agent: "false"
agent-auto-init: "true"
- sample: "sentry-samples-spring-boot-4"
agent: "false"
agent-auto-init: "true"
- sample: "sentry-samples-spring-boot-4-webflux"
agent: "false"
agent-auto-init: "true"
# - sample: "sentry-samples-spring-boot-4-opentelemetry-noagent"
# agent: "false"
# agent-auto-init: "true"
- sample: "sentry-samples-spring-boot-4-opentelemetry"
agent: "true"
agent-auto-init: "true"
- sample: "sentry-samples-spring-boot-4-opentelemetry"
agent: "true"
agent-auto-init: "false"
steps:
- uses: actions/checkout@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

### Features

- Add support for Spring Boot 4 and Spring 7 ([#4601](https://github.com/getsentry/sentry-java/pull/4601))
- NOTE: Our `sentry-opentelemetry-agentless-spring` is not working yet for Spring Boot 4. Please use `sentry-opentelemetry-agent` until OpenTelemetry has support for Spring Boot 4.
- Add onDiscard to enable users to track the type and amount of data discarded before reaching Sentry ([#4612](https://github.com/getsentry/sentry-java/pull/4612))
- Stub for setting the callback on `Sentry.init`:
```java
Expand Down
10 changes: 9 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,14 @@ plugins {
alias(libs.plugins.kover) apply false
alias(libs.plugins.vanniktech.maven.publish) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.spring) apply false
alias(libs.plugins.buildconfig) apply false
// dokka is required by gradle-maven-publish-plugin.
alias(libs.plugins.dokka) apply false
alias(libs.plugins.dokka.javadoc) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.kotlin.compose) apply false
alias(libs.plugins.errorprone) apply false
alias(libs.plugins.gradle.versions) apply false
alias(libs.plugins.spring.dependency.management) apply false
Expand Down Expand Up @@ -61,6 +64,7 @@ apiValidation {
"sentry-samples-servlet",
"sentry-samples-spring",
"sentry-samples-spring-jakarta",
"sentry-samples-spring-7",
"sentry-samples-spring-boot",
"sentry-samples-spring-boot-opentelemetry",
"sentry-samples-spring-boot-opentelemetry-noagent",
Expand All @@ -69,6 +73,10 @@ apiValidation {
"sentry-samples-spring-boot-jakarta-opentelemetry-noagent",
"sentry-samples-spring-boot-webflux",
"sentry-samples-spring-boot-webflux-jakarta",
"sentry-samples-spring-boot-4",
"sentry-samples-spring-boot-4-opentelemetry",
"sentry-samples-spring-boot-4-opentelemetry-noagent",
"sentry-samples-spring-boot-4-webflux",
"sentry-samples-ktor-client",
"sentry-uitest-android",
"sentry-uitest-android-benchmark",
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ repositories {
}

tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.jvmTarget = JavaVersion.VERSION_17.toString()
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
}
4 changes: 4 additions & 0 deletions buildSrc/src/main/java/Config.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import java.math.BigDecimal
object Config {
val AGP = System.getenv("VERSION_AGP") ?: "8.6.0"
val kotlinStdLib = "stdlib-jdk8"
val kotlinTestJunit = "test-junit"

object BuildPlugins {
val androidGradle = "com.android.tools.build:gradle:$AGP"
Expand Down Expand Up @@ -53,10 +54,13 @@ object Config {
val SENTRY_LOG4J2_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.log4j2"
val SENTRY_SPRING_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring"
val SENTRY_SPRING_JAKARTA_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring.jakarta"
val SENTRY_SPRING_7_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-7"
val SENTRY_SPRING_BOOT_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot"
val SENTRY_SPRING_BOOT_STARTER_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot-starter"
val SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot.jakarta"
val SENTRY_SPRING_BOOT_STARTER_JAKARTA_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot-starter.jakarta"
val SENTRY_SPRING_BOOT_4_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot-4"
val SENTRY_SPRING_BOOT_4_STARTER_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.spring-boot-4-starter"
val SENTRY_OPENTELEMETRY_BOOTSTRAP_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.opentelemetry.bootstrap"
val SENTRY_OPENTELEMETRY_CORE_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.opentelemetry.core"
val SENTRY_OPENTELEMETRY_AGENT_SDK_NAME = "$SENTRY_JAVA_SDK_NAME.opentelemetry.agent"
Expand Down
30 changes: 27 additions & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,9 @@ feign = "11.6"
jacoco = "0.8.7"
jackson = "2.18.3"
jetbrainsCompose = "1.6.11"
kotlin = "1.9.24"
kotlin-compatible-version = "1.6"
kotlin = "2.2.0"
kotlinSpring7 = "2.2.0"
kotlin-compatible-version = "1.9"
ktorClient = "3.0.0"
logback = "1.2.9"
log4j2 = "2.20.0"
Expand All @@ -30,6 +31,7 @@ retrofit = "2.9.0"
slf4j = "1.7.30"
springboot2 = "2.7.18"
springboot3 = "3.5.0"
springboot4 = "4.0.0-M1"
# Android
targetSdk = "34"
compileSdk = "34"
Expand All @@ -39,11 +41,15 @@ spotless = "7.0.4"
[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
kotlin-spring7 = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlinSpring7" }
kotlin-jvm-spring7 = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlinSpring7" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
buildconfig = { id = "com.github.gmazzo.buildconfig", version = "5.6.5" }
dokka = { id = "org.jetbrains.dokka", version = "2.0.0" }
dokka-javadoc = { id = "org.jetbrains.dokka-javadoc", version = "2.0.0" }
binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version = "0.13.0" }
compose-compiler = { id = "org.jetbrains.compose", version.ref = "jetbrainsCompose" }
errorprone = { id = "net.ltgt.errorprone", version = "3.0.1" }
gradle-versions = { id = "com.github.ben-manes.versions", version = "0.42.0" }
spotless = { id = "com.diffplug.spotless", version.ref = "spotless" }
Expand All @@ -53,6 +59,7 @@ 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.0.11.RELEASE" }
gretty = { id = "org.gretty", version = "4.0.0" }

Expand Down Expand Up @@ -94,6 +101,7 @@ jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", ver
jackson-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson" }
jetbrains-annotations = { module = "org.jetbrains:annotations", version = "23.0.0" }
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" }
kotlin-test-junit-spring7 = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlinSpring7" }
kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktorClient" }
Expand Down Expand Up @@ -150,6 +158,20 @@ springboot3-starter-aop = { module = "org.springframework.boot:spring-boot-start
springboot3-starter-security = { module = "org.springframework.boot:spring-boot-starter-security", version.ref = "springboot3" }
springboot3-starter-jdbc = { module = "org.springframework.boot:spring-boot-starter-jdbc", version.ref = "springboot3" }
springboot3-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "springboot3" }
springboot4-otel = { module = "io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter", version.ref = "otelInstrumentation" }
springboot4-starter = { module = "org.springframework.boot:spring-boot-starter", version.ref = "springboot4" }
springboot4-starter-graphql = { module = "org.springframework.boot:spring-boot-starter-graphql", version.ref = "springboot4" }
springboot4-starter-quartz = { module = "org.springframework.boot:spring-boot-starter-quartz", version.ref = "springboot4" }
springboot4-starter-test = { module = "org.springframework.boot:spring-boot-starter-test", version.ref = "springboot4" }
springboot4-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "springboot4" }
springboot4-starter-websocket = { module = "org.springframework.boot:spring-boot-starter-websocket", version.ref = "springboot4" }
springboot4-starter-webflux = { module = "org.springframework.boot:spring-boot-starter-webflux", version.ref = "springboot4" }
springboot4-starter-aop = { module = "org.springframework.boot:spring-boot-starter-aop", version.ref = "springboot4" }
springboot4-starter-security = { module = "org.springframework.boot:spring-boot-starter-security", version.ref = "springboot4" }
springboot4-starter-restclient = { module = "org.springframework.boot:spring-boot-starter-restclient", version.ref = "springboot4" }
springboot4-starter-webclient = { module = "org.springframework.boot:spring-boot-starter-webclient", version.ref = "springboot4" }
springboot4-starter-jdbc = { module = "org.springframework.boot:spring-boot-starter-jdbc", version.ref = "springboot4" }
springboot4-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "springboot4" }
timber = { module = "com.jakewharton.timber:timber", version = "4.7.1" }

# test libraries
Expand All @@ -163,12 +185,14 @@ androidx-test-orchestrator = { module = "androidx.test:orchestrator", version =
androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidxTestCore" }
androidx-test-runner = { module = "androidx.test:runner", version = "1.6.2" }
awaitility-kotlin = { module = "org.awaitility:awaitility-kotlin", version = "4.1.1" }
awaitility-kotlin-spring7 = { module = "org.awaitility:awaitility-kotlin", version = "4.3.0" }
awaitility3-kotlin = { module = "org.awaitility:awaitility-kotlin", version = "3.1.6" }
hsqldb = { module = "org.hsqldb:hsqldb", version = "2.6.1" }
javafaker = { module = "com.github.javafaker:javafaker", version = "1.0.2" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
leakcanary-instrumentation = { module = "com.squareup.leakcanary:leakcanary-android-instrumentation", version = "2.14" }
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version = "4.1.0" }
mockito-kotlin-spring7 = { module = "org.mockito.kotlin:mockito-kotlin", version = "6.0.0" }
mockito-inline = { module = "org.mockito:mockito-inline", version = "4.8.0" }
msgpack = { module = "org.msgpack:msgpack-core", version = "0.9.8" }
okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
Expand Down
4 changes: 2 additions & 2 deletions sentry-android-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion

plugins {
id("com.android.library")
kotlin("android")
alias(libs.plugins.kotlin.android)
jacoco
alias(libs.plugins.jacoco.android)
alias(libs.plugins.errorprone)
Expand Down Expand Up @@ -34,7 +34,7 @@ android {
getByName("release") { consumerProguardFiles("proguard-rules.pro") }
}

kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin { compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 }

testOptions {
animationsDisabled = true
Expand Down
8 changes: 6 additions & 2 deletions sentry-android-fragment/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import io.gitlab.arturbosch.detekt.Detekt

plugins {
id("com.android.library")
kotlin("android")
alias(libs.plugins.kotlin.android)
jacoco
alias(libs.plugins.jacoco.android)
alias(libs.plugins.gradle.versions)
Expand All @@ -25,7 +25,11 @@ android {
getByName("release") { consumerProguardFiles("proguard-rules.pro") }
}

kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8
compilerOptions.languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
compilerOptions.apiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
}

testOptions {
animationsDisabled = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import net.ltgt.gradle.errorprone.errorprone

plugins {
id("com.android.application")
kotlin("android")
alias(libs.plugins.kotlin.android)
alias(libs.plugins.errorprone)
alias(libs.plugins.gradle.versions)
alias(libs.plugins.detekt)
Expand Down Expand Up @@ -76,7 +76,7 @@ android {
}
}

kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin { compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 }

lint {
warningsAsErrors = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import io.gitlab.arturbosch.detekt.Detekt

plugins {
id("com.android.application")
kotlin("android")
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}

android {
Expand Down Expand Up @@ -30,7 +31,7 @@ android {
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin { compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 }
buildFeatures { compose = true }
composeOptions { kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get() }
androidComponents.beforeVariants {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ import net.ltgt.gradle.errorprone.errorprone

plugins {
id("com.android.application")
kotlin("android")
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
alias(libs.plugins.errorprone)
alias(libs.plugins.gradle.versions)
alias(libs.plugins.detekt)
Expand Down Expand Up @@ -68,7 +69,7 @@ android {
}
}

kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin { compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 }

lint {
warningsAsErrors = true
Expand Down
9 changes: 5 additions & 4 deletions sentry-android-navigation/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import io.gitlab.arturbosch.detekt.Detekt

plugins {
id("com.android.library")
kotlin("android")
alias(libs.plugins.kotlin.android)
jacoco
alias(libs.plugins.jacoco.android)
alias(libs.plugins.gradle.versions)
Expand All @@ -25,9 +25,10 @@ android {
getByName("release") { consumerProguardFiles("proguard-rules.pro") }
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
kotlinOptions.languageVersion = libs.versions.kotlin.compatible.version.get()
kotlin {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8
compilerOptions.languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
compilerOptions.apiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
}

testOptions {
Expand Down
4 changes: 2 additions & 2 deletions sentry-android-ndk/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.config.KotlinCompilerVersion

plugins {
id("com.android.library")
kotlin("android")
alias(libs.plugins.kotlin.android)
jacoco
alias(libs.plugins.jacoco.android)
alias(libs.plugins.gradle.versions)
Expand All @@ -28,7 +28,7 @@ android {
getByName("release") { consumerProguardFiles("proguard-rules.pro") }
}

kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() }
kotlin { compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8 }

testOptions {
animationsDisabled = true
Expand Down
10 changes: 6 additions & 4 deletions sentry-android-replay/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask

plugins {
id("com.android.library")
kotlin("android")
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
jacoco
alias(libs.plugins.jacoco.android)
alias(libs.plugins.gradle.versions)
Expand Down Expand Up @@ -37,9 +38,10 @@ android {
getByName("release") { consumerProguardFiles("proguard-rules.pro") }
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
kotlinOptions.languageVersion = libs.versions.kotlin.compatible.version.get()
kotlin {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8
compilerOptions.languageVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
compilerOptions.apiVersion = org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_9
}

testOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,18 +124,21 @@ internal class RootViewsSpy private constructor() : Closeable {

private val delegatingViewList: ArrayList<View> =
object : ArrayList<View>() {
@Suppress("NewApi")
override fun addAll(elements: Collection<View>): Boolean {
listeners.forEach { listener ->
elements.forEach { element -> listener.onRootViewsChanged(element, true) }
}
return super.addAll(elements)
}

@Suppress("NewApi")
override fun add(element: View): Boolean {
listeners.forEach { it.onRootViewsChanged(element, true) }
return super.add(element)
}

@Suppress("NewApi")
override fun removeAt(index: Int): View {
val removedView = super.removeAt(index)
listeners.forEach { it.onRootViewsChanged(removedView, false) }
Expand Down
Loading