diff --git a/.fleet/settings.json b/.fleet/settings.json deleted file mode 100644 index 0c26df601..000000000 --- a/.fleet/settings.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "toolchains": [ - { - "name": "Gradle", - }, - { - "name": "JavaScript", - "path": "app-frontend/", - } - ], - "excluded": [ - "app-frontend/dist" - ], - "editor.guides": [ - 80 - ] -} \ No newline at end of file diff --git a/app-backend-dataops/build.gradle.kts b/app-backend-dataops/build.gradle.kts index e66cdb5a4..9ffee5dbc 100644 --- a/app-backend-dataops/build.gradle.kts +++ b/app-backend-dataops/build.gradle.kts @@ -8,7 +8,7 @@ repositories { dependencies { implementation("org.jooq:jooq-codegen:3.19.13") - implementation("org.flywaydb:flyway-database-postgresql:10.19.0") + implementation("org.flywaydb:flyway-database-postgresql:10.20.0") implementation("org.postgresql:postgresql:42.7.4") - implementation("ch.qos.logback:logback-classic:1.5.8") + implementation("ch.qos.logback:logback-classic:1.5.11") } diff --git a/app-backend/build.gradle.kts b/app-backend/build.gradle.kts index 1858df67e..cbfab63de 100644 --- a/app-backend/build.gradle.kts +++ b/app-backend/build.gradle.kts @@ -18,7 +18,6 @@ tasks.withType().configureEach freeCompilerArgs.addAll( "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", "-opt-in=kotlinx.serialization.ExperimentalSerializationApi", - "-opt-in=io.ktor.server.locations.KtorExperimentalLocationsAPI", ) } } @@ -35,35 +34,35 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:1.7.3") implementation("com.charleskorn.kaml:kaml:0.61.0") - implementation("org.flywaydb:flyway-database-postgresql:10.19.0") + implementation("org.flywaydb:flyway-database-postgresql:10.20.0") implementation("org.jooq:jooq:3.19.13") implementation("org.postgresql:postgresql:42.7.4") implementation("com.zaxxer:HikariCP:6.0.0") implementation("at.favre.lib:bcrypt:0.10.2") - implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.12") - implementation("io.ktor:ktor-client-cio:2.3.12") - implementation("io.ktor:ktor-server-content-negotiation:2.3.12") - implementation("io.ktor:ktor-server-cio:2.3.12") - implementation("io.ktor:ktor-server-locations:2.3.12") - implementation("io.ktor:ktor-server-websockets:2.3.12") - implementation("io.ktor:ktor-client-content-negotiation:2.3.12") - implementation("io.ktor:ktor-server-auth-jwt:2.3.12") - implementation("io.ktor:ktor-server-metrics-micrometer:2.3.12") - implementation("io.micrometer:micrometer-registry-prometheus:1.13.5") - implementation("io.ktor:ktor-server-call-logging:2.3.12") - implementation("io.ktor:ktor-server-default-headers:2.3.12") - implementation("io.ktor:ktor-server-caching-headers:2.3.12") - implementation("io.ktor:ktor-server-status-pages:2.3.12") + implementation("io.ktor:ktor-serialization-kotlinx-json:3.0.0") + implementation("io.ktor:ktor-client-cio:3.0.0") + implementation("io.ktor:ktor-server-content-negotiation:3.0.0") + implementation("io.ktor:ktor-server-cio:3.0.0") + implementation("io.ktor:ktor-server-resources:3.0.0") + implementation("io.ktor:ktor-server-websockets:3.0.0") + implementation("io.ktor:ktor-client-content-negotiation:3.0.0") + implementation("io.ktor:ktor-server-auth-jwt:3.0.0") + implementation("io.ktor:ktor-server-metrics-micrometer:3.0.0") + implementation("io.micrometer:micrometer-registry-prometheus:1.13.6") + implementation("io.ktor:ktor-server-call-logging:3.0.0") + implementation("io.ktor:ktor-server-default-headers:3.0.0") + implementation("io.ktor:ktor-server-caching-headers:3.0.0") + implementation("io.ktor:ktor-server-status-pages:3.0.0") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.0") implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.0") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0") - implementation("ch.qos.logback:logback-classic:1.5.8") + implementation("ch.qos.logback:logback-classic:1.5.11") testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0") - testImplementation("io.mockk:mockk:1.13.12") + testImplementation("io.mockk:mockk:1.13.13") testImplementation("org.junit.jupiter:junit-jupiter:5.11.2") } diff --git a/app-backend/src/main/kotlin/ktor/plugins/HTTP.kt b/app-backend/src/main/kotlin/ktor/plugins/HTTP.kt index 70caf47bf..441df6822 100644 --- a/app-backend/src/main/kotlin/ktor/plugins/HTTP.kt +++ b/app-backend/src/main/kotlin/ktor/plugins/HTTP.kt @@ -14,11 +14,11 @@ import io.ktor.server.application.install import io.ktor.server.auth.authentication import io.ktor.server.auth.jwt.JWTPrincipal import io.ktor.server.auth.jwt.jwt -import io.ktor.server.locations.Locations import io.ktor.server.plugins.cachingheaders.CachingHeaders import io.ktor.server.plugins.contentnegotiation.ContentNegotiation import io.ktor.server.plugins.defaultheaders.DefaultHeaders import io.ktor.server.plugins.statuspages.StatusPages +import io.ktor.server.resources.Resources import io.ktor.server.response.respond import kotlinx.serialization.Serializable import usecases.signup.JwtModule @@ -28,7 +28,7 @@ import kotlin.time.Duration.Companion.days fun Application.defaults( jwtConfig: JwtModule.JwtConfig, ) { - install(Locations) + install(Resources) install(ContentNegotiation) { json() diff --git a/app-backend/src/main/kotlin/ktor/plugins/Monitoring.kt b/app-backend/src/main/kotlin/ktor/plugins/Monitoring.kt index 247265a96..2d05fa1dc 100644 --- a/app-backend/src/main/kotlin/ktor/plugins/Monitoring.kt +++ b/app-backend/src/main/kotlin/ktor/plugins/Monitoring.kt @@ -1,10 +1,9 @@ package ktor.plugins import io.ktor.server.application.Application -import io.ktor.server.application.call import io.ktor.server.application.install import io.ktor.server.metrics.micrometer.MicrometerMetrics -import io.ktor.server.plugins.callloging.CallLogging +import io.ktor.server.plugins.calllogging.CallLogging import io.ktor.server.request.path import io.ktor.server.response.respond import io.ktor.server.routing.get diff --git a/app-backend/src/main/kotlin/ktor/plugins/Sockets.kt b/app-backend/src/main/kotlin/ktor/plugins/Sockets.kt index 36c6d1ca8..c782185e3 100644 --- a/app-backend/src/main/kotlin/ktor/plugins/Sockets.kt +++ b/app-backend/src/main/kotlin/ktor/plugins/Sockets.kt @@ -1,7 +1,6 @@ package ktor.plugins import io.ktor.websocket.* -import java.time.* import io.ktor.server.application.Application import io.ktor.server.application.install import io.ktor.server.routing.routing @@ -9,11 +8,12 @@ import io.ktor.server.websocket.WebSockets import io.ktor.server.websocket.pingPeriod import io.ktor.server.websocket.timeout import io.ktor.server.websocket.webSocket +import kotlin.time.Duration.Companion.seconds fun Application.configureSockets() { install(WebSockets) { - pingPeriod = Duration.ofSeconds(15) - timeout = Duration.ofSeconds(15) + pingPeriod = 15.seconds + timeout = 15.seconds maxFrameSize = Long.MAX_VALUE masking = false } diff --git a/app-backend/src/main/kotlin/usecases/github/GithubAuthRoute.kt b/app-backend/src/main/kotlin/usecases/github/GithubAuthRoute.kt index 3ea053d63..3ba3b2ba0 100644 --- a/app-backend/src/main/kotlin/usecases/github/GithubAuthRoute.kt +++ b/app-backend/src/main/kotlin/usecases/github/GithubAuthRoute.kt @@ -1,6 +1,5 @@ package usecases.github -import io.ktor.server.application.call import io.ktor.server.response.* import io.ktor.server.routing.Routing import io.ktor.server.routing.get diff --git a/app-backend/src/main/kotlin/usecases/links/Links.kt b/app-backend/src/main/kotlin/usecases/links/Links.kt index 981fba4ae..4882501e5 100644 --- a/app-backend/src/main/kotlin/usecases/links/Links.kt +++ b/app-backend/src/main/kotlin/usecases/links/Links.kt @@ -1,7 +1,6 @@ package usecases.links import di.bean -import io.ktor.server.application.call import io.ktor.server.response.respond import io.ktor.server.routing.Routing import io.ktor.server.routing.get diff --git a/app-backend/src/main/kotlin/usecases/ping/Ping.kt b/app-backend/src/main/kotlin/usecases/ping/Ping.kt index 1a77f2b5d..e46c2baa8 100644 --- a/app-backend/src/main/kotlin/usecases/ping/Ping.kt +++ b/app-backend/src/main/kotlin/usecases/ping/Ping.kt @@ -1,13 +1,12 @@ package usecases.ping -import io.ktor.server.application.call -import io.ktor.server.locations.Location -import io.ktor.server.locations.get +import io.ktor.resources.Resource +import io.ktor.server.resources.get import io.ktor.server.response.respondText import io.ktor.server.routing.Routing import ktor.KtorRoute -@Location("/ping/{name}") +@Resource("/ping/{name}") class PingRequest(val name: String) class PingRoute : KtorRoute { diff --git a/app-backend/src/main/kotlin/usecases/signup/Login.kt b/app-backend/src/main/kotlin/usecases/signup/Login.kt index bd5dd2ba7..163590546 100644 --- a/app-backend/src/main/kotlin/usecases/signup/Login.kt +++ b/app-backend/src/main/kotlin/usecases/signup/Login.kt @@ -4,7 +4,6 @@ import JooqModule import at.favre.lib.crypto.bcrypt.BCrypt import di.bean import io.ktor.http.* -import io.ktor.server.application.call import io.ktor.server.request.receive import io.ktor.server.response.respond import io.ktor.server.routing.Routing diff --git a/app-backend/src/main/kotlin/usecases/signup/Register.kt b/app-backend/src/main/kotlin/usecases/signup/Register.kt index b01c32f7e..77201cde4 100644 --- a/app-backend/src/main/kotlin/usecases/signup/Register.kt +++ b/app-backend/src/main/kotlin/usecases/signup/Register.kt @@ -5,7 +5,6 @@ import at.favre.lib.crypto.bcrypt.BCrypt import at.favre.lib.crypto.bcrypt.LongPasswordStrategies import di.bean import io.ktor.http.HttpStatusCode -import io.ktor.server.application.call import io.ktor.server.request.receive import io.ktor.server.response.respond import io.ktor.server.routing.Routing diff --git a/build.gradle.kts b/build.gradle.kts index 92e0e868f..57c47f13e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ plugins { application - kotlin("jvm").version("2.0.0") - kotlin("plugin.serialization").version("2.0.0") + kotlin("jvm").version("2.0.21") + kotlin("plugin.serialization").version("2.0.21") } application { @@ -25,7 +25,7 @@ dependencies { implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.0") implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.0") - implementation("ch.qos.logback:logback-classic:1.5.8") + implementation("ch.qos.logback:logback-classic:1.5.11") implementation("com.rometools:rome:2.1.0") implementation("com.github.dfabulich:sitemapgen4j:1.1.2") @@ -38,9 +38,9 @@ dependencies { implementation("org.commonmark:commonmark:0.23.0") implementation("org.commonmark:commonmark-ext-gfm-tables:0.23.0") - implementation("io.ktor:ktor-client-apache:2.3.12") - implementation("io.ktor:ktor-client-jackson:2.3.12") + implementation("io.ktor:ktor-client-apache:3.0.0") + implementation("io.ktor:ktor-client-jackson:3.0.0") - testImplementation("io.mockk:mockk:1.13.12") + testImplementation("io.mockk:mockk:1.13.13") testImplementation("org.junit.jupiter:junit-jupiter:5.11.2") } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e6441136f..a4b76b953 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8a1f6b97f..fb602ee2a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionSha256Sum=31c55713e40233a8303827ceb42ca48a47267a0ad4bab9177123121e71524c26 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a426..f5feea6d6 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 25da30dbd..9d21a2183 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ##########################################################################