diff --git a/acme-app/acme-app-web-test/build.gradle.kts b/acme-app/acme-app-web-test/build.gradle.kts index 0ec0907..f464ac9 100644 --- a/acme-app/acme-app-web-test/build.gradle.kts +++ b/acme-app/acme-app-web-test/build.gradle.kts @@ -9,7 +9,7 @@ dependencies { implementation(kotlin("reflect")) implementation(libs.net.datafaker.datafaker) implementation(libs.io.github.bonigarcia.selenium.jupiter) - implementation(libs.io.github.microutils.kotlin.logging.jvm) + implementation(libs.io.github.oshai.kotlin.logging.jvm) implementation(libs.io.kotest.kotest.runner.junit5.jvm) implementation(libs.io.ktor.ktor.client.apache) implementation(libs.io.ktor.ktor.client.auth) diff --git a/acme-app/acme-app-web-test/src/main/kotlin/com/acme/app/web/test/model/SignInPage.kt b/acme-app/acme-app-web-test/src/main/kotlin/com/acme/app/web/test/model/SignInPage.kt index 8ce5e96..5076495 100644 --- a/acme-app/acme-app-web-test/src/main/kotlin/com/acme/app/web/test/model/SignInPage.kt +++ b/acme-app/acme-app-web-test/src/main/kotlin/com/acme/app/web/test/model/SignInPage.kt @@ -4,8 +4,8 @@ import com.acme.selenium.PageObject import com.acme.selenium.buttonText import com.acme.selenium.formControlByName import com.acme.selenium.wait +import io.github.oshai.kotlinlogging.KotlinLogging import io.kotest.matchers.string.shouldContain -import mu.KotlinLogging import org.openqa.selenium.By import org.openqa.selenium.WebDriver import org.openqa.selenium.support.ui.ExpectedConditions diff --git a/acme-data/acme-data-scheduling/build.gradle.kts b/acme-data/acme-data-scheduling/build.gradle.kts index 2a2ca13..5f3ff27 100644 --- a/acme-data/acme-data-scheduling/build.gradle.kts +++ b/acme-data/acme-data-scheduling/build.gradle.kts @@ -7,12 +7,13 @@ dependencies { implementation(project(":acme-domain:acme-domain-core")) implementation(project(":acme-domain:acme-domain-scheduling")) implementation(project(":acme-lib:acme-lib-serialization")) - implementation(libs.io.github.microutils.kotlin.logging.jvm) + implementation(libs.io.github.oshai.kotlin.logging.jvm) implementation(libs.org.jetbrains.kotlinx.kotlinx.coroutines.core) testImplementation(project(":acme-lib:acme-lib-liquibase")) testImplementation(libs.com.zaxxer.hikariCP) testImplementation(libs.org.postgresql) + testImplementation(libs.org.slf4j.slf4j.api) testImplementation(libs.org.testcontainers.postgresql) testImplementation(libs.io.kotest.kotest.runner.junit5) } diff --git a/acme-data/acme-data-scheduling/src/test/kotlin/com/acme/scheduling/data/JooqAndPostgresListener.kt b/acme-data/acme-data-scheduling/src/test/kotlin/com/acme/scheduling/data/JooqAndPostgresListener.kt index 2138505..2d7f60a 100644 --- a/acme-data/acme-data-scheduling/src/test/kotlin/com/acme/scheduling/data/JooqAndPostgresListener.kt +++ b/acme-data/acme-data-scheduling/src/test/kotlin/com/acme/scheduling/data/JooqAndPostgresListener.kt @@ -2,9 +2,9 @@ package com.acme.scheduling.data import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource +import io.github.oshai.kotlinlogging.KotlinLogging import io.kotest.core.listeners.TestListener import io.kotest.core.spec.Spec -import mu.KotlinLogging import org.jooq.Configuration import org.jooq.SQLDialect import org.jooq.exception.DataAccessException @@ -33,7 +33,7 @@ class JooqAndPostgresListener : TestListener { } } } catch (e: TestTransactionException) { - logger.debug(e.message) + logger.debug { e.message } } } diff --git a/acme-domain/acme-domain-core/build.gradle.kts b/acme-domain/acme-domain-core/build.gradle.kts index 8c2cba6..8a5ae22 100644 --- a/acme-domain/acme-domain-core/build.gradle.kts +++ b/acme-domain/acme-domain-core/build.gradle.kts @@ -5,7 +5,8 @@ plugins { dependencies { implementation(project(":acme-lib:acme-lib-serialization")) - implementation(libs.io.github.microutils.kotlin.logging.jvm) + implementation(libs.io.github.oshai.kotlin.logging.jvm) testImplementation(project(":acme-lib:acme-lib-liquibase")) testImplementation(libs.io.kotest.kotest.runner.junit5) + testImplementation(libs.org.slf4j.slf4j.api) } diff --git a/acme-domain/acme-domain-core/src/main/kotlin/com/acme/core/DefaultMessageBus.kt b/acme-domain/acme-domain-core/src/main/kotlin/com/acme/core/DefaultMessageBus.kt index cc17844..115979b 100644 --- a/acme-domain/acme-domain-core/src/main/kotlin/com/acme/core/DefaultMessageBus.kt +++ b/acme-domain/acme-domain-core/src/main/kotlin/com/acme/core/DefaultMessageBus.kt @@ -1,6 +1,6 @@ package com.acme.core -import mu.KotlinLogging +import io.github.oshai.kotlinlogging.KotlinLogging import kotlin.reflect.KClass class DefaultMessageBus( @@ -49,7 +49,7 @@ class DefaultMessageBus( it(event, unitOfWork) queue.addAll(unitOfWork.events) } catch (e: Exception) { - logger.error("Unable to handle event", e) + logger.error(e) {"Unable to handle event" } throw e } } diff --git a/acme-domain/acme-domain-scheduling/build.gradle.kts b/acme-domain/acme-domain-scheduling/build.gradle.kts index ed0f550..bce9e1d 100644 --- a/acme-domain/acme-domain-scheduling/build.gradle.kts +++ b/acme-domain/acme-domain-scheduling/build.gradle.kts @@ -9,4 +9,5 @@ dependencies { api(project(":acme-domain:acme-domain-core")) testImplementation(project(":acme-lib:acme-lib-liquibase")) testImplementation(libs.io.kotest.kotest.runner.junit5) + testImplementation(libs.org.slf4j.slf4j.api) } diff --git a/acme-web/acme-web-server-test/build.gradle.kts b/acme-web/acme-web-server-test/build.gradle.kts index 4bac902..c1d4071 100644 --- a/acme-web/acme-web-server-test/build.gradle.kts +++ b/acme-web/acme-web-server-test/build.gradle.kts @@ -5,7 +5,7 @@ plugins { dependencies { implementation(project(":acme-domain:acme-domain-core")) - implementation(libs.io.github.microutils.kotlin.logging.jvm) + implementation(libs.io.github.oshai.kotlin.logging.jvm) implementation(libs.org.slf4j.slf4j.api) testImplementation(project(":acme-web:acme-web-server")) testImplementation(project(":acme-lib:acme-lib-liquibase")) diff --git a/acme-web/acme-web-server/build.gradle.kts b/acme-web/acme-web-server/build.gradle.kts index 944fa35..9a8c257 100644 --- a/acme-web/acme-web-server/build.gradle.kts +++ b/acme-web/acme-web-server/build.gradle.kts @@ -27,7 +27,7 @@ dependencies { implementation(libs.ch.qos.logback.logback.classic) implementation(libs.com.michael.bull.kotlin.coroutines.jdbc) implementation(libs.com.zaxxer.hikariCP) - implementation(libs.io.github.microutils.kotlin.logging.jvm) + implementation(libs.io.github.oshai.kotlin.logging.jvm) implementation(libs.io.ktor.ktor.client.content.negotiation) implementation(libs.io.ktor.ktor.client.java) implementation(libs.io.ktor.ktor.serialization.kotlinx.json) diff --git a/acme-web/acme-web-server/src/main/kotlin/com/acme/web/server/core/ktor/plugins.kt b/acme-web/acme-web-server/src/main/kotlin/com/acme/web/server/core/ktor/plugins.kt index e51ca21..636e818 100644 --- a/acme-web/acme-web-server/src/main/kotlin/com/acme/web/server/core/ktor/plugins.kt +++ b/acme-web/acme-web-server/src/main/kotlin/com/acme/web/server/core/ktor/plugins.kt @@ -30,10 +30,10 @@ import io.ktor.server.request.httpMethod import io.ktor.server.request.path import io.ktor.server.routing.IgnoreTrailingSlash import kotlinx.serialization.json.Json -import mu.KotlinLogging +import org.slf4j.LoggerFactory import java.util.UUID -private val appLogger = KotlinLogging.logger {} +private val appLogger = LoggerFactory.getLogger("com.acme.web.server.core.ktor") fun Application.installCallLogging() { install(CallLogging) { diff --git a/acme-web/acme-web-server/src/test/kotlin/com/acme/web/server/scheduling/etc.kt b/acme-web/acme-web-server/src/test/kotlin/com/acme/web/server/scheduling/etc.kt index 8e681e8..31db18e 100644 --- a/acme-web/acme-web-server/src/test/kotlin/com/acme/web/server/scheduling/etc.kt +++ b/acme-web/acme-web-server/src/test/kotlin/com/acme/web/server/scheduling/etc.kt @@ -3,11 +3,11 @@ package com.acme.web.server.scheduling import com.acme.web.server.core.toJsonPointer import com.zaxxer.hikari.HikariConfig import com.zaxxer.hikari.HikariDataSource +import io.github.oshai.kotlinlogging.KotlinLogging import io.kotest.core.Tag import jakarta.validation.ConstraintViolation import jakarta.validation.Validation import jakarta.validation.Validator -import mu.KotlinLogging import org.jooq.Configuration import org.jooq.SQLDialect import org.jooq.exception.DataAccessException @@ -50,7 +50,7 @@ fun testTransaction(block: (config: Configuration) -> Unit) { } } } catch (e: TestTransactionException) { - logger.debug(e.message) + logger.debug { e.message } } } diff --git a/buildSrc/src/main/kotlin/acme.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/acme.kotlin-conventions.gradle.kts index b61a53b..7974b3c 100644 --- a/buildSrc/src/main/kotlin/acme.kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/acme.kotlin-conventions.gradle.kts @@ -19,7 +19,7 @@ java { } jacoco { - toolVersion = "0.8.7" + toolVersion = "0.8.9" } spotless { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index efaf2e3..a134054 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,31 +1,31 @@ [versions] com-appmattus-fixture = "1.2.0" io-jaegertracing = "1.8.1" -io-kotest = "5.5.5" -io-ktor = "2.3.3" -io-opentelemetry = "1.23.0" +io-kotest = "5.7.2" +io-ktor = "2.3.4" +io-opentelemetry = "1.30.1" kotlin = "1.9.10" org-jooq = "3.17.4" -org-junit-jupiter = "5.9.1" -org-seleniumhq-selenium = "4.6.0" +org-junit-jupiter = "5.10.0" +org-seleniumhq-selenium = "4.13.0" [libraries] am-ik-timeflake-timeflake4j = "am.ik.timeflake:timeflake4j:1.4.0" -ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.4.5" +ch-qos-logback-logback-classic = "ch.qos.logback:logback-classic:1.4.11" com-appmattus-fixture = { module = "com.appmattus.fixture:fixture", version.ref = "com-appmattus-fixture" } com-appmattus-fixture-fixture-javafaker = { module = "com.appmattus.fixture:fixture-javafaker", version.ref = "com-appmattus-fixture" } # @keep this version, it's used in buildSrc and the update plugin doens't recognize it com-diffplug-spotless-gradle-plugin = "com.diffplug.spotless:spotless-plugin-gradle:6.6.1" com-github-java-json-tools-json-schema-validator = "com.github.java-json-tools:json-schema-validator:2.2.14" -com-googlecode-libphonenumber = "com.googlecode.libphonenumber:libphonenumber:8.13.0" -com-mattbertolini-liquibase-slf4j = "com.mattbertolini:liquibase-slf4j:4.1.0" +com-googlecode-libphonenumber = "com.googlecode.libphonenumber:libphonenumber:8.13.21" +com-mattbertolini-liquibase-slf4j = "com.mattbertolini:liquibase-slf4j:5.0.0" com-michael-bull-kotlin-coroutines-jdbc = "com.michael-bull.kotlin-coroutines-jdbc:kotlin-coroutines-jdbc:1.0.2" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" -io-github-bonigarcia-selenium-jupiter = "io.github.bonigarcia:selenium-jupiter:4.3.2" -io-github-microutils-kotlin-logging-jvm = "io.github.microutils:kotlin-logging-jvm:3.0.4" +io-github-bonigarcia-selenium-jupiter = "io.github.bonigarcia:selenium-jupiter:4.3.7" +io-github-oshai-kotlin-logging-jvm = "io.github.oshai:kotlin-logging-jvm:5.1.0" io-jaegertracing-jaeger-micrometer = { module = "io.jaegertracing:jaeger-micrometer", version.ref = "io-jaegertracing" } io-jaegertracing-jaeger-thrift = { module = "io.jaegertracing:jaeger-thrift", version.ref = "io-jaegertracing" } -io-kotest-extensions-kotest-assertions-ktor = "io.kotest.extensions:kotest-assertions-ktor:1.0.3" +io-kotest-extensions-kotest-assertions-ktor = "io.kotest.extensions:kotest-assertions-ktor:2.0.0" io-kotest-kotest-assertions-core = { module = "io.kotest:kotest-assertions-core", version.ref = "io-kotest" } io-kotest-kotest-assertions-json = { module = "io.kotest:kotest-assertions-json", version.ref = "io-kotest" } io-kotest-kotest-runner-junit5 = { module = "io.kotest:kotest-runner-junit5", version.ref = "io-kotest" } @@ -47,26 +47,26 @@ io-ktor-ktor-server-locations = { module = "io.ktor:ktor-server-locations", vers io-ktor-ktor-server-metrics-micrometer = { module = "io.ktor:ktor-server-metrics-micrometer", version.ref = "io-ktor" } io-ktor-ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "io-ktor" } io-ktor-ktor-server-status-pages = { module = "io.ktor:ktor-server-status-pages", version.ref = "io-ktor" } -io-micrometer-micrometer-registry-prometheus = "io.micrometer:micrometer-registry-prometheus:1.10.1" -io-opentelemetry-javaagent-opentelemetry-javaagent = "io.opentelemetry.javaagent:opentelemetry-javaagent:1.20.1" +io-micrometer-micrometer-registry-prometheus = "io.micrometer:micrometer-registry-prometheus:1.11.4" +io-opentelemetry-javaagent-opentelemetry-javaagent = "io.opentelemetry.javaagent:opentelemetry-javaagent:1.30.0" io-opentelemetry-opentelemetry-api = { module = "io.opentelemetry:opentelemetry-api", version.ref = "io-opentelemetry" } io-opentelemetry-opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version.ref = "io-opentelemetry" } io-opentelemetry-opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", version.ref = "io-opentelemetry" } io-opentracing-opentracing-api = "io.opentracing:opentracing-api:0.33.0" jakarta-validation-jakarta-validation-api = "jakarta.validation:jakarta.validation-api:3.0.2" -net-logstash-logback-logstash-logback-encoder = "net.logstash.logback:logstash-logback-encoder:7.2" -net-sizovs-pipelinr = "net.sizovs:pipelinr:0.7" +net-logstash-logback-logstash-logback-encoder = "net.logstash.logback:logstash-logback-encoder:7.4" +net-sizovs-pipelinr = "net.sizovs:pipelinr:0.8" net-datafaker-datafaker = "net.datafaker:datafaker:2.0.1" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1" -org-glassfish-jakarta-el = "org.glassfish:jakarta.el:4.0.2" -org-hibernate-validator-hibernate-validator = "org.hibernate.validator:hibernate-validator:8.0.0.Final" +org-glassfish-jakarta-el = "org.glassfish:jakarta.el:5.0.0-M1" +org-hibernate-validator-hibernate-validator = "org.hibernate.validator:hibernate-validator:8.0.1.Final" org-jetbrains-annotations = "org.jetbrains:annotations:13.0" # @keep this version, it's used in buildSrc and the update plugin doesn't recognize it org-jetbrains-kotlin-jvm-gradle-plugin = { module = "org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin", version.ref = "kotlin" } # @keep this version, it's used in buildSrc and the update plugin doens't recognize it org-jetbrains-kotlin-serialization-gradle-plugin = { module = "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin", version.ref = "kotlin" } -org-jetbrains-kotlinx-kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" -org-jetbrains-kotlinx-kotlinx-serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1" +org-jetbrains-kotlinx-kotlinx-coroutines-core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3" +org-jetbrains-kotlinx-kotlinx-serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0" # @keep this version, it's used in buildSrc and the update plugin doens't recognize it org-jlleitschuh-ktlint-gradle-plugin = "org.jlleitschuh.gradle:ktlint-gradle:10.2.1" org-jooq = { module = "org.jooq:jooq", version.ref = "org-jooq" } @@ -76,18 +76,18 @@ org-junit-jupiter-junit-jupiter-api = { module = "org.junit.jupiter:junit-jupite org-junit-jupiter-junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "org-junit-jupiter" } org-junit-platform-junit-platform-launcher = "org.junit.platform:junit-platform-launcher:1.9.1" org-liquibase-liquibase-core = "org.liquibase:liquibase-core:4.23.2" -org-postgresql = "org.postgresql:postgresql:42.5.0" +org-postgresql = "org.postgresql:postgresql:42.6.0" org-seleniumhq-selenium-selenium-chrome-driver = { module = "org.seleniumhq.selenium:selenium-chrome-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-java = { module = "org.seleniumhq.selenium:selenium-java", version.ref = "org-seleniumhq-selenium" } -org-slf4j-slf4j-api = "org.slf4j:slf4j-api:2.0.4" +org-slf4j-slf4j-api = "org.slf4j:slf4j-api:2.0.9" org-testcontainers-postgresql = "org.testcontainers:postgresql:1.19.0" -org-webjars-swagger-ui = "org.webjars:swagger-ui:4.15.5" +org-webjars-swagger-ui = "org.webjars:swagger-ui:5.7.2" org-yaml-snakeyaml = "org.yaml:snakeyaml:2.2" [plugins] -com-github-ben-manes-versions = "com.github.ben-manes.versions:0.44.0" -com-google-cloud-tools-jib = "com.google.cloud.tools.jib:3.3.1" -com-ryandens-javaagent-jib = "com.ryandens.javaagent-jib:0.4.0" -nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.7.0" -nu-studer-jooq = "nu.studer.jooq:8.0" +com-github-ben-manes-versions = "com.github.ben-manes.versions:0.48.0" +com-google-cloud-tools-jib = "com.google.cloud.tools.jib:3.4.0" +com-ryandens-javaagent-jib = "com.ryandens.javaagent-jib:0.5.0" +nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.8.1" +nu-studer-jooq = "nu.studer.jooq:8.2.1" org-hidetake-swagger-generator = "org.hidetake.swagger.generator:2.19.2"