90 lines
3.2 KiB
Kotlin
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)
|
|
|
|
}
|