Skip to content
Merged
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
3 changes: 2 additions & 1 deletion .github/workflows/test-matrix-agp-gradle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ jobs:
fail-fast: false
matrix: ${{ fromJson(needs.generate-matrix.outputs.matrix) }}

name: Test Matrix - AGP ${{ matrix.agp }} - Gradle ${{ matrix.gradle }} - Java ${{ matrix.java }} - Groovy ${{ matrix.groovy }}
name: Test Matrix - AGP ${{ matrix.agp }} - Gradle ${{ matrix.gradle }} - Java ${{ matrix.java }} - Kotlin ${{ matrix.kotlin }}
env:
VERSION_AGP: ${{ matrix.agp }}
VERSION_GROOVY: ${{ matrix.groovy }}
VERSION_KOTLIN: ${{ matrix.kotlin }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}

steps:
Expand Down
11 changes: 5 additions & 6 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
import org.gradle.util.internal.VersionNumber

buildscript {
if (VersionNumber.parse(BuildPluginsVersion.AGP).major < 8) {
dependencies { classpath("org.apache.commons:commons-compress:1.26.0") }
if (BuildPluginsVersion.AGP.substringBefore(".").toInt() < 8) {
// AGP 7.x has troubles with compileSdk 34 due to some R8 shenanigans, so we have to use a newer
// version of R* here
dependencies { classpath("com.android.tools:r8:8.11.18") }
}
}

plugins {
alias(libs.plugins.kotlin) apply false
alias(libs.plugins.kotlinAndroid) apply false
alias(libs.plugins.kapt) apply false
alias(libs.plugins.kotlin) version BuildPluginsVersion.KOTLIN apply false
alias(libs.plugins.kotlinAndroid) version BuildPluginsVersion.KOTLIN apply false
alias(libs.plugins.kapt) version BuildPluginsVersion.KOTLIN apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.composeCompiler) apply false
alias(libs.plugins.androidApplication) version BuildPluginsVersion.AGP apply false
Expand Down
4 changes: 1 addition & 3 deletions buildSrc/src/main/java/Dependencies.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import org.gradle.util.internal.VersionNumber

object BuildPluginsVersion {
val AGP = System.getenv("VERSION_AGP") ?: "8.10.1"
val GROOVY_REDISTRIBUTED = System.getenv("VERSION_GROOVY") ?: "1.7.1"
val KOTLIN = System.getenv("VERSION_KOTLIN") ?: "1.8.20"
}

object LibsVersion {
Expand Down
2 changes: 1 addition & 1 deletion examples/android-instrumentation-sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion

plugins {
alias(libs.plugins.androidApplication) version BuildPluginsVersion.AGP
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kotlinAndroid) version BuildPluginsVersion.KOTLIN
alias(libs.plugins.ksp)
id("io.sentry.android.gradle")
id("io.sentry.kotlin.compiler.gradle")
Expand Down
2 changes: 1 addition & 1 deletion examples/android-room-lib/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
alias(libs.plugins.androidLibrary) version BuildPluginsVersion.AGP
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kotlinAndroid) version BuildPluginsVersion.KOTLIN
}

android {
Expand Down
2 changes: 1 addition & 1 deletion examples/multi-module-sample/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlin) version BuildPluginsVersion.KOTLIN
id("io.sentry.jvm.gradle")
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
alias(libs.plugins.springBoot)
alias(libs.plugins.springDependencyManagement)
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.kotlin) version BuildPluginsVersion.KOTLIN
alias(libs.plugins.kotlinSpring) version BuildPluginsVersion.KOTLIN
id("io.sentry.jvm.gradle")
}

group = "io.sentry.samples.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_1_8
java.sourceCompatibility = JavaVersion.VERSION_17

java.targetCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_17

