Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/spring-boot-2-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,8 +62,15 @@ jobs:

- name: Update Spring Boot 2.x version
run: |
sed -i 's/^springboot2=.*/springboot2=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
echo "Updated Spring Boot 2.x version to ${{ matrix.springboot-version }}"
springboot_version="${{ matrix.springboot-version }}"
if [[ "$springboot_version" =~ ^2\.[0-3]\. ]]; then
springboot_version="${springboot_version}.RELEASE"
fi
if [[ ! "$springboot_version" =~ ^2\.7\. ]]; then
echo "ORG_GRADLE_PROJECT_excludeGraphql=true" >> "$GITHUB_ENV"
fi
sed -i 's/^\(springboot2[[:space:]]*=[[:space:]]*\)".*"/\1"'"$springboot_version"'"/' gradle/libs.versions.toml
echo "Updated Spring Boot 2.x version to $springboot_version"

- name: Exclude android modules from build
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/spring-boot-3-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
strategy:
fail-fast: false
matrix:
springboot-version: [ '3.0.0', '3.2.12', '3.3.13', '3.4.13', '3.5.13' ]
springboot-version: [ '3.2.12', '3.3.13', '3.4.13', '3.5.13' ]

name: Spring Boot ${{ matrix.springboot-version }}
env:
Expand Down Expand Up @@ -62,7 +62,7 @@ jobs:

- name: Update Spring Boot 3.x version
run: |
sed -i 's/^springboot3=.*/springboot3=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
sed -i 's/^\(springboot3[[:space:]]*=[[:space:]]*\)".*"/\1"${{ matrix.springboot-version }}"/' gradle/libs.versions.toml
echo "Updated Spring Boot 3.x version to ${{ matrix.springboot-version }}"

- name: Exclude android modules from build
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spring-boot-4-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:

- name: Update Spring Boot 4.x version
run: |
sed -i 's/^springboot4=.*/springboot4=${{ matrix.springboot-version }}/' gradle/libs.versions.toml
sed -i 's/^\(springboot4[[:space:]]*=[[:space:]]*\)".*"/\1"${{ matrix.springboot-version }}"/' gradle/libs.versions.toml
echo "Updated Spring Boot 4.x version to ${{ matrix.springboot-version }}"

- name: Exclude android modules from build
Expand Down
4 changes: 3 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ retrofit = "2.9.0"
slf4j = "1.7.30"
springboot2 = "2.7.18"
springboot3 = "3.5.0"
springboot3Plugin = "3.5.0"
springboot4 = "4.0.0"
# Android
targetSdk = "36"
Expand Down Expand Up @@ -61,7 +62,7 @@ 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" }
springboot3 = { id = "org.springframework.boot", version.ref = "springboot3" }
springboot3 = { id = "org.springframework.boot", version.ref = "springboot3Plugin" }
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" }
Expand Down Expand Up @@ -160,6 +161,7 @@ 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" }
spring-graphql = { module = "org.springframework.graphql:spring-graphql", version = "1.0.6" }
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" }
springboot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test", version.ref = "springboot2" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
mavenBom(libs.otel.instrumentation.bom.get().toString())
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand Down Expand Up @@ -75,8 +82,6 @@ dependencies {
testImplementation("ch.qos.logback:logback-core:1.5.16")
}

dependencyManagement { imports { mavenBom(libs.otel.instrumentation.bom.get().toString()) } }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }

tasks.register<Test>("systemTest").configure {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,35 @@ group = "io.sentry.sample.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_17
java.sourceCompatibility = JavaVersion.VERSION_11

java.targetCompatibility = JavaVersion.VERSION_17
java.targetCompatibility = JavaVersion.VERSION_11

repositories { mavenCentral() }

fun springBoot2SupportsGraphql(): Boolean {
val version = libs.versions.springboot2.get().removeSuffix(".RELEASE")
val parts = version.split(".").map { it.toIntOrNull() ?: 0 }
val major = parts.getOrElse(0) { 0 }
val minor = parts.getOrElse(1) { 0 }
return major > 2 || (major == 2 && minor >= 7)
}

val includeGraphql = !project.hasProperty("excludeGraphql") && springBoot2SupportsGraphql()

configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
}

tasks.withType<KotlinCompile>().configureEach {
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
}
}

Expand All @@ -43,7 +53,9 @@ dependencies {
implementation(libs.springboot.starter)
implementation(libs.springboot.starter.actuator)
implementation(libs.springboot.starter.aop)
implementation(libs.springboot.starter.graphql)
if (includeGraphql) {
implementation(libs.springboot.starter.graphql)
}
implementation(libs.springboot.starter.jdbc)
implementation(libs.springboot.starter.quartz)
implementation(libs.springboot.starter.security)
Expand All @@ -55,7 +67,9 @@ dependencies {
implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION))
implementation(projects.sentrySpringBootStarter)
implementation(projects.sentryLogback)
implementation(projects.sentryGraphql)
if (includeGraphql) {
implementation(projects.sentryGraphql)
}
implementation(projects.sentryQuartz)
implementation(projects.sentryOpentelemetry.sentryOpentelemetryAgentlessSpring)
implementation(projects.sentryAsyncProfiler)
Expand Down Expand Up @@ -99,7 +113,15 @@ tasks.jar {

tasks.startScripts { dependsOn(tasks.shadowJar) }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }
configure<SourceSetContainer> {
main {
if (!includeGraphql) {
java.exclude("**/graphql/**")
resources.exclude("graphql/**")
}
}
test { java.srcDir("src/test/java") }
}

