fix(gradle) gradle.build

This commit is contained in:
stefan 2025-07-30 14:32:41 +02:00
parent ea75bbdb24
commit e504326c7e
4 changed files with 53 additions and 53 deletions

View File

@ -1,15 +1,15 @@
plugins {
// Definiert dieses Modul als ein Standard Kotlin/JVM-Modul.
// kotlin("jvm")
alias(libs.plugins.kotlin.jvm)
// Aktiviert das Kotlinx Serialization Plugin, da unsere DTOs und Enums
// als @Serializable markiert sind.
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.serialization)
}
dependencies {
// Stellt sicher, dass dieses Modul Zugriff auf die im zentralen Katalog
// definierten Bibliotheken hat.
// Stellt sicher, dass dieses Modul die zentralen Versionen aus unserem BOM (Bill of Materials)
// im platform-Modul respektiert. `api` wird verwendet, damit abhängige Module
// diese Platform-Definitionen ebenfalls "erben".
api(projects.platform.platformDependencies)
// --- Kern-Abhängigkeiten für das Domänen-Modell ---
@ -26,7 +26,7 @@ dependencies {
// Stellt moderne Datums- und Zeit-Typen wie `Instant` und `LocalDate` bereit.
api(libs.kotlinx.datetime)
// --- Test-Abhängigkeiten ---
// --- Testing ---
// Stellt die notwendigen Bibliotheken für das Schreiben von Tests bereit.
// `testImplementation` sorgt dafür, dass diese Bibliotheken nicht Teil
// des finalen produktiven Codes werden.

View File

@ -1,9 +1,14 @@
plugins {
// Wendet das Kotlin JVM Plugin über den zentralen Alias an.
alias(libs.plugins.kotlin.jvm)
}
dependencies {
// Stellt sicher, dass dieses Modul die zentralen Versionen aus unserem BOM respektiert.
api(projects.platform.platformDependencies)
// Stellt die reinen Domänen-Klassen und -Interfaces aus dem `core-domain`-Modul bereit.
// `api` ist hier zwingend, da `core-utils` eine Implementierung von `core-domain` ist.
api(projects.core.coreDomain)
// --- Coroutines & Asynchronität ---
@ -13,7 +18,8 @@ dependencies {
api(libs.exposed.core)
api(libs.exposed.dao)
api(libs.exposed.jdbc)
api(libs.exposed.kotlin.datetime)
api(libs.exposed.kotlin.datetime) // exposed-kotlin-datetime -> exposed.kotlin.datetime
// KORREKTUR: Der Alias `hikari-cp` wird zu `hikariCp` umgewandelt.
api(libs.hikari.cp)
api(libs.flyway.core)
api(libs.flyway.postgresql)
@ -22,7 +28,7 @@ dependencies {
api(libs.consul.client)
// --- Utilities ---
// KORREKTUR: Fehlende Abhängigkeit für den BigDecimalSerializer hinzugefügt.
// Stellt die BigDecimal-Implementierung für den Serializer bereit.
api(libs.bignum)
// --- Testing ---

View File

@ -1,8 +1,10 @@
package at.mocode.core.utils.discovery
import at.mocode.core.utils.config.AppConfig // AppConfig ist jetzt eine Klasse
import at.mocode.core.utils.config.AppConfig
import com.orbitz.consul.Consul
import com.orbitz.consul.model.agent.ImmutableRegistration
// KORREKTUR: Expliziter Import für die `Registration`-Klasse, die den `RegCheck` enthält.
import com.orbitz.consul.model.agent.Registration
import java.net.InetAddress
import java.util.*
@ -64,7 +66,8 @@ class ServiceRegistrar(private val appConfig: AppConfig) {
val serviceId = "$serviceName-${UUID.randomUUID()}"
val hostAddress = InetAddress.getLocalHost().hostAddress
val healthCheck = ImmutableRegistration.RegCheck.http(
// KORREKTUR: Der Aufruf erfolgt über die `Registration`-Klasse, nicht `ImmutableRegistration`.
val healthCheck = Registration.RegCheck.http(
"http://$hostAddress:$servicePort/health", // Standard-Health-Check-Pfad
10L, // Intervall in Sekunden
5L // Timeout in Sekunden

View File

@ -1,44 +1,44 @@
# This file defines all dependencies for the Meldestelle_Pro project.
# It allows for centralized version management and ensures consistency across all modules.
# Last updated: 2025-07-29
# This file is the SINGLE SOURCE OF TRUTH for all project dependencies.
# It allows for centralized version management and ensures consistency.
# Last updated: 2025-07-30
[versions]
# --- Kotlin Ecosystem ---
# Defines the primary Kotlin version for the compiler and all related plugins.
kotlin = "2.2.0"
kotlinxCoroutines = "1.9.1"
kotlinxSerialization = "1.7.1"
kotlinxDatetime = "0.6.0"
# --- Database & Persistence ---
exposed = "0.51.1"
postgresql = "42.7.3"
h2 = "2.2.224"
hikari = "5.1.0"
flyway = "10.15.2"
# --- Service Discovery ---
consulClient = "1.5.3"
micrometer = "1.12.2"
# --- Utilities ---
uuid = "0.8.4"
bignum = "0.3.9"
# --- Spring Ecosystem ---
springBoot = "3.2.5"
springDependencyManagement = "1.1.5"
springdoc = "2.5.0"
# --- Compose (UI) ---
# --- Compose UI ---
composeMultiplatform = "1.6.10"
# --- Ktor (API Layer & Client) ---
ktor = "3.0.0-beta-2" # Stable release for Ktor 3
ktor-openapi = "2.1.4"
ktor = "3.0.0-beta-2"
# --- Database & Persistence ---
exposed = "0.51.1"
postgresql = "42.7.3"
hikari = "5.1.0"
h2 = "2.2.224"
flyway = "10.15.2"
# --- Service Discovery & Monitoring ---
consulClient = "1.5.3"
micrometer = "1.12.2"
# --- Testing ---
junitJupiter = "5.10.2"
# --- Utilities ---
uuid = "0.8.4"
bignum = "0.3.9"
logback = "1.5.6"
[libraries]
# --- Kotlin & Coroutines ---
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
@ -54,70 +54,62 @@ ktor-server-netty = { module = "io.ktor:ktor-server-netty-jvm", version.ref = "k
ktor-server-contentNegotiation = { module = "io.ktor:ktor-server-content-negotiation-jvm", version.ref = "ktor" }
ktor-server-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json-jvm", version.ref = "ktor" }
ktor-server-statusPages = { module = "io.ktor:ktor-server-status-pages-jvm", version.ref = "ktor" }
ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "ktor" }
ktor-server-auth = { module = "io.ktor:ktor-server-auth-jvm", version.ref = "ktor" }
ktor-server-authJwt = { module = "io.ktor:ktor-server-auth-jwt-jvm", version.ref = "ktor" }
ktor-server-openapi = { module = "io.ktor:ktor-server-openapi", version.ref = "ktor" }
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger", version.ref = "ktor" }
ktor-server-cors = { module = "io.ktor:ktor-server-cors-jvm", version.ref = "ktor" }
ktor-server-callLogging = { module = "io.ktor:ktor-server-call-logging-jvm", version.ref = "ktor" }
ktor-server-defaultHeaders = { module = "io.ktor:ktor-server-default-headers-jvm", version.ref = "ktor" }
ktor-server-rateLimit = { module = "io.ktor:ktor-server-rate-limit-jvm", version.ref = "ktor" }
ktor-server-metrics-micrometer = { module = "io.ktor:ktor-server-metrics-micrometer-jvm", version.ref = "ktor" }
ktor-server-openapi = { module = "io.ktor:ktor-server-openapi", version.ref = "ktor" }
ktor-server-swagger = { module = "io.ktor:ktor-server-swagger", version.ref = "ktor" }
ktor-server-tests = { module = "io.ktor:ktor-server-tests-jvm", version.ref = "ktor" }
# --- Ktor Client ---
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
ktor-client-cio = { module = "io.ktor:ktor-client-cio-jvm", version.ref = "ktor" }
ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" }
ktor-client-contentNegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" }
ktor-client-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } # Eindeutiger Alias
ktor-client-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" }
# --- Spring Boot Starters ---
# --- Spring Boot ---
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web" }
spring-boot-starter-validation = { module = "org.springframework.boot:spring-boot-starter-validation" }
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator" }
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
spring-boot-starter-data-jpa = { module = "org.springframework.boot:spring-boot-starter-data-jpa" }
# Spring Web als eigenständige Abhängigkeit
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test" }
spring-web = { module = "org.springframework:spring-web" }
# --- SpringDoc (OpenAPI) ---
# springdoc-openapi-starter-webmvc-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", version.ref = "springdoc" }
springdoc-openapi-starter-common = { module = "org.springdoc:springdoc-openapi-starter-common", version.ref = "springdoc" }
# --- Datenbank-Treiber ---
postgresql-driver = { module = "org.postgresql:postgresql", version.ref = "postgresql" }
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
springdoc-openapi-starter-webmvc-ui = { module = "org.springdoc:springdoc-openapi-starter-webmvc-ui", version.ref = "springdoc" }
# --- Database & Persistence ---
exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" }
exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" }
exposed-jdbc = { module = "org.jetbrains.exposed:exposed-jdbc", version.ref = "exposed" }
exposed-kotlin-datetime = { module = "org.jetbrains.exposed:exposed-kotlin-datetime", version.ref = "exposed" }
postgresql-driver = { module = "org.postgresql:postgresql", version.ref = "postgresql" }
hikari-cp = { module = "com.zaxxer:HikariCP", version.ref = "hikari" }
h2-driver = { module = "com.h2database:h2", version.ref = "h2" }
flyway-core = { module = "org.flywaydb:flyway-core", version.ref = "flyway" }
flyway-postgresql = { module = "org.flywaydb:flyway-database-postgresql", version.ref = "flyway" }
# --- Service Discovery ---
# --- Service Discovery & Monitoring ---
consul-client = { module = "com.orbitz.consul:consul-client", version.ref = "consulClient" }
# --- Monitoring ---
micrometer-prometheus = { group = "io.micrometer", name = "micrometer-registry-prometheus", version.ref = "micrometer" }
micrometer-prometheus = { module = "io.micrometer:micrometer-registry-prometheus", version.ref = "micrometer" }
# --- Utilities ---
uuid = { module = "com.benasher44:uuid", version.ref = "uuid" }
bignum = { module = "com.ionspin.kotlin:bignum", version.ref = "bignum" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
# --- Compose ---
# --- Compose UI ---
compose-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "composeMultiplatform" }
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "composeMultiplatform" }
compose-material3 = { module = "org.jetbrains.compose.material3:material3", version.ref = "composeMultiplatform" }
compose-ui = { module = "org.jetbrains.compose.ui:ui", version.ref = "composeMultiplatform" }
compose-components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
compose-materialIconsExtended = { module = "org.jetbrains.compose.material:material-icons-extended", version.ref = "composeMultiplatform" }
# NEU: Die Bibliothek für Compose for Web (HTML)
compose-html-core = { module = "org.jetbrains.compose.html:html-core", version.ref = "composeMultiplatform" }
# NEU: Die Bibliothek für die Desktop-Plattform
compose-desktop-currentOs = { module = "org.jetbrains.compose.desktop:desktop", version.ref = "composeMultiplatform" }
# --- Testing (JUnit 5) ---
@ -125,7 +117,6 @@ junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.re
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junitJupiter" }
[plugins]
# KORREKTUR: Wir stellen sicher, dass ALLE Plugins, die wir verwenden, hier definiert sind.
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }