diff --git a/.craft.yml b/.craft.yml index a8cd64f19e..76f9fae0f2 100644 --- a/.craft.yml +++ b/.craft.yml @@ -23,6 +23,8 @@ targets: maven:io.sentry:sentry: maven:io.sentry:sentry-spring: maven:io.sentry:sentry-spring-jakarta: + #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-servlet: diff --git a/.github/ISSUE_TEMPLATE/bug_report_java.yml b/.github/ISSUE_TEMPLATE/bug_report_java.yml index ef030cbf43..c71b3fb494 100644 --- a/.github/ISSUE_TEMPLATE/bug_report_java.yml +++ b/.github/ISSUE_TEMPLATE/bug_report_java.yml @@ -18,6 +18,8 @@ body: - sentry-opentelemetry-core - sentry-servlet - sentry-servlet-jakarta + - sentry-spring-boot + - sentry-spring-boot-jakarta - sentry-spring-boot-starter - sentry-spring-boot-starter-jakarta - sentry-spring diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6b07223c..6e6d8e43b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ - More details for Sentry events: query, variables and response (where possible) - Breadcrumbs for operation (query, mutation, subscription), data fetchers and data loaders (Spring only) - Better hub propagation by using `GraphQLContext` +- Add autoconfigure modules for Spring Boot called `sentry-spring-boot` and `sentry-spring-boot-jakarta` ([#2880](https://github.com/getsentry/sentry-java/pull/2880)) + - The autoconfigure modules `sentry-spring-boot` and `sentry-spring-boot-jakarta` have a `compileOnly` dependency on `spring-boot-starter` which is needed for our auto installation in [sentry-android-gradle-plugin](https://github.com/getsentry/sentry-android-gradle-plugin) + - The starter modules `sentry-spring-boot-starter` and `sentry-spring-boot-starter-jakarta` now bring `spring-boot-starter` as a dependency ### Fixes diff --git a/README.md b/README.md index 2ba982923c..d10da65505 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,8 @@ Sentry SDK for Java and Android | sentry-kotlin-extensions | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-kotlin-extensions/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-kotlin-extensions) | 14 | | sentry-servlet | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-servlet/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-servlet) | | | sentry-servlet-jakarta | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-servlet-jakarta/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-servlet-jakarta) | | +| sentry-spring-boot | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot) | +| sentry-spring-boot-jakarta | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-jakarta/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-jakarta) | | sentry-spring-boot-starter | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-starter/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-starter) | | sentry-spring-boot-starter-jakarta | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-starter-jakarta/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring-boot-starter-jakarta) | | sentry-spring | [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.sentry/sentry-spring) | diff --git a/sentry-spring-boot-jakarta/.gitignore b/sentry-spring-boot-jakarta/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/sentry-spring-boot-jakarta/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/sentry-spring-boot-jakarta/api/sentry-spring-boot-jakarta.api b/sentry-spring-boot-jakarta/api/sentry-spring-boot-jakarta.api new file mode 100644 index 0000000000..49141a82bb --- /dev/null +++ b/sentry-spring-boot-jakarta/api/sentry-spring-boot-jakarta.api @@ -0,0 +1,57 @@ +public final class io/sentry/spring/boot/jakarta/BuildConfig { + public static final field SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME Ljava/lang/String; + public static final field VERSION_NAME Ljava/lang/String; +} + +public class io/sentry/spring/boot/jakarta/InAppIncludesResolver : org/springframework/context/ApplicationContextAware { + public fun ()V + public fun resolveInAppIncludes ()Ljava/util/List; + public fun setApplicationContext (Lorg/springframework/context/ApplicationContext;)V +} + +public class io/sentry/spring/boot/jakarta/SentryAutoConfiguration { + public fun ()V +} + +public class io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration { + public fun ()V + public fun sentryLogbackInitializer (Lio/sentry/spring/boot/jakarta/SentryProperties;)Lio/sentry/spring/boot/jakarta/SentryLogbackInitializer; +} + +public class io/sentry/spring/boot/jakarta/SentryProperties : io/sentry/SentryOptions { + public fun ()V + public fun getExceptionResolverOrder ()I + public fun getLogging ()Lio/sentry/spring/boot/jakarta/SentryProperties$Logging; + public fun getReactive ()Lio/sentry/spring/boot/jakarta/SentryProperties$Reactive; + public fun getUserFilterOrder ()Ljava/lang/Integer; + public fun isUseGitCommitIdAsRelease ()Z + public fun setExceptionResolverOrder (I)V + public fun setLogging (Lio/sentry/spring/boot/jakarta/SentryProperties$Logging;)V + public fun setReactive (Lio/sentry/spring/boot/jakarta/SentryProperties$Reactive;)V + public fun setUseGitCommitIdAsRelease (Z)V + public fun setUserFilterOrder (Ljava/lang/Integer;)V +} + +public class io/sentry/spring/boot/jakarta/SentryProperties$Logging { + public fun ()V + public fun getLoggers ()Ljava/util/List; + public fun getMinimumBreadcrumbLevel ()Lorg/slf4j/event/Level; + public fun getMinimumEventLevel ()Lorg/slf4j/event/Level; + public fun isEnabled ()Z + public fun setEnabled (Z)V + public fun setLoggers (Ljava/util/List;)V + public fun setMinimumBreadcrumbLevel (Lorg/slf4j/event/Level;)V + public fun setMinimumEventLevel (Lorg/slf4j/event/Level;)V +} + +public class io/sentry/spring/boot/jakarta/SentryProperties$Reactive { + public fun ()V + public fun isThreadLocalAccessorEnabled ()Z + public fun setThreadLocalAccessorEnabled (Z)V +} + +public class io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration { + public fun ()V + public fun sentryWebExceptionHandler (Lio/sentry/IHub;)Lio/sentry/spring/jakarta/webflux/SentryWebExceptionHandler; +} + diff --git a/sentry-spring-boot-jakarta/build.gradle.kts b/sentry-spring-boot-jakarta/build.gradle.kts new file mode 100644 index 0000000000..0b2292d06e --- /dev/null +++ b/sentry-spring-boot-jakarta/build.gradle.kts @@ -0,0 +1,117 @@ +import net.ltgt.gradle.errorprone.errorprone +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.springframework.boot.gradle.plugin.SpringBootPlugin + +plugins { + `java-library` + kotlin("jvm") + jacoco + id(Config.QualityPlugins.errorProne) + id(Config.QualityPlugins.gradleVersions) + id(Config.BuildPlugins.buildConfig) version Config.BuildPlugins.buildConfigVersion + id(Config.BuildPlugins.springBoot) version Config.springBoot3Version apply false +} + +configure { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 +} + +tasks.withType().configureEach { + kotlinOptions.jvmTarget = JavaVersion.VERSION_17.toString() + kotlinOptions.languageVersion = Config.kotlinCompatibleLanguageVersion +} + +dependencies { + api(projects.sentry) + api(projects.sentrySpringJakarta) + compileOnly(projects.sentryLogback) + compileOnly(projects.sentryApacheHttpClient5) + compileOnly(Config.Libs.springBoot3Starter) + compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) + compileOnly(projects.sentryGraphql) + compileOnly(Config.Libs.springWeb) + compileOnly(Config.Libs.springWebflux) + compileOnly(Config.Libs.servletApiJakarta) + compileOnly(Config.Libs.springBoot3StarterAop) + compileOnly(Config.Libs.springBoot3StarterSecurity) + compileOnly(Config.Libs.springBoot3StarterGraphql) + compileOnly(Config.Libs.reactorCore) + compileOnly(Config.Libs.contextPropagation) + compileOnly(projects.sentryOpentelemetry.sentryOpentelemetryCore) + + annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) + annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) + annotationProcessor(Config.AnnotationProcessors.springBootConfiguration) + + compileOnly(Config.CompileOnly.nopen) + errorprone(Config.CompileOnly.nopenChecker) + errorprone(Config.CompileOnly.errorprone) + errorprone(Config.CompileOnly.errorProneNullAway) + compileOnly(Config.CompileOnly.jetbrainsAnnotations) + + // tests + testImplementation(projects.sentryLogback) + testImplementation(projects.sentryApacheHttpClient5) + testImplementation(projects.sentryTestSupport) + testImplementation(kotlin(Config.kotlinStdLib)) + testImplementation(Config.TestLibs.kotlinTestJunit) + testImplementation(Config.TestLibs.mockitoKotlin) + testImplementation(Config.TestLibs.mockWebserver) + + testImplementation(Config.Libs.okhttp) + testImplementation(Config.Libs.springBoot3Starter) + testImplementation(platform(SpringBootPlugin.BOM_COORDINATES)) + testImplementation(Config.Libs.springBoot3StarterTest) + testImplementation(Config.Libs.springBoot3StarterWeb) + testImplementation(Config.Libs.springBoot3StarterWebflux) + testImplementation(Config.Libs.springBoot3StarterSecurity) + testImplementation(Config.Libs.springBoot3StarterAop) + testImplementation(projects.sentryOpentelemetry.sentryOpentelemetryCore) + testImplementation(Config.Libs.contextPropagation) +} + +configure { + test { + java.srcDir("src/test/java") + } +} + +jacoco { + toolVersion = Config.QualityPlugins.Jacoco.version +} + +tasks.jacocoTestReport { + reports { + xml.required.set(true) + html.required.set(false) + } +} + +tasks { + jacocoTestCoverageVerification { + violationRules { + rule { limit { minimum = Config.QualityPlugins.Jacoco.minimumCoverage } } + } + } + check { + dependsOn(jacocoTestCoverageVerification) + dependsOn(jacocoTestReport) + } +} + +buildConfig { + useJavaOutput() + packageName("io.sentry.spring.boot.jakarta") + buildConfigField("String", "SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME", "\"${Config.Sentry.SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME}\"") + buildConfigField("String", "VERSION_NAME", "\"${project.version}\"") +} + +val generateBuildConfig by tasks +tasks.withType().configureEach { + dependsOn(generateBuildConfig) + options.errorprone { + check("NullAway", net.ltgt.gradle.errorprone.CheckSeverity.ERROR) + option("NullAway:AnnotatedPackages", "io.sentry") + } +} diff --git a/sentry-spring-boot-starter-jakarta/sentry-jakarta-text-master.properties b/sentry-spring-boot-jakarta/sentry-jakarta-text-master.properties similarity index 100% rename from sentry-spring-boot-starter-jakarta/sentry-jakarta-text-master.properties rename to sentry-spring-boot-jakarta/sentry-jakarta-text-master.properties diff --git a/sentry-spring-boot-starter-jakarta/sentry-package-rename.properties b/sentry-spring-boot-jakarta/sentry-package-rename.properties similarity index 100% rename from sentry-spring-boot-starter-jakarta/sentry-package-rename.properties rename to sentry-spring-boot-jakarta/sentry-package-rename.properties diff --git a/sentry-spring-boot-starter-jakarta/spring-test-rename.properties b/sentry-spring-boot-jakarta/spring-test-rename.properties similarity index 100% rename from sentry-spring-boot-starter-jakarta/spring-test-rename.properties rename to sentry-spring-boot-jakarta/spring-test-rename.properties diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/InAppIncludesResolver.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/InAppIncludesResolver.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/InAppIncludesResolver.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/InAppIncludesResolver.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryAutoConfiguration.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryAutoConfiguration.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryAutoConfiguration.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackInitializer.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackInitializer.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackInitializer.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryLogbackInitializer.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryProperties.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryProperties.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryProperties.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryProperties.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizer.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizer.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizer.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizer.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizer.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizer.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizer.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizer.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration.java b/sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration.java rename to sentry-spring-boot-jakarta/src/main/java/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration.java diff --git a/sentry-spring-boot-starter-jakarta/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json b/sentry-spring-boot-jakarta/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json rename to sentry-spring-boot-jakarta/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json diff --git a/sentry-spring-boot-starter-jakarta/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/sentry-spring-boot-jakarta/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename to sentry-spring-boot-jakarta/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/com/acme/MainBootClass.kt b/sentry-spring-boot-jakarta/src/test/kotlin/com/acme/MainBootClass.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/com/acme/MainBootClass.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/com/acme/MainBootClass.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfigurationTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfigurationTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizerTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizerTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizerTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanRestTemplateCustomizerTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizerTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizerTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizerTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentrySpanWebClientCustomizerTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfigurationTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfigurationTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/it/SentrySpringIntegrationTest.kt b/sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/it/SentrySpringIntegrationTest.kt similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/it/SentrySpringIntegrationTest.kt rename to sentry-spring-boot-jakarta/src/test/kotlin/io/sentry/spring/boot/jakarta/it/SentrySpringIntegrationTest.kt diff --git a/sentry-spring-boot-starter-jakarta/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/sentry-spring-boot-jakarta/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker similarity index 100% rename from sentry-spring-boot-starter-jakarta/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker rename to sentry-spring-boot-jakarta/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker diff --git a/sentry-spring-boot-starter-jakarta/api/sentry-spring-boot-starter-jakarta.api b/sentry-spring-boot-starter-jakarta/api/sentry-spring-boot-starter-jakarta.api index 49141a82bb..e69de29bb2 100644 --- a/sentry-spring-boot-starter-jakarta/api/sentry-spring-boot-starter-jakarta.api +++ b/sentry-spring-boot-starter-jakarta/api/sentry-spring-boot-starter-jakarta.api @@ -1,57 +0,0 @@ -public final class io/sentry/spring/boot/jakarta/BuildConfig { - public static final field SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME Ljava/lang/String; - public static final field VERSION_NAME Ljava/lang/String; -} - -public class io/sentry/spring/boot/jakarta/InAppIncludesResolver : org/springframework/context/ApplicationContextAware { - public fun ()V - public fun resolveInAppIncludes ()Ljava/util/List; - public fun setApplicationContext (Lorg/springframework/context/ApplicationContext;)V -} - -public class io/sentry/spring/boot/jakarta/SentryAutoConfiguration { - public fun ()V -} - -public class io/sentry/spring/boot/jakarta/SentryLogbackAppenderAutoConfiguration { - public fun ()V - public fun sentryLogbackInitializer (Lio/sentry/spring/boot/jakarta/SentryProperties;)Lio/sentry/spring/boot/jakarta/SentryLogbackInitializer; -} - -public class io/sentry/spring/boot/jakarta/SentryProperties : io/sentry/SentryOptions { - public fun ()V - public fun getExceptionResolverOrder ()I - public fun getLogging ()Lio/sentry/spring/boot/jakarta/SentryProperties$Logging; - public fun getReactive ()Lio/sentry/spring/boot/jakarta/SentryProperties$Reactive; - public fun getUserFilterOrder ()Ljava/lang/Integer; - public fun isUseGitCommitIdAsRelease ()Z - public fun setExceptionResolverOrder (I)V - public fun setLogging (Lio/sentry/spring/boot/jakarta/SentryProperties$Logging;)V - public fun setReactive (Lio/sentry/spring/boot/jakarta/SentryProperties$Reactive;)V - public fun setUseGitCommitIdAsRelease (Z)V - public fun setUserFilterOrder (Ljava/lang/Integer;)V -} - -public class io/sentry/spring/boot/jakarta/SentryProperties$Logging { - public fun ()V - public fun getLoggers ()Ljava/util/List; - public fun getMinimumBreadcrumbLevel ()Lorg/slf4j/event/Level; - public fun getMinimumEventLevel ()Lorg/slf4j/event/Level; - public fun isEnabled ()Z - public fun setEnabled (Z)V - public fun setLoggers (Ljava/util/List;)V - public fun setMinimumBreadcrumbLevel (Lorg/slf4j/event/Level;)V - public fun setMinimumEventLevel (Lorg/slf4j/event/Level;)V -} - -public class io/sentry/spring/boot/jakarta/SentryProperties$Reactive { - public fun ()V - public fun isThreadLocalAccessorEnabled ()Z - public fun setThreadLocalAccessorEnabled (Z)V -} - -public class io/sentry/spring/boot/jakarta/SentryWebfluxAutoConfiguration { - public fun ()V - public fun sentryWebExceptionHandler (Lio/sentry/IHub;)Lio/sentry/spring/jakarta/webflux/SentryWebExceptionHandler; -} - diff --git a/sentry-spring-boot-starter-jakarta/build.gradle.kts b/sentry-spring-boot-starter-jakarta/build.gradle.kts index 0b2292d06e..bbe28a0587 100644 --- a/sentry-spring-boot-starter-jakarta/build.gradle.kts +++ b/sentry-spring-boot-starter-jakarta/build.gradle.kts @@ -8,7 +8,6 @@ plugins { jacoco id(Config.QualityPlugins.errorProne) id(Config.QualityPlugins.gradleVersions) - id(Config.BuildPlugins.buildConfig) version Config.BuildPlugins.buildConfigVersion id(Config.BuildPlugins.springBoot) version Config.springBoot3Version apply false } @@ -23,22 +22,8 @@ tasks.withType().configureEach { } dependencies { - api(projects.sentry) - api(projects.sentrySpringJakarta) - compileOnly(projects.sentryLogback) - compileOnly(projects.sentryApacheHttpClient5) - compileOnly(Config.Libs.springBoot3Starter) - compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) - compileOnly(projects.sentryGraphql) - compileOnly(Config.Libs.springWeb) - compileOnly(Config.Libs.springWebflux) - compileOnly(Config.Libs.servletApiJakarta) - compileOnly(Config.Libs.springBoot3StarterAop) - compileOnly(Config.Libs.springBoot3StarterSecurity) - compileOnly(Config.Libs.springBoot3StarterGraphql) - compileOnly(Config.Libs.reactorCore) - compileOnly(Config.Libs.contextPropagation) - compileOnly(projects.sentryOpentelemetry.sentryOpentelemetryCore) + api(projects.sentrySpringBootJakarta) + api(Config.Libs.springBoot3Starter) annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) @@ -49,26 +34,6 @@ dependencies { errorprone(Config.CompileOnly.errorprone) errorprone(Config.CompileOnly.errorProneNullAway) compileOnly(Config.CompileOnly.jetbrainsAnnotations) - - // tests - testImplementation(projects.sentryLogback) - testImplementation(projects.sentryApacheHttpClient5) - testImplementation(projects.sentryTestSupport) - testImplementation(kotlin(Config.kotlinStdLib)) - testImplementation(Config.TestLibs.kotlinTestJunit) - testImplementation(Config.TestLibs.mockitoKotlin) - testImplementation(Config.TestLibs.mockWebserver) - - testImplementation(Config.Libs.okhttp) - testImplementation(Config.Libs.springBoot3Starter) - testImplementation(platform(SpringBootPlugin.BOM_COORDINATES)) - testImplementation(Config.Libs.springBoot3StarterTest) - testImplementation(Config.Libs.springBoot3StarterWeb) - testImplementation(Config.Libs.springBoot3StarterWebflux) - testImplementation(Config.Libs.springBoot3StarterSecurity) - testImplementation(Config.Libs.springBoot3StarterAop) - testImplementation(projects.sentryOpentelemetry.sentryOpentelemetryCore) - testImplementation(Config.Libs.contextPropagation) } configure { @@ -100,16 +65,7 @@ tasks { } } -buildConfig { - useJavaOutput() - packageName("io.sentry.spring.boot.jakarta") - buildConfigField("String", "SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME", "\"${Config.Sentry.SENTRY_SPRING_BOOT_JAKARTA_SDK_NAME}\"") - buildConfigField("String", "VERSION_NAME", "\"${project.version}\"") -} - -val generateBuildConfig by tasks tasks.withType().configureEach { - dependsOn(generateBuildConfig) options.errorprone { check("NullAway", net.ltgt.gradle.errorprone.CheckSeverity.ERROR) option("NullAway:AnnotatedPackages", "io.sentry") diff --git a/sentry-spring-boot-starter/api/sentry-spring-boot-starter.api b/sentry-spring-boot-starter/api/sentry-spring-boot-starter.api index 642f550e6b..e69de29bb2 100644 --- a/sentry-spring-boot-starter/api/sentry-spring-boot-starter.api +++ b/sentry-spring-boot-starter/api/sentry-spring-boot-starter.api @@ -1,51 +0,0 @@ -public final class io/sentry/spring/boot/BuildConfig { - public static final field SENTRY_SPRING_BOOT_SDK_NAME Ljava/lang/String; - public static final field VERSION_NAME Ljava/lang/String; -} - -public class io/sentry/spring/boot/InAppIncludesResolver : org/springframework/context/ApplicationContextAware { - public fun ()V - public fun resolveInAppIncludes ()Ljava/util/List; - public fun setApplicationContext (Lorg/springframework/context/ApplicationContext;)V -} - -public class io/sentry/spring/boot/SentryAutoConfiguration { - public fun ()V -} - -public class io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration { - public fun ()V - public fun sentryLogbackInitializer (Lio/sentry/spring/boot/SentryProperties;)Lio/sentry/spring/boot/SentryLogbackInitializer; -} - -public class io/sentry/spring/boot/SentryProperties : io/sentry/SentryOptions { - public fun ()V - public fun getExceptionResolverOrder ()I - public fun getLogging ()Lio/sentry/spring/boot/SentryProperties$Logging; - public fun getUserFilterOrder ()Ljava/lang/Integer; - public fun isUseGitCommitIdAsRelease ()Z - public fun setExceptionResolverOrder (I)V - public fun setLogging (Lio/sentry/spring/boot/SentryProperties$Logging;)V - public fun setUseGitCommitIdAsRelease (Z)V - public fun setUserFilterOrder (Ljava/lang/Integer;)V -} - -public class io/sentry/spring/boot/SentryProperties$Logging { - public fun ()V - public fun getLoggers ()Ljava/util/List; - public fun getMinimumBreadcrumbLevel ()Lorg/slf4j/event/Level; - public fun getMinimumEventLevel ()Lorg/slf4j/event/Level; - public fun isEnabled ()Z - public fun setEnabled (Z)V - public fun setLoggers (Ljava/util/List;)V - public fun setMinimumBreadcrumbLevel (Lorg/slf4j/event/Level;)V - public fun setMinimumEventLevel (Lorg/slf4j/event/Level;)V -} - -public class io/sentry/spring/boot/SentryWebfluxAutoConfiguration { - public fun ()V - public fun sentryScheduleHookApplicationRunner ()Lorg/springframework/boot/ApplicationRunner; - public fun sentryWebExceptionHandler (Lio/sentry/IHub;)Lio/sentry/spring/webflux/SentryWebExceptionHandler; - public fun sentryWebFilter (Lio/sentry/IHub;)Lio/sentry/spring/webflux/SentryWebFilter; -} - diff --git a/sentry-spring-boot-starter/build.gradle.kts b/sentry-spring-boot-starter/build.gradle.kts index 3d144730a5..fcbdd0d9a6 100644 --- a/sentry-spring-boot-starter/build.gradle.kts +++ b/sentry-spring-boot-starter/build.gradle.kts @@ -8,7 +8,6 @@ plugins { jacoco id(Config.QualityPlugins.errorProne) id(Config.QualityPlugins.gradleVersions) - id(Config.BuildPlugins.buildConfig) version Config.BuildPlugins.buildConfigVersion id(Config.BuildPlugins.springBoot) version Config.springBootVersion apply false } @@ -23,21 +22,8 @@ tasks.withType().configureEach { } dependencies { - api(projects.sentry) - api(projects.sentrySpring) - compileOnly(projects.sentryLogback) - compileOnly(projects.sentryApacheHttpClient5) - compileOnly(Config.Libs.springBootStarter) - compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) - compileOnly(Config.Libs.springWeb) - compileOnly(Config.Libs.springWebflux) - compileOnly(Config.Libs.servletApi) - compileOnly(Config.Libs.springBootStarterAop) - compileOnly(Config.Libs.springBootStarterSecurity) - compileOnly(Config.Libs.springBootStarterGraphql) - compileOnly(Config.Libs.reactorCore) - compileOnly(projects.sentryOpentelemetry.sentryOpentelemetryCore) - compileOnly(projects.sentryGraphql) + api(projects.sentrySpringBoot) + api(Config.Libs.springBootStarter) annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) @@ -48,23 +34,6 @@ dependencies { errorprone(Config.CompileOnly.errorprone) errorprone(Config.CompileOnly.errorProneNullAway) compileOnly(Config.CompileOnly.jetbrainsAnnotations) - - // tests - testImplementation(projects.sentryLogback) - testImplementation(projects.sentryApacheHttpClient5) - testImplementation(projects.sentryTestSupport) - testImplementation(kotlin(Config.kotlinStdLib)) - testImplementation(Config.TestLibs.kotlinTestJunit) - testImplementation(Config.TestLibs.mockitoKotlin) - testImplementation(Config.TestLibs.mockWebserver) - testImplementation(Config.Libs.okhttp) - testImplementation(Config.Libs.springBootStarter) - testImplementation(Config.Libs.springBootStarterTest) - testImplementation(Config.Libs.springBootStarterWeb) - testImplementation(Config.Libs.springBootStarterWebflux) - testImplementation(Config.Libs.springBootStarterSecurity) - testImplementation(Config.Libs.springBootStarterAop) - testImplementation(projects.sentryOpentelemetry.sentryOpentelemetryCore) } configure { @@ -96,16 +65,7 @@ tasks { } } -buildConfig { - useJavaOutput() - packageName("io.sentry.spring.boot") - buildConfigField("String", "SENTRY_SPRING_BOOT_SDK_NAME", "\"${Config.Sentry.SENTRY_SPRING_BOOT_SDK_NAME}\"") - buildConfigField("String", "VERSION_NAME", "\"${project.version}\"") -} - -val generateBuildConfig by tasks tasks.withType().configureEach { - dependsOn(generateBuildConfig) options.errorprone { check("NullAway", net.ltgt.gradle.errorprone.CheckSeverity.ERROR) option("NullAway:AnnotatedPackages", "io.sentry") diff --git a/sentry-spring-boot-starter/README.md b/sentry-spring-boot/README.md similarity index 100% rename from sentry-spring-boot-starter/README.md rename to sentry-spring-boot/README.md diff --git a/sentry-spring-boot/api/sentry-spring-boot.api b/sentry-spring-boot/api/sentry-spring-boot.api new file mode 100644 index 0000000000..642f550e6b --- /dev/null +++ b/sentry-spring-boot/api/sentry-spring-boot.api @@ -0,0 +1,51 @@ +public final class io/sentry/spring/boot/BuildConfig { + public static final field SENTRY_SPRING_BOOT_SDK_NAME Ljava/lang/String; + public static final field VERSION_NAME Ljava/lang/String; +} + +public class io/sentry/spring/boot/InAppIncludesResolver : org/springframework/context/ApplicationContextAware { + public fun ()V + public fun resolveInAppIncludes ()Ljava/util/List; + public fun setApplicationContext (Lorg/springframework/context/ApplicationContext;)V +} + +public class io/sentry/spring/boot/SentryAutoConfiguration { + public fun ()V +} + +public class io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration { + public fun ()V + public fun sentryLogbackInitializer (Lio/sentry/spring/boot/SentryProperties;)Lio/sentry/spring/boot/SentryLogbackInitializer; +} + +public class io/sentry/spring/boot/SentryProperties : io/sentry/SentryOptions { + public fun ()V + public fun getExceptionResolverOrder ()I + public fun getLogging ()Lio/sentry/spring/boot/SentryProperties$Logging; + public fun getUserFilterOrder ()Ljava/lang/Integer; + public fun isUseGitCommitIdAsRelease ()Z + public fun setExceptionResolverOrder (I)V + public fun setLogging (Lio/sentry/spring/boot/SentryProperties$Logging;)V + public fun setUseGitCommitIdAsRelease (Z)V + public fun setUserFilterOrder (Ljava/lang/Integer;)V +} + +public class io/sentry/spring/boot/SentryProperties$Logging { + public fun ()V + public fun getLoggers ()Ljava/util/List; + public fun getMinimumBreadcrumbLevel ()Lorg/slf4j/event/Level; + public fun getMinimumEventLevel ()Lorg/slf4j/event/Level; + public fun isEnabled ()Z + public fun setEnabled (Z)V + public fun setLoggers (Ljava/util/List;)V + public fun setMinimumBreadcrumbLevel (Lorg/slf4j/event/Level;)V + public fun setMinimumEventLevel (Lorg/slf4j/event/Level;)V +} + +public class io/sentry/spring/boot/SentryWebfluxAutoConfiguration { + public fun ()V + public fun sentryScheduleHookApplicationRunner ()Lorg/springframework/boot/ApplicationRunner; + public fun sentryWebExceptionHandler (Lio/sentry/IHub;)Lio/sentry/spring/webflux/SentryWebExceptionHandler; + public fun sentryWebFilter (Lio/sentry/IHub;)Lio/sentry/spring/webflux/SentryWebFilter; +} + diff --git a/sentry-spring-boot/build.gradle.kts b/sentry-spring-boot/build.gradle.kts new file mode 100644 index 0000000000..3d144730a5 --- /dev/null +++ b/sentry-spring-boot/build.gradle.kts @@ -0,0 +1,113 @@ +import net.ltgt.gradle.errorprone.errorprone +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import org.springframework.boot.gradle.plugin.SpringBootPlugin + +plugins { + `java-library` + kotlin("jvm") + jacoco + id(Config.QualityPlugins.errorProne) + id(Config.QualityPlugins.gradleVersions) + id(Config.BuildPlugins.buildConfig) version Config.BuildPlugins.buildConfigVersion + id(Config.BuildPlugins.springBoot) version Config.springBootVersion apply false +} + +configure { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} + +tasks.withType().configureEach { + kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8.toString() + kotlinOptions.languageVersion = Config.kotlinCompatibleLanguageVersion +} + +dependencies { + api(projects.sentry) + api(projects.sentrySpring) + compileOnly(projects.sentryLogback) + compileOnly(projects.sentryApacheHttpClient5) + compileOnly(Config.Libs.springBootStarter) + compileOnly(platform(SpringBootPlugin.BOM_COORDINATES)) + compileOnly(Config.Libs.springWeb) + compileOnly(Config.Libs.springWebflux) + compileOnly(Config.Libs.servletApi) + compileOnly(Config.Libs.springBootStarterAop) + compileOnly(Config.Libs.springBootStarterSecurity) + compileOnly(Config.Libs.springBootStarterGraphql) + compileOnly(Config.Libs.reactorCore) + compileOnly(projects.sentryOpentelemetry.sentryOpentelemetryCore) + compileOnly(projects.sentryGraphql) + + annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES)) + annotationProcessor(Config.AnnotationProcessors.springBootAutoConfigure) + annotationProcessor(Config.AnnotationProcessors.springBootConfiguration) + + compileOnly(Config.CompileOnly.nopen) + errorprone(Config.CompileOnly.nopenChecker) + errorprone(Config.CompileOnly.errorprone) + errorprone(Config.CompileOnly.errorProneNullAway) + compileOnly(Config.CompileOnly.jetbrainsAnnotations) + + // tests + testImplementation(projects.sentryLogback) + testImplementation(projects.sentryApacheHttpClient5) + testImplementation(projects.sentryTestSupport) + testImplementation(kotlin(Config.kotlinStdLib)) + testImplementation(Config.TestLibs.kotlinTestJunit) + testImplementation(Config.TestLibs.mockitoKotlin) + testImplementation(Config.TestLibs.mockWebserver) + testImplementation(Config.Libs.okhttp) + testImplementation(Config.Libs.springBootStarter) + testImplementation(Config.Libs.springBootStarterTest) + testImplementation(Config.Libs.springBootStarterWeb) + testImplementation(Config.Libs.springBootStarterWebflux) + testImplementation(Config.Libs.springBootStarterSecurity) + testImplementation(Config.Libs.springBootStarterAop) + testImplementation(projects.sentryOpentelemetry.sentryOpentelemetryCore) +} + +configure { + test { + java.srcDir("src/test/java") + } +} + +jacoco { + toolVersion = Config.QualityPlugins.Jacoco.version +} + +tasks.jacocoTestReport { + reports { + xml.required.set(true) + html.required.set(false) + } +} + +tasks { + jacocoTestCoverageVerification { + violationRules { + rule { limit { minimum = Config.QualityPlugins.Jacoco.minimumCoverage } } + } + } + check { + dependsOn(jacocoTestCoverageVerification) + dependsOn(jacocoTestReport) + } +} + +buildConfig { + useJavaOutput() + packageName("io.sentry.spring.boot") + buildConfigField("String", "SENTRY_SPRING_BOOT_SDK_NAME", "\"${Config.Sentry.SENTRY_SPRING_BOOT_SDK_NAME}\"") + buildConfigField("String", "VERSION_NAME", "\"${project.version}\"") +} + +val generateBuildConfig by tasks +tasks.withType().configureEach { + dependsOn(generateBuildConfig) + options.errorprone { + check("NullAway", net.ltgt.gradle.errorprone.CheckSeverity.ERROR) + option("NullAway:AnnotatedPackages", "io.sentry") + } +} diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/InAppIncludesResolver.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/InAppIncludesResolver.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/InAppIncludesResolver.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/InAppIncludesResolver.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryAutoConfiguration.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryAutoConfiguration.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryAutoConfiguration.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryLogbackAppenderAutoConfiguration.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryLogbackInitializer.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryLogbackInitializer.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryLogbackInitializer.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryLogbackInitializer.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryProperties.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryProperties.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryProperties.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryProperties.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentrySpanRestTemplateCustomizer.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentrySpanRestTemplateCustomizer.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentrySpanRestTemplateCustomizer.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentrySpanRestTemplateCustomizer.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentrySpanWebClientCustomizer.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentrySpanWebClientCustomizer.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentrySpanWebClientCustomizer.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentrySpanWebClientCustomizer.java diff --git a/sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryWebfluxAutoConfiguration.java b/sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryWebfluxAutoConfiguration.java similarity index 100% rename from sentry-spring-boot-starter/src/main/java/io/sentry/spring/boot/SentryWebfluxAutoConfiguration.java rename to sentry-spring-boot/src/main/java/io/sentry/spring/boot/SentryWebfluxAutoConfiguration.java diff --git a/sentry-spring-boot-starter/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json b/sentry-spring-boot/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json similarity index 100% rename from sentry-spring-boot-starter/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json rename to sentry-spring-boot/src/main/resources/META-INF/native-image/io.sentry/sentry/proxy-config.json diff --git a/sentry-spring-boot-starter/src/main/resources/META-INF/spring.factories b/sentry-spring-boot/src/main/resources/META-INF/spring.factories similarity index 100% rename from sentry-spring-boot-starter/src/main/resources/META-INF/spring.factories rename to sentry-spring-boot/src/main/resources/META-INF/spring.factories diff --git a/sentry-spring-boot-starter/src/test/kotlin/com/acme/MainBootClass.kt b/sentry-spring-boot/src/test/kotlin/com/acme/MainBootClass.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/com/acme/MainBootClass.kt rename to sentry-spring-boot/src/test/kotlin/com/acme/MainBootClass.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryLogbackAppenderAutoConfigurationTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryLogbackAppenderAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryLogbackAppenderAutoConfigurationTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryLogbackAppenderAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentrySpanRestTemplateCustomizerTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentrySpanRestTemplateCustomizerTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentrySpanRestTemplateCustomizerTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentrySpanRestTemplateCustomizerTest.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentrySpanWebClientCustomizerTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentrySpanWebClientCustomizerTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentrySpanWebClientCustomizerTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentrySpanWebClientCustomizerTest.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryWebfluxAutoConfigurationTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryWebfluxAutoConfigurationTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/SentryWebfluxAutoConfigurationTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/SentryWebfluxAutoConfigurationTest.kt diff --git a/sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/it/SentrySpringIntegrationTest.kt b/sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/it/SentrySpringIntegrationTest.kt similarity index 100% rename from sentry-spring-boot-starter/src/test/kotlin/io/sentry/spring/boot/it/SentrySpringIntegrationTest.kt rename to sentry-spring-boot/src/test/kotlin/io/sentry/spring/boot/it/SentrySpringIntegrationTest.kt diff --git a/sentry-spring-boot-starter/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/sentry-spring-boot/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker similarity index 100% rename from sentry-spring-boot-starter/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker rename to sentry-spring-boot/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker diff --git a/settings.gradle.kts b/settings.gradle.kts index 0926dfe22c..45b562da80 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -34,6 +34,8 @@ include( "sentry-apache-http-client-5", "sentry-spring", "sentry-spring-jakarta", + "sentry-spring-boot", + "sentry-spring-boot-jakarta", "sentry-spring-boot-starter", "sentry-spring-boot-starter-jakarta", "sentry-bom",