tasks.register<Test>("systemTest").configure {
group = "verification"
Expand All @@ -117,7 +139,12 @@ tasks.register<Test>("systemTest").configure {
minHeapSize = "128m"
maxHeapSize = "1g"

filter { includeTestsMatching("io.sentry.systemtest*") }
filter {
includeTestsMatching("io.sentry.systemtest*")
if (!includeGraphql) {
excludeTestsMatching("io.sentry.systemtest.Graphql*")
}
}
}

tasks.named("test").configure {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,32 @@ group = "io.sentry.sample.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_17
java.sourceCompatibility = JavaVersion.VERSION_11

java.targetCompatibility = JavaVersion.VERSION_17
java.targetCompatibility = JavaVersion.VERSION_11

repositories { mavenCentral() }

fun springBoot2SupportsGraphql(): Boolean {
val version = libs.versions.springboot2.get().removeSuffix(".RELEASE")
val parts = version.split(".").map { it.toIntOrNull() ?: 0 }
val major = parts.getOrElse(0) { 0 }
val minor = parts.getOrElse(1) { 0 }
return major > 2 || (major == 2 && minor >= 7)
}

val includeGraphql = !project.hasProperty("excludeGraphql") && springBoot2SupportsGraphql()

configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}

tasks.withType<KotlinCompile>().configureEach {
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
}
}

Expand All @@ -39,7 +49,9 @@ dependencies {
implementation(libs.springboot.starter)
implementation(libs.springboot.starter.actuator)
implementation(libs.springboot.starter.aop)
implementation(libs.springboot.starter.graphql)
if (includeGraphql) {
implementation(libs.springboot.starter.graphql)
}
implementation(libs.springboot.starter.jdbc)
implementation(libs.springboot.starter.quartz)
implementation(libs.springboot.starter.security)
Expand All @@ -51,7 +63,9 @@ dependencies {
implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION))
implementation(projects.sentrySpringBootStarter)
implementation(projects.sentryLogback)
implementation(projects.sentryGraphql)
if (includeGraphql) {
implementation(projects.sentryGraphql)
}
implementation(projects.sentryQuartz)
implementation(projects.sentryAsyncProfiler)
implementation(libs.otel)
Expand Down Expand Up @@ -95,7 +109,15 @@ tasks.jar {

tasks.startScripts { dependsOn(tasks.shadowJar) }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }
configure<SourceSetContainer> {
main {
if (!includeGraphql) {
java.exclude("**/graphql/**")
resources.exclude("graphql/**")
}
}
test { java.srcDir("src/test/java") }
}

tasks.register<JavaExec>("bootRunWithAgent").configure {
group = "application"
Expand Down Expand Up @@ -137,7 +159,12 @@ tasks.register<Test>("systemTest").configure {
minHeapSize = "128m"
maxHeapSize = "1g"

filter { includeTestsMatching("io.sentry.systemtest*") }
filter {
includeTestsMatching("io.sentry.systemtest*")
if (!includeGraphql) {
excludeTestsMatching("io.sentry.systemtest.Graphql*")
}
}
}

tasks.named("test").configure {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ java.targetCompatibility = JavaVersion.VERSION_17

repositories { mavenCentral() }

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:${libs.versions.springboot3.get()}")
}
}

// Apollo 4.x requires coroutines 1.9.0+, override Spring Boot's managed version
extra["kotlin-coroutines.version"] = "1.9.0"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,36 @@ group = "io.sentry.sample.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_17
java.sourceCompatibility = JavaVersion.VERSION_11

java.targetCompatibility = JavaVersion.VERSION_17
java.targetCompatibility = JavaVersion.VERSION_11

repositories { mavenCentral() }

fun springBoot2SupportsGraphql(): Boolean {
val version = libs.versions.springboot2.get().removeSuffix(".RELEASE")
val parts = version.split(".").map { it.toIntOrNull() ?: 0 }
val major = parts.getOrElse(0) { 0 }
val minor = parts.getOrElse(1) { 0 }
return major > 2 || (major == 2 && minor >= 7)
}

val includeGraphql = !project.hasProperty("excludeGraphql") && springBoot2SupportsGraphql()

dependencies {
implementation(platform(libs.springboot2.bom))
implementation(libs.springboot.starter.actuator)
implementation(libs.springboot.starter.graphql)
if (includeGraphql) {
implementation(libs.springboot.starter.graphql)
}
implementation(libs.springboot.starter.webflux)
implementation(Config.Libs.kotlinReflect)
implementation(kotlin(Config.kotlinStdLib, KotlinCompilerVersion.VERSION))
implementation(projects.sentrySpringBootStarter)
implementation(projects.sentryLogback)
implementation(projects.sentryGraphql)
if (includeGraphql) {
implementation(projects.sentryGraphql)
}
implementation(projects.sentryAsyncProfiler)

testImplementation(kotlin(Config.kotlinStdLib))
Expand Down Expand Up @@ -68,12 +82,20 @@ tasks.jar {

tasks.startScripts { dependsOn(tasks.shadowJar) }

configure<SourceSetContainer> { test { java.srcDir("src/test/java") } }
configure<SourceSetContainer> {
main {
if (!includeGraphql) {
java.exclude("**/graphql/**")
resources.exclude("graphql/**")
}
}
test { java.srcDir("src/test/java") }
}

tasks.withType<KotlinCompile>().configureEach {
kotlin {
compilerOptions.freeCompilerArgs = listOf("-Xjsr305=strict")
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
compilerOptions.jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11
}
}

Expand All @@ -93,7 +115,12 @@ tasks.register<Test>("systemTest").configure {
minHeapSize = "128m"
maxHeapSize = "1g"

filter { includeTestsMatching("io.sentry.systemtest*") }
filter {
includeTestsMatching("io.sentry.systemtest*")
if (!includeGraphql) {
excludeTestsMatching("io.sentry.systemtest.Graphql*")
}
}
}

tasks.named("test").configure {
Expand Down
Loading
Loading