Files
meldestelle/infrastructure/gateway/build.gradle.kts
T
2025-08-01 11:31:29 +02:00

90 lines
3.2 KiB
Kotlin

/*plugins {
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.ktor)
alias(libs.plugins.spring.dependencyManagement)
application
}
application {
mainClass.set("at.mocode.infrastructure.gateway.ApplicationKt")
}
dependencies {
api(platform(libs.spring.boot.dependencies))
implementation(projects.platform.platformDependencies)
implementation(projects.core.coreDomain)
implementation(projects.core.coreUtils)
implementation(projects.infrastructure.auth.authClient)
implementation(projects.infrastructure.monitoring.monitoringClient)
// --- Ktor Server ---
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.netty)
implementation(libs.ktor.server.contentNegotiation)
implementation(libs.ktor.server.serialization.kotlinx.json)
implementation(libs.ktor.server.cors)
implementation(libs.ktor.server.callLogging)
implementation(libs.ktor.server.defaultHeaders)
implementation(libs.ktor.server.statusPages)
implementation(libs.ktor.server.auth)
implementation(libs.ktor.server.authJwt)
implementation(libs.ktor.server.rateLimit)
implementation(libs.ktor.server.metrics.micrometer)
// --- OpenAPI & Swagger for Ktor ---
implementation(libs.ktor.server.openapi)
implementation(libs.ktor.server.swagger)
// --- Ktor Client (damit der Gateway Anfragen an die Backend-Services weiterleiten kann) ---
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.contentNegotiation)
implementation(libs.ktor.client.serialization.kotlinx.json)
// --- Monitoring ---
implementation(libs.micrometer.prometheus)
// --- Testing ---
testImplementation(projects.platform.platformTesting)
testImplementation(libs.ktor.server.tests)
}*/
// Dieses Modul ist das API-Gateway und der einzige öffentliche Einstiegspunkt
// für alle externen Anfragen an das Meldestelle-System.
plugins {
alias(libs.plugins.kotlin.jvm)
alias(libs.plugins.kotlin.spring)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
// Konfiguriert die Hauptklasse für das ausführbare JAR.
springBoot {
mainClass.set("at.mocode.infrastructure.gateway.GatewayApplicationKt")
}
dependencies {
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
implementation(platform(projects.platform.platformBom))
// Stellt Utilities bereit
implementation(projects.core.coreUtils)
// Stellt gemeinsame Abhängigkeiten bereit.
implementation(projects.platform.platformDependencies)
// Stellt die Spring Cloud Gateway und Consul Discovery Abhängigkeiten bereit
implementation(libs.bundles.spring.cloud.gateway)
// Bindet die wiederverwendbare Logik zur JWT-Validierung ein.
implementation(projects.infrastructure.auth.authClient)
// Bindet die wiederverwendbare Logik für Metriken und Tracing ein.
implementation(projects.infrastructure.monitoring.monitoringClient)
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
}