dependencies {
implementation(libs.sample.springBoot.starterSecurity)
Expand All @@ -26,6 +27,7 @@ dependencies {
implementation(libs.sample.springBoot.starter)
implementation(libs.sample.springBoot.kotlinReflect)
implementation(libs.sample.springBoot.starterJdbc)
implementation(libs.sentrySpringBootJakarta)
implementation(kotlin(Samples.SpringBoot.kotlinStdLib, KotlinCompilerVersion.VERSION))

runtimeOnly(libs.sample.springBoot.hsqldb)
Expand All @@ -37,9 +39,9 @@ dependencies {
tasks.withType<Test>().configureEach { useJUnitPlatform() }

tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
compilerOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = JavaVersion.VERSION_1_8.toString()
jvmTarget.set(JVM_17)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.sentry.samples.spring.boot;

import io.sentry.spring.tracing.SentryTransaction;
import io.sentry.spring.jakarta.tracing.SentryTransaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import io.sentry.ISpan;
import io.sentry.Sentry;
import io.sentry.spring.tracing.SentrySpan;
import io.sentry.spring.jakarta.tracing.SentrySpan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,32 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

import static org.springframework.security.config.Customizer.withDefaults;

@Configuration
@SuppressWarnings("deprecation") // WebSecurityConfigurerAdapter has been deprecated
public class SecurityConfiguration
extends org.springframework.security.config.annotation.web.configuration
.WebSecurityConfigurerAdapter {
public class SecurityConfiguration {

// this API is meant to be consumed by non-browser clients thus the CSRF protection is not needed.
@Override
@Bean
@SuppressWarnings("lgtm[java/spring-disabled-csrf-protection]")
protected void configure(final @NotNull HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
public @NotNull SecurityFilterChain securityFilterChain(final @NotNull HttpSecurity http)
throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
.httpBasic(withDefaults())
.build();
}

@Bean
@Override
public @NotNull UserDetailsService userDetailsService() {
final PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();

Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
alias(libs.plugins.springBoot)
alias(libs.plugins.springDependencyManagement)
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.kotlin) version BuildPluginsVersion.KOTLIN
alias(libs.plugins.kotlinSpring) version BuildPluginsVersion.KOTLIN
id("io.sentry.jvm.gradle")
}

group = "io.sentry.samples.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_1_8
java.sourceCompatibility = JavaVersion.VERSION_17

java.targetCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_17

dependencies {
implementation(libs.sample.springBoot.starterSecurity)
Expand All @@ -26,6 +27,7 @@ dependencies {
implementation(libs.sample.springBoot.starter)
implementation(libs.sample.springBoot.kotlinReflect)
implementation(libs.sample.springBoot.starterJdbc)
implementation(libs.sentrySpringBootJakarta)
implementation(kotlin(Samples.SpringBoot.kotlinStdLib, KotlinCompilerVersion.VERSION))

runtimeOnly(libs.sample.springBoot.hsqldb)
Expand All @@ -37,9 +39,9 @@ dependencies {
tasks.withType<Test>().configureEach { useJUnitPlatform() }

tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
compilerOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = JavaVersion.VERSION_1_8.toString()
jvmTarget.set(JVM_17)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.sentry.samples.spring.boot;

import io.sentry.spring.tracing.SentryTransaction;
import io.sentry.spring.jakarta.tracing.SentryTransaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import io.sentry.ISpan;
import io.sentry.Sentry;
import io.sentry.spring.tracing.SentrySpan;
import io.sentry.spring.jakarta.tracing.SentrySpan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,32 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

import static org.springframework.security.config.Customizer.withDefaults;

@Configuration
@SuppressWarnings("deprecation") // WebSecurityConfigurerAdapter has been deprecated
public class SecurityConfiguration
extends org.springframework.security.config.annotation.web.configuration
.WebSecurityConfigurerAdapter {
public class SecurityConfiguration {

// this API is meant to be consumed by non-browser clients thus the CSRF protection is not needed.
@Override
@Bean
@SuppressWarnings("lgtm[java/spring-disabled-csrf-protection]")
protected void configure(final @NotNull HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
public @NotNull SecurityFilterChain securityFilterChain(final @NotNull HttpSecurity http)
throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
.httpBasic(withDefaults())
.build();
}

@Bean
@Override
public @NotNull UserDetailsService userDetailsService() {
final PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();

Expand Down
14 changes: 8 additions & 6 deletions examples/spring-boot-sample/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
alias(libs.plugins.springBoot)
alias(libs.plugins.springDependencyManagement)
alias(libs.plugins.kotlin)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.kotlin) version BuildPluginsVersion.KOTLIN
alias(libs.plugins.kotlinSpring) version BuildPluginsVersion.KOTLIN
id("io.sentry.jvm.gradle")
}

group = "io.sentry.samples.spring-boot"

version = "0.0.1-SNAPSHOT"

java.sourceCompatibility = JavaVersion.VERSION_1_8
java.sourceCompatibility = JavaVersion.VERSION_17

java.targetCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_17

dependencies {
implementation(libs.sample.springBoot.starterSecurity)
Expand All @@ -26,6 +27,7 @@ dependencies {
implementation(libs.sample.springBoot.starter)
implementation(libs.sample.springBoot.kotlinReflect)
implementation(libs.sample.springBoot.starterJdbc)
implementation(libs.sentrySpringBootJakarta)
implementation(kotlin(Samples.SpringBoot.kotlinStdLib, KotlinCompilerVersion.VERSION))

runtimeOnly(libs.sample.springBoot.hsqldb)
Expand All @@ -37,9 +39,9 @@ dependencies {
tasks.withType<Test>().configureEach { useJUnitPlatform() }

tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
compilerOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = JavaVersion.VERSION_1_8.toString()
jvmTarget.set(JVM_17)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package io.sentry.samples.spring.boot;

import io.sentry.spring.tracing.SentryTransaction;
import io.sentry.spring.jakarta.tracing.SentryTransaction;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import io.sentry.ISpan;
import io.sentry.Sentry;
import io.sentry.spring.tracing.SentrySpan;
import io.sentry.spring.jakarta.tracing.SentrySpan;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,32 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.crypto.factory.PasswordEncoderFactories;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

import static org.springframework.security.config.Customizer.withDefaults;

@Configuration
@SuppressWarnings("deprecation") // WebSecurityConfigurerAdapter has been deprecated
public class SecurityConfiguration
extends org.springframework.security.config.annotation.web.configuration
.WebSecurityConfigurerAdapter {
public class SecurityConfiguration {

// this API is meant to be consumed by non-browser clients thus the CSRF protection is not needed.
@Override
@Bean
@SuppressWarnings("lgtm[java/spring-disabled-csrf-protection]")
protected void configure(final @NotNull HttpSecurity http) throws Exception {
http.csrf().disable().authorizeRequests().anyRequest().authenticated().and().httpBasic();
public @NotNull SecurityFilterChain securityFilterChain(final @NotNull HttpSecurity http)
throws Exception {
return http
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
.httpBasic(withDefaults())
.build();
}

@Bean
@Override
public @NotNull UserDetailsService userDetailsService() {
final PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();

Expand Down
Loading
Loading