fixing Web-App
This commit is contained in:
@@ -9,7 +9,6 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
|
|
||||||
// Wende gemeinsame Einstellungen an
|
// Wende gemeinsame Einstellungen an
|
||||||
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
|
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
|
||||||
compilerOptions {
|
compilerOptions {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ group = "at.mocode.clients"
|
|||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
|
||||||
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
||||||
|
|
||||||
jvmToolchain(21)
|
jvmToolchain(21)
|
||||||
@@ -33,21 +32,6 @@ kotlin {
|
|||||||
js(IR) {
|
js(IR) {
|
||||||
outputModuleName = "web-app"
|
outputModuleName = "web-app"
|
||||||
browser {
|
browser {
|
||||||
webpackTask {
|
|
||||||
mainOutputFileName = "web-app.js"
|
|
||||||
output.libraryTarget = "commonjs2"
|
|
||||||
}
|
|
||||||
|
|
||||||
// Development Server konfigurieren
|
|
||||||
runTask {
|
|
||||||
mainOutputFileName.set("web-app.js")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Browser-Tests komplett deaktivieren (Configuration Cache kompatibel)
|
|
||||||
testTask {
|
|
||||||
enabled = false
|
|
||||||
}
|
|
||||||
|
|
||||||
commonWebpackConfig {
|
commonWebpackConfig {
|
||||||
cssSupport { enabled = true }
|
cssSupport { enabled = true }
|
||||||
// Webpack-Mode abhängig von Build-Typ
|
// Webpack-Mode abhängig von Build-Typ
|
||||||
@@ -56,7 +40,18 @@ kotlin {
|
|||||||
else
|
else
|
||||||
KotlinWebpackConfig.Mode.DEVELOPMENT
|
KotlinWebpackConfig.Mode.DEVELOPMENT
|
||||||
}
|
}
|
||||||
|
webpackTask {
|
||||||
|
mainOutputFileName = "web-app.js"
|
||||||
|
output.libraryTarget = "commonjs2"
|
||||||
|
}
|
||||||
|
// Development Server konfigurieren
|
||||||
|
runTask {
|
||||||
|
mainOutputFileName.set("web-app.js")
|
||||||
|
}
|
||||||
|
// Browser-Tests komplett deaktivieren (Configuration Cache kompatibel)
|
||||||
|
testTask {
|
||||||
|
enabled = false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
binaries.executable()
|
binaries.executable()
|
||||||
}
|
}
|
||||||
@@ -72,21 +67,17 @@ kotlin {
|
|||||||
applyDefaultHierarchyTemplate()
|
applyDefaultHierarchyTemplate()
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
|
||||||
commonMain.dependencies {
|
commonMain.dependencies {
|
||||||
// Feature modules
|
// Feature modules
|
||||||
implementation(project(":clients:ping-feature"))
|
implementation(project(":clients:ping-feature"))
|
||||||
|
|
||||||
// Shared modules
|
// Shared modules
|
||||||
implementation(project(":clients:shared:common-ui"))
|
implementation(project(":clients:shared:common-ui"))
|
||||||
implementation(project(":clients:shared:navigation"))
|
implementation(project(":clients:shared:navigation"))
|
||||||
|
|
||||||
// Compose dependencies
|
// Compose dependencies
|
||||||
implementation(compose.runtime)
|
implementation(compose.runtime)
|
||||||
implementation(compose.foundation)
|
implementation(compose.foundation)
|
||||||
implementation(compose.material3)
|
implementation(compose.material3)
|
||||||
implementation(compose.ui)
|
implementation(compose.ui)
|
||||||
|
|
||||||
// ViewModel lifecycle
|
// ViewModel lifecycle
|
||||||
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
||||||
}
|
}
|
||||||
@@ -95,19 +86,14 @@ kotlin {
|
|||||||
implementation(libs.kotlinx.coroutines.swing)
|
implementation(libs.kotlinx.coroutines.swing)
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
}
|
}
|
||||||
|
|
||||||
jsMain.dependencies {
|
jsMain.dependencies {
|
||||||
implementation(npm("html-webpack-plugin", "5.6.4"))
|
implementation(npm("html-webpack-plugin", "5.6.4"))
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableWasm) {
|
if (enableWasm) {
|
||||||
val wasmJsMain by getting {
|
wasmJsMain.dependencies {
|
||||||
dependencies {
|
implementation(npm("html-webpack-plugin", "5.6.4"))
|
||||||
implementation(npm("html-webpack-plugin", "5.6.4"))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
commonTest.dependencies {
|
commonTest.dependencies {
|
||||||
implementation(libs.kotlin.test)
|
implementation(libs.kotlin.test)
|
||||||
}
|
}
|
||||||
@@ -124,7 +110,6 @@ tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Configure duplicate handling strategy for distribution tasks
|
// Configure duplicate handling strategy for distribution tasks
|
||||||
tasks.withType<Tar> {
|
tasks.withType<Tar> {
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
@@ -138,6 +123,7 @@ tasks.withType<Zip> {
|
|||||||
tasks.withType<Copy> {
|
tasks.withType<Copy> {
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType<Sync> {
|
tasks.withType<Sync> {
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,11 @@ version = "1.0.0"
|
|||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
||||||
|
|
||||||
|
jvmToolchain(21)
|
||||||
|
|
||||||
jvm()
|
jvm()
|
||||||
|
|
||||||
js {
|
js {
|
||||||
browser {
|
browser {
|
||||||
testTask {
|
testTask {
|
||||||
@@ -31,50 +35,39 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jvmToolchain(21)
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
commonMain {
|
commonMain.dependencies {
|
||||||
dependencies {
|
// Contract from backend
|
||||||
// Contract from backend
|
implementation(projects.services.ping.pingApi)
|
||||||
implementation(projects.services.ping.pingApi)
|
// UI Kit
|
||||||
|
implementation(project(":clients:shared:common-ui"))
|
||||||
// UI Kit
|
// Compose dependencies
|
||||||
implementation(project(":clients:shared:common-ui"))
|
implementation(compose.runtime)
|
||||||
|
implementation(compose.foundation)
|
||||||
// Compose dependencies
|
implementation(compose.material3)
|
||||||
implementation(compose.runtime)
|
implementation(compose.ui)
|
||||||
implementation(compose.foundation)
|
// Ktor client for HTTP calls
|
||||||
implementation(compose.material3)
|
implementation(libs.ktor.client.core)
|
||||||
implementation(compose.ui)
|
implementation(libs.ktor.client.contentNegotiation)
|
||||||
|
implementation(libs.ktor.client.serialization.kotlinx.json)
|
||||||
// Ktor client for HTTP calls
|
// Coroutines and serialization
|
||||||
implementation(libs.ktor.client.core)
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
implementation(libs.ktor.client.contentNegotiation)
|
implementation(libs.kotlinx.serialization.json)
|
||||||
implementation(libs.ktor.client.serialization.kotlinx.json)
|
// ViewModel lifecycle
|
||||||
|
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
||||||
// Coroutines and serialization
|
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
|
||||||
implementation(libs.kotlinx.serialization.json)
|
|
||||||
|
|
||||||
// ViewModel lifecycle
|
|
||||||
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
commonTest {
|
|
||||||
dependencies {
|
commonTest.dependencies {
|
||||||
implementation(libs.kotlin.test)
|
implementation(libs.kotlin.test)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
jvmMain {
|
|
||||||
dependencies {
|
jvmMain.dependencies {
|
||||||
implementation(libs.ktor.client.cio)
|
implementation(libs.ktor.client.cio)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
jsMain {
|
|
||||||
dependencies {
|
jsMain.dependencies {
|
||||||
implementation(libs.ktor.client.js)
|
implementation(libs.ktor.client.js)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,11 @@ version = "1.0.0"
|
|||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
||||||
|
|
||||||
|
jvmToolchain(21)
|
||||||
|
|
||||||
jvm()
|
jvm()
|
||||||
|
|
||||||
js {
|
js {
|
||||||
browser {
|
browser {
|
||||||
testTask {
|
testTask {
|
||||||
@@ -29,22 +33,16 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jvmToolchain(21)
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
commonMain {
|
commonMain.dependencies {
|
||||||
dependencies {
|
implementation(compose.runtime)
|
||||||
implementation(compose.runtime)
|
implementation(compose.foundation)
|
||||||
implementation(compose.foundation)
|
implementation(compose.material3)
|
||||||
implementation(compose.material3)
|
implementation(compose.ui)
|
||||||
implementation(compose.ui)
|
implementation(compose.components.resources)
|
||||||
implementation(compose.components.resources)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
commonTest {
|
commonTest.dependencies {
|
||||||
dependencies {
|
implementation(libs.kotlin.test)
|
||||||
implementation(libs.kotlin.test)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,15 @@ version = "1.0.0"
|
|||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
val enableWasm = providers.gradleProperty("enableWasm").orNull == "true"
|
||||||
|
|
||||||
|
jvmToolchain(21)
|
||||||
|
|
||||||
jvm()
|
jvm()
|
||||||
|
|
||||||
js {
|
js {
|
||||||
browser()
|
browser()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enableWasm) {
|
if (enableWasm) {
|
||||||
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
|
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
|
||||||
wasmJs {
|
wasmJs {
|
||||||
@@ -22,18 +27,12 @@ kotlin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
jvmToolchain(21)
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
commonMain {
|
commonMain.dependencies {
|
||||||
dependencies {
|
// No specific dependencies needed for navigation routes
|
||||||
// No specific dependencies needed for navigation routes
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
commonTest {
|
commonTest.dependencies {
|
||||||
dependencies {
|
implementation(libs.kotlin.test)
|
||||||
implementation(libs.kotlin.test)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
// Core domain objects of the Shared kernel
|
|
||||||
plugins {
|
plugins {
|
||||||
alias(libs.plugins.kotlinMultiplatform)
|
alias(libs.plugins.kotlinMultiplatform)
|
||||||
alias(libs.plugins.kotlinSerialization)
|
alias(libs.plugins.kotlinSerialization)
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
jvmToolchain(21)
|
||||||
|
|
||||||
jvm {
|
jvm {
|
||||||
compilerOptions {
|
compilerOptions {
|
||||||
freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
|
freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
|
||||||
@@ -16,51 +17,40 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
val commonMain by getting {
|
commonMain.dependencies {
|
||||||
dependencies {
|
// Core dependencies (that aren't included in platform-dependencies)
|
||||||
// Core dependencies (that aren't included in platform-dependencies)
|
api(libs.uuid)
|
||||||
api(libs.uuid)
|
// Serialization and date-time for commonMain
|
||||||
// Serialization and date-time for commonMain
|
api(libs.kotlinx.serialization.json)
|
||||||
api(libs.kotlinx.serialization.json)
|
api(libs.kotlinx.datetime)
|
||||||
api(libs.kotlinx.datetime)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val commonTest by getting {
|
commonTest.dependencies {
|
||||||
dependencies {
|
implementation(libs.kotlin.test)
|
||||||
implementation(libs.kotlin.test)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val jsMain by getting {
|
jsMain.dependencies {
|
||||||
dependencies {
|
api(libs.kotlinx.coroutines.core)
|
||||||
api(libs.kotlinx.coroutines.core)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val jsTest by getting {
|
jsTest.dependencies {
|
||||||
dependencies {
|
implementation(libs.kotlin.test)
|
||||||
implementation(libs.kotlin.test)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val jvmMain by getting {
|
jvmMain.dependencies {
|
||||||
dependencies {
|
// Fachliches Domain-Modul: keine technischen Abhängigkeiten hier hinterlegen.
|
||||||
// Fachliches Domain-Modul: keine technischen Abhängigkeiten hier hinterlegen.
|
// Falls in Zukunft JVM-spezifische, fachlich neutrale Ergänzungen nötig sind,
|
||||||
// Falls in Zukunft JVM-spezifische, fachlich neutrale Ergänzungen nötig sind,
|
// bitte bewusst und minimal hinzufügen.
|
||||||
// bitte bewusst und minimal hinzufügen.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val jvmTest by getting {
|
jvmTest.dependencies {
|
||||||
dependencies {
|
// implementation(kotlin("test-junit5"))
|
||||||
// implementation(kotlin("test-junit5"))
|
implementation(libs.junit.jupiter.api)
|
||||||
implementation(libs.junit.jupiter.api)
|
implementation(libs.mockk)
|
||||||
implementation(libs.mockk)
|
implementation(projects.platform.platformTesting)
|
||||||
implementation(projects.platform.platformTesting)
|
implementation(libs.bundles.testing.jvm)
|
||||||
implementation(libs.bundles.testing.jvm)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
|
jvmToolchain(21)
|
||||||
|
|
||||||
// Target platforms
|
// Target platforms
|
||||||
jvm {
|
jvm {
|
||||||
compilerOptions {
|
compilerOptions {
|
||||||
@@ -17,57 +19,41 @@ kotlin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
val commonMain by getting {
|
commonMain.dependencies {
|
||||||
dependencies {
|
// Dependency on core-domain module to use its types
|
||||||
// Dependency on core-domain module to use its types
|
api(projects.core.coreDomain)
|
||||||
api(projects.core.coreDomain)
|
// Async support (available for all platforms)
|
||||||
|
api(libs.kotlinx.coroutines.core)
|
||||||
// Async support (available for all platforms)
|
// Utilities (multiplatform compatible)
|
||||||
api(libs.kotlinx.coroutines.core)
|
api(libs.bignum)
|
||||||
|
|
||||||
// Utilities (multiplatform compatible)
|
|
||||||
api(libs.bignum)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val commonTest by getting {
|
commonTest.dependencies {
|
||||||
dependencies {
|
implementation(libs.kotlin.test)
|
||||||
implementation(libs.kotlin.test)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val jvmMain by getting {
|
jvmMain.dependencies {
|
||||||
dependencies {
|
// JVM-specific dependencies - access to central catalog
|
||||||
// JVM-specific dependencies - access to central catalog
|
api(projects.platform.platformDependencies)
|
||||||
api(projects.platform.platformDependencies)
|
// Database Management (JVM-specific)
|
||||||
|
api(libs.bundles.exposed)
|
||||||
// Database Management (JVM-specific)
|
api(libs.bundles.flyway)
|
||||||
api(libs.bundles.exposed)
|
api(libs.hikari.cp)
|
||||||
api(libs.bundles.flyway)
|
// Service Discovery (JVM-specific)
|
||||||
api(libs.hikari.cp)
|
api(libs.spring.cloud.starter.consul.discovery)
|
||||||
|
// Logging (JVM-specific)
|
||||||
// Service Discovery (JVM-specific)
|
api(libs.kotlin.logging.jvm)
|
||||||
api(libs.spring.cloud.starter.consul.discovery)
|
// Jakarta Annotation API
|
||||||
|
api(libs.jakarta.annotation.api)
|
||||||
// Logging (JVM-specific)
|
// JSON Processing
|
||||||
api(libs.kotlin.logging.jvm)
|
api(libs.jackson.module.kotlin)
|
||||||
|
api(libs.jackson.datatype.jsr310)
|
||||||
// Jakarta Annotation API
|
|
||||||
api(libs.jakarta.annotation.api)
|
|
||||||
|
|
||||||
// JSON Processing
|
|
||||||
api(libs.jackson.module.kotlin)
|
|
||||||
api(libs.jackson.datatype.jsr310)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
jvmTest.dependencies {
|
||||||
val jvmTest by getting {
|
// Testing (JVM-specific)
|
||||||
dependencies {
|
implementation(projects.platform.platformTesting)
|
||||||
// Testing (JVM-specific)
|
implementation(libs.bundles.testing.jvm)
|
||||||
implementation(projects.platform.platformTesting)
|
runtimeOnly(libs.postgresql.driver)
|
||||||
implementation(libs.bundles.testing.jvm)
|
|
||||||
runtimeOnly(libs.postgresql.driver)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,24 +28,18 @@ java {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Stellt gemeinsame Abhängigkeiten wie Coroutines und Logging bereit.
|
// Stellt gemeinsame Abhängigkeiten wie Coroutines und Logging bereit.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Stellt Domänenobjekte und technische Utilities bereit.
|
// Stellt Domänenobjekte und technische Utilities bereit.
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// Spring Security für OAuth2-Client-Funktionalität und JWT-Verarbeitung.
|
// Spring Security für OAuth2-Client-Funktionalität und JWT-Verarbeitung.
|
||||||
implementation(libs.spring.boot.starter.oauth2.client)
|
implementation(libs.spring.boot.starter.oauth2.client)
|
||||||
implementation(libs.spring.boot.starter.security)
|
implementation(libs.spring.boot.starter.security)
|
||||||
implementation(libs.spring.security.oauth2.jose)
|
implementation(libs.spring.security.oauth2.jose)
|
||||||
|
|
||||||
// Bibliothek zur einfachen Handhabung von JWTs.
|
// Bibliothek zur einfachen Handhabung von JWTs.
|
||||||
implementation(libs.auth0.java.jwt)
|
implementation(libs.auth0.java.jwt)
|
||||||
|
|
||||||
// JSON-Serialization für konsistente API-Datenverarbeitung.
|
// JSON-Serialization für konsistente API-Datenverarbeitung.
|
||||||
implementation(libs.kotlinx.serialization.json)
|
implementation(libs.kotlinx.serialization.json)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,39 +23,28 @@ springBoot {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Stellt gemeinsame Abhängigkeiten bereit.
|
// Stellt gemeinsame Abhängigkeiten bereit.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Nutzt die Client-Logik für die Kommunikation mit Keycloak.
|
// Nutzt die Client-Logik für die Kommunikation mit Keycloak.
|
||||||
implementation(projects.infrastructure.auth.authClient)
|
implementation(projects.infrastructure.auth.authClient)
|
||||||
|
|
||||||
// Spring Boot Starter für einen Web-Service.
|
// Spring Boot Starter für einen Web-Service.
|
||||||
// OPTIMIERUNG: Verwendung des `spring-boot-essentials`-Bundles.
|
// OPTIMIERUNG: Verwendung des `spring-boot-essentials`-Bundles.
|
||||||
implementation(libs.bundles.spring.boot.essentials)
|
implementation(libs.bundles.spring.boot.essentials)
|
||||||
|
|
||||||
// Spring Security für die Absicherung des Servers.
|
// Spring Security für die Absicherung des Servers.
|
||||||
implementation(libs.spring.boot.starter.security)
|
implementation(libs.spring.boot.starter.security)
|
||||||
implementation(libs.spring.boot.starter.oauth2.resource.server)
|
implementation(libs.spring.boot.starter.oauth2.resource.server)
|
||||||
|
|
||||||
// Keycloak Admin Client zur Verwaltung von Benutzern und Realms.
|
// Keycloak Admin Client zur Verwaltung von Benutzern und Realms.
|
||||||
implementation(libs.keycloak.admin.client)
|
implementation(libs.keycloak.admin.client)
|
||||||
|
|
||||||
// API-Dokumentation mit OpenAPI/Swagger.
|
// API-Dokumentation mit OpenAPI/Swagger.
|
||||||
implementation(libs.springdoc.openapi.starter.webmvc.ui)
|
implementation(libs.springdoc.openapi.starter.webmvc.ui)
|
||||||
|
|
||||||
// Monitoring und Metriken für Production-Readiness.
|
// Monitoring und Metriken für Production-Readiness.
|
||||||
implementation(libs.bundles.monitoring.client)
|
implementation(libs.bundles.monitoring.client)
|
||||||
|
|
||||||
// JSON-Serialization für API-Responses.
|
// JSON-Serialization für API-Responses.
|
||||||
implementation(libs.kotlinx.serialization.json)
|
implementation(libs.kotlinx.serialization.json)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
|
|
||||||
// Testcontainers für Integration Tests
|
// Testcontainers für Integration Tests
|
||||||
testImplementation(libs.bundles.testcontainers)
|
testImplementation(libs.bundles.testcontainers)
|
||||||
|
|
||||||
// SLF4J provider for tests
|
// SLF4J provider for tests
|
||||||
testImplementation(libs.logback.classic)
|
testImplementation(libs.logback.classic)
|
||||||
testImplementation(libs.logback.core)
|
testImplementation(libs.logback.core)
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ dependencies {
|
|||||||
api(platform(projects.platform.platformBom))
|
api(platform(projects.platform.platformBom))
|
||||||
// Stellt gemeinsame Abhängigkeiten wie Logging bereit und exportiert sie für Konsumenten der API.
|
// Stellt gemeinsame Abhängigkeiten wie Logging bereit und exportiert sie für Konsumenten der API.
|
||||||
api(projects.platform.platformDependencies)
|
api(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Stellt Test-Abhängigkeiten bereit.
|
// Stellt Test-Abhängigkeiten bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,14 +26,11 @@ java {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
||||||
api(platform(projects.platform.platformBom))
|
api(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Implementiert die provider-agnostische Caching-API.
|
// Implementiert die provider-agnostische Caching-API.
|
||||||
implementation(projects.infrastructure.cache.cacheApi)
|
implementation(projects.infrastructure.cache.cacheApi)
|
||||||
|
|
||||||
// OPTIMIERUNG: Verwendung des `redis-cache`-Bundles aus libs.versions.toml.
|
// OPTIMIERUNG: Verwendung des `redis-cache`-Bundles aus libs.versions.toml.
|
||||||
// Dieses Bundle enthält Spring Data Redis, Lettuce und Jackson-Module.
|
// Dieses Bundle enthält Spring Data Redis, Lettuce und Jackson-Module.
|
||||||
implementation(libs.bundles.redis.cache)
|
implementation(libs.bundles.redis.cache)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
testImplementation(libs.bundles.testing.jvm)
|
testImplementation(libs.bundles.testing.jvm)
|
||||||
|
|||||||
@@ -27,17 +27,14 @@ dependencies {
|
|||||||
// === Core Dependencies ===
|
// === Core Dependencies ===
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
|
||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Abhängigkeit zu den Core-Modulen, um auf Domänenobjekte (Events)
|
// Abhängigkeit zu den Core-Modulen, um auf Domänenobjekte (Events)
|
||||||
// und technische Hilfsklassen zugreifen zu können
|
// und technische Hilfsklassen zugreifen zu können
|
||||||
api(projects.core.coreDomain)
|
api(projects.core.coreDomain)
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// === Test Dependencies ===
|
// === Test Dependencies ===
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
testImplementation(libs.bundles.testing.jvm)
|
testImplementation(libs.bundles.testing.jvm)
|
||||||
|
|
||||||
// Für erweiterte Test-Unterstützung bei API-Tests
|
// Für erweiterte Test-Unterstützung bei API-Tests
|
||||||
testImplementation(libs.kotlinx.coroutines.test)
|
testImplementation(libs.kotlinx.coroutines.test)
|
||||||
}
|
}
|
||||||
@@ -46,7 +43,6 @@ dependencies {
|
|||||||
// Optimiert die Test-Ausführung
|
// Optimiert die Test-Ausführung
|
||||||
tasks.test {
|
tasks.test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
|
||||||
// Parallelisierung für bessere Performance
|
// Parallelisierung für bessere Performance
|
||||||
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
|
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,31 +20,24 @@ dependencies {
|
|||||||
// === Core Dependencies ===
|
// === Core Dependencies ===
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
|
||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Implementiert die provider-agnostische Event-Store-API
|
// Implementiert die provider-agnostische Event-Store-API
|
||||||
api(projects.infrastructure.eventStore.eventStoreApi)
|
api(projects.infrastructure.eventStore.eventStoreApi)
|
||||||
|
|
||||||
// Benötigt Zugriff auf Core-Module für Domänen-Events und Utilities
|
// Benötigt Zugriff auf Core-Module für Domänen-Events und Utilities
|
||||||
implementation(projects.core.coreDomain)
|
implementation(projects.core.coreDomain)
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// === Redis & Spring Dependencies ===
|
// === Redis & Spring Dependencies ===
|
||||||
// OPTIMIERUNG: Wiederverwendung des `redis-cache`-Bundles, da es die
|
// OPTIMIERUNG: Wiederverwendung des `redis-cache`-Bundles, da es die
|
||||||
// gleichen Technologien (Spring Data Redis, Lettuce, Jackson) verwendet
|
// gleichen Technologien (Spring Data Redis, Lettuce, Jackson) verwendet
|
||||||
implementation(libs.bundles.redis.cache)
|
implementation(libs.bundles.redis.cache)
|
||||||
|
|
||||||
// Stellt Jakarta Annotations bereit (z. B. @PostConstruct), die von Spring verwendet werden
|
// Stellt Jakarta Annotations bereit (z. B. @PostConstruct), die von Spring verwendet werden
|
||||||
implementation(libs.jakarta.annotation.api)
|
implementation(libs.jakarta.annotation.api)
|
||||||
|
|
||||||
// Für Kotlin-spezifische Coroutines-Integration mit Spring
|
// Für Kotlin-spezifische Coroutines-Integration mit Spring
|
||||||
implementation(libs.kotlinx.coroutines.reactor)
|
implementation(libs.kotlinx.coroutines.reactor)
|
||||||
|
|
||||||
// === Test Dependencies ===
|
// === Test Dependencies ===
|
||||||
// Fügt JUnit, Mockk, AssertJ etc. für die Tests hinzu
|
// Fügt JUnit, Mockk, AssertJ etc. für die Tests hinzu
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
testImplementation(libs.bundles.testing.jvm)
|
testImplementation(libs.bundles.testing.jvm)
|
||||||
testImplementation(libs.bundles.testcontainers)
|
testImplementation(libs.bundles.testcontainers)
|
||||||
|
|
||||||
// Zusätzliche Test-Dependencies für erweiterte Event-Store-Tests
|
// Zusätzliche Test-Dependencies für erweiterte Event-Store-Tests
|
||||||
testImplementation(libs.kotlinx.serialization.json)
|
testImplementation(libs.kotlinx.serialization.json)
|
||||||
testImplementation(libs.reactor.test)
|
testImplementation(libs.reactor.test)
|
||||||
@@ -65,10 +58,8 @@ tasks.jar {
|
|||||||
// Optimiert die Test-Ausführung
|
// Optimiert die Test-Ausführung
|
||||||
tasks.test {
|
tasks.test {
|
||||||
useJUnitPlatform()
|
useJUnitPlatform()
|
||||||
|
|
||||||
// Verbesserte Test-Performance für Testcontainer
|
// Verbesserte Test-Performance für Testcontainer
|
||||||
systemProperty("testcontainers.reuse.enable", "true")
|
systemProperty("testcontainers.reuse.enable", "true")
|
||||||
|
|
||||||
// Parallelisierung für bessere Performance
|
// Parallelisierung für bessere Performance
|
||||||
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
|
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,6 @@ dependencies {
|
|||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
// Stellt gemeinsame Abhängigkeiten bereit.
|
// Stellt gemeinsame Abhängigkeiten bereit.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Stellt die Spring Cloud Gateway und Consul Discovery Abhängigkeiten bereit
|
// Stellt die Spring Cloud Gateway und Consul Discovery Abhängigkeiten bereit
|
||||||
implementation(libs.bundles.spring.cloud.gateway)
|
implementation(libs.bundles.spring.cloud.gateway)
|
||||||
// Circuit Breaker (Resilience4j) für Gateway Filter - optimiert mit libs reference
|
// Circuit Breaker (Resilience4j) für Gateway Filter - optimiert mit libs reference
|
||||||
@@ -44,21 +43,17 @@ dependencies {
|
|||||||
implementation(libs.spring.boot.starter.webflux)
|
implementation(libs.spring.boot.starter.webflux)
|
||||||
// Spring Security (WebFlux) – benötigt für SecurityWebFilterChain-Konfiguration
|
// Spring Security (WebFlux) – benötigt für SecurityWebFilterChain-Konfiguration
|
||||||
implementation(libs.spring.boot.starter.security)
|
implementation(libs.spring.boot.starter.security)
|
||||||
|
|
||||||
// Bindet die wiederverwendbare Logik zur JWT-Validierung ein.
|
// Bindet die wiederverwendbare Logik zur JWT-Validierung ein.
|
||||||
implementation(projects.infrastructure.auth.authClient)
|
implementation(projects.infrastructure.auth.authClient)
|
||||||
|
|
||||||
// Bindet die wiederverwendbare Logik für Metriken und Tracing ein.
|
// Bindet die wiederverwendbare Logik für Metriken und Tracing ein.
|
||||||
implementation(projects.infrastructure.monitoring.monitoringClient)
|
implementation(projects.infrastructure.monitoring.monitoringClient)
|
||||||
// Explizite Actuator-Abhängigkeit für Health Indicators (benötigt für GatewayHealthIndicator)
|
// Explizite Actuator-Abhängigkeit für Health Indicators (benötigt für GatewayHealthIndicator)
|
||||||
// Obwohl bereits im monitoring-client Bundle, wird durch 'implementation' nicht transitiv verfügbar
|
// Obwohl bereits im monitoring-client Bundle, wird durch 'implementation' nicht transitiv verfügbar
|
||||||
implementation(libs.spring.boot.starter.actuator)
|
implementation(libs.spring.boot.starter.actuator)
|
||||||
|
|
||||||
// Logback-Abhängigkeiten - Versionen werden von Spring Boot BOM verwaltet
|
// Logback-Abhängigkeiten - Versionen werden von Spring Boot BOM verwaltet
|
||||||
implementation("ch.qos.logback:logback-classic")
|
implementation("ch.qos.logback:logback-classic")
|
||||||
implementation("ch.qos.logback:logback-core")
|
implementation("ch.qos.logback:logback-core")
|
||||||
implementation("org.slf4j:slf4j-api")
|
implementation("org.slf4j:slf4j-api")
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
testImplementation(libs.bundles.testing.jvm)
|
testImplementation(libs.bundles.testing.jvm)
|
||||||
@@ -67,7 +62,6 @@ dependencies {
|
|||||||
testImplementation("ch.qos.logback:logback-core")
|
testImplementation("ch.qos.logback:logback-core")
|
||||||
testImplementation("org.slf4j:slf4j-api")
|
testImplementation("org.slf4j:slf4j-api")
|
||||||
// Redundante Security-Abhängigkeit im Testkontext entfernt (bereits durch platform-testing abgedeckt)
|
// Redundante Security-Abhängigkeit im Testkontext entfernt (bereits durch platform-testing abgedeckt)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.test {
|
tasks.test {
|
||||||
|
|||||||
@@ -28,10 +28,8 @@ dependencies {
|
|||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
// Baut auf der zentralen Kafka-Konfiguration auf und erbt deren Abhängigkeiten.
|
// Baut auf der zentralen Kafka-Konfiguration auf und erbt deren Abhängigkeiten.
|
||||||
implementation(projects.infrastructure.messaging.messagingConfig)
|
implementation(projects.infrastructure.messaging.messagingConfig)
|
||||||
|
|
||||||
// Fügt die reaktive Kafka-Implementierung hinzu (Project Reactor).
|
// Fügt die reaktive Kafka-Implementierung hinzu (Project Reactor).
|
||||||
implementation(libs.reactor.kafka)
|
implementation(libs.reactor.kafka)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,12 +26,10 @@ dependencies {
|
|||||||
api(platform(projects.platform.platformBom))
|
api(platform(projects.platform.platformBom))
|
||||||
// Stellt gemeinsame Abhängigkeiten bereit.
|
// Stellt gemeinsame Abhängigkeiten bereit.
|
||||||
api(projects.platform.platformDependencies)
|
api(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// OPTIMIERUNG: Verwendung des `kafka-config`-Bundles.
|
// OPTIMIERUNG: Verwendung des `kafka-config`-Bundles.
|
||||||
// `api` wird verwendet, damit der `messaging-client` diese Konfigurationen
|
// `api` wird verwendet, damit der `messaging-client` diese Konfigurationen
|
||||||
// und Abhängigkeiten (wie Jackson) direkt nutzen kann.
|
// und Abhängigkeiten (wie Jackson) direkt nutzen kann.
|
||||||
api(libs.bundles.kafka.config)
|
api(libs.bundles.kafka.config)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,16 +7,12 @@ plugins {
|
|||||||
alias(libs.plugins.spring.dependencyManagement)
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen.
|
||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
// Stellt gemeinsame Abhängigkeiten bereit.
|
// Stellt gemeinsame Abhängigkeiten bereit.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// OPTIMIERUNG: Verwendung des `monitoring-client`-Bundles.
|
// OPTIMIERUNG: Verwendung des `monitoring-client`-Bundles.
|
||||||
// Es enthält Spring Boot Actuator, Micrometer Prometheus und Zipkin Tracing.
|
// Es enthält Spring Boot Actuator, Micrometer Prometheus und Zipkin Tracing.
|
||||||
implementation(libs.bundles.monitoring.client)
|
implementation(libs.bundles.monitoring.client)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,16 +17,13 @@ dependencies {
|
|||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
// Stellt gemeinsame Abhängigkeiten bereit.
|
// Stellt gemeinsame Abhängigkeiten bereit.
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Spring Boot Starter für einen einfachen Web-Service.
|
// Spring Boot Starter für einen einfachen Web-Service.
|
||||||
implementation(libs.spring.boot.starter.web)
|
implementation(libs.spring.boot.starter.web)
|
||||||
implementation(libs.spring.boot.starter.actuator)
|
implementation(libs.spring.boot.starter.actuator)
|
||||||
|
|
||||||
// Abhängigkeiten für den Zipkin-Server (UI ist via zipkin-lens bereits enthalten).
|
// Abhängigkeiten für den Zipkin-Server (UI ist via zipkin-lens bereits enthalten).
|
||||||
implementation(libs.zipkin.server)
|
implementation(libs.zipkin.server)
|
||||||
// Prometheus client für Zipkin Metriken
|
// Prometheus client für Zipkin Metriken
|
||||||
implementation(libs.micrometer.prometheus)
|
implementation(libs.micrometer.prometheus)
|
||||||
|
|
||||||
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
// Stellt alle Test-Abhängigkeiten gebündelt bereit.
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
testImplementation(libs.logback.classic) // SLF4J provider for tests
|
testImplementation(libs.logback.classic) // SLF4J provider for tests
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ dependencies {
|
|||||||
api(platform(libs.spring.cloud.dependencies)) // NEU: Spring Cloud BOM hinzugefügt
|
api(platform(libs.spring.cloud.dependencies)) // NEU: Spring Cloud BOM hinzugefügt
|
||||||
api(platform(libs.kotlin.bom))
|
api(platform(libs.kotlin.bom))
|
||||||
api(platform(libs.kotlinx.coroutines.bom))
|
api(platform(libs.kotlinx.coroutines.bom))
|
||||||
|
|
||||||
// `constraints` erzwingt spezifische Versionen für einzelne Bibliotheken.
|
// `constraints` erzwingt spezifische Versionen für einzelne Bibliotheken.
|
||||||
// Alle Versionen werden sicher aus `libs.versions.toml` bezogen.
|
// Alle Versionen werden sicher aus `libs.versions.toml` bezogen.
|
||||||
constraints {
|
constraints {
|
||||||
@@ -35,11 +34,9 @@ dependencies {
|
|||||||
api(libs.jakarta.annotation.api)
|
api(libs.jakarta.annotation.api)
|
||||||
api(libs.auth0.java.jwt)
|
api(libs.auth0.java.jwt)
|
||||||
api(libs.logback.classic)
|
api(libs.logback.classic)
|
||||||
|
|
||||||
// --- Spring & SpringDoc ---
|
// --- Spring & SpringDoc ---
|
||||||
api(libs.springdoc.openapi.starter.common)
|
api(libs.springdoc.openapi.starter.common)
|
||||||
api(libs.springdoc.openapi.starter.webmvc.ui)
|
api(libs.springdoc.openapi.starter.webmvc.ui)
|
||||||
|
|
||||||
// --- Database & Persistence ---
|
// --- Database & Persistence ---
|
||||||
api(libs.bundles.exposed)
|
api(libs.bundles.exposed)
|
||||||
api(libs.bundles.flyway)
|
api(libs.bundles.flyway)
|
||||||
@@ -47,15 +44,12 @@ dependencies {
|
|||||||
api(libs.hikari.cp)
|
api(libs.hikari.cp)
|
||||||
api(libs.h2.driver)
|
api(libs.h2.driver)
|
||||||
api(libs.lettuce.core)
|
api(libs.lettuce.core)
|
||||||
|
|
||||||
// --- Kotlinx Libraries ---
|
// --- Kotlinx Libraries ---
|
||||||
api(libs.kotlinx.serialization.json)
|
api(libs.kotlinx.serialization.json)
|
||||||
api(libs.kotlinx.datetime)
|
api(libs.kotlinx.datetime)
|
||||||
|
|
||||||
// --- Jackson Modules ---
|
// --- Jackson Modules ---
|
||||||
api(libs.jackson.module.kotlin)
|
api(libs.jackson.module.kotlin)
|
||||||
api(libs.jackson.datatype.jsr310)
|
api(libs.jackson.datatype.jsr310)
|
||||||
|
|
||||||
// --- Testcontainers ---
|
// --- Testcontainers ---
|
||||||
api(libs.bundles.testcontainers)
|
api(libs.bundles.testcontainers)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Importiert die zentrale BOM, um konsistente Versionen zu gewährleisten.
|
// Importiert die zentrale BOM, um konsistente Versionen zu gewährleisten.
|
||||||
api(platform(projects.platform.platformBom))
|
api(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Stellt die wichtigsten Kotlin(x)-Bibliotheken via `api` bereit,
|
// Stellt die wichtigsten Kotlin(x)-Bibliotheken via `api` bereit,
|
||||||
// damit jedes Modul, das von `platform-dependencies` abhängt, diese automatisch erhält.
|
// damit jedes Modul, das von `platform-dependencies` abhängt, diese automatisch erhält.
|
||||||
api(libs.kotlinx.coroutines.core)
|
api(libs.kotlinx.coroutines.core)
|
||||||
|
|||||||
@@ -7,15 +7,12 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// Importiert die zentrale BOM für konsistente Versionen.
|
// Importiert die zentrale BOM für konsistente Versionen.
|
||||||
api(platform(projects.platform.platformBom))
|
api(platform(projects.platform.platformBom))
|
||||||
|
|
||||||
// Diese Bundles sind in `libs.versions.toml` definiert.
|
// Diese Bundles sind in `libs.versions.toml` definiert.
|
||||||
api(libs.bundles.testing.jvm)
|
api(libs.bundles.testing.jvm)
|
||||||
api(libs.bundles.testcontainers)
|
api(libs.bundles.testcontainers)
|
||||||
|
|
||||||
// Macht Kafka- und Reactor-Test-Bibliotheken verfügbar
|
// Macht Kafka- und Reactor-Test-Bibliotheken verfügbar
|
||||||
api(libs.testcontainers.kafka)
|
api(libs.testcontainers.kafka)
|
||||||
api(libs.reactor.test)
|
api(libs.reactor.test)
|
||||||
|
|
||||||
// Stellt Spring Boot Test-Abhängigkeiten und die H2-Datenbank für Tests bereit.
|
// Stellt Spring Boot Test-Abhängigkeiten und die H2-Datenbank für Tests bereit.
|
||||||
api(libs.spring.boot.starter.test)
|
api(libs.spring.boot.starter.test)
|
||||||
api(libs.h2.driver)
|
api(libs.h2.driver)
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ plugins {
|
|||||||
alias(libs.plugins.kotlin.serialization)
|
alias(libs.plugins.kotlin.serialization)
|
||||||
alias(libs.plugins.ktor)
|
alias(libs.plugins.ktor)
|
||||||
application
|
application
|
||||||
|
|
||||||
// KORREKTUR 1: Dieses Plugin hinzufügen, um die Spring-BOM zu aktivieren.
|
// KORREKTUR 1: Dieses Plugin hinzufügen, um die Spring-BOM zu aktivieren.
|
||||||
alias(libs.plugins.spring.dependencyManagement)
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
}
|
}
|
||||||
@@ -16,18 +15,15 @@ application {
|
|||||||
dependencies {
|
dependencies {
|
||||||
// KORREKTUR 2: Die Spring-Boot-BOM hier explizit als Plattform deklarieren.
|
// KORREKTUR 2: Die Spring-Boot-BOM hier explizit als Plattform deklarieren.
|
||||||
api(platform(libs.spring.boot.dependencies))
|
api(platform(libs.spring.boot.dependencies))
|
||||||
|
|
||||||
// Bestehende Abhängigkeiten
|
// Bestehende Abhängigkeiten
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
implementation(projects.events.eventsDomain)
|
implementation(projects.events.eventsDomain)
|
||||||
implementation(projects.events.eventsApplication)
|
implementation(projects.events.eventsApplication)
|
||||||
implementation(projects.core.coreDomain)
|
implementation(projects.core.coreDomain)
|
||||||
implementation(projects.core.coreUtils)
|
implementation(projects.core.coreUtils)
|
||||||
|
|
||||||
// Spring dependencies (jetzt mit korrekter Version aus der BOM)
|
// Spring dependencies (jetzt mit korrekter Version aus der BOM)
|
||||||
implementation(libs.spring.web)
|
implementation(libs.spring.web)
|
||||||
implementation(libs.springdoc.openapi.starter.common)
|
implementation(libs.springdoc.openapi.starter.common)
|
||||||
|
|
||||||
// Ktor Server
|
// Ktor Server
|
||||||
implementation(libs.ktor.server.core)
|
implementation(libs.ktor.server.core)
|
||||||
implementation(libs.ktor.server.netty)
|
implementation(libs.ktor.server.netty)
|
||||||
|
|||||||
@@ -33,51 +33,39 @@ dependencies {
|
|||||||
implementation(platform(projects.platform.platformBom))
|
implementation(platform(projects.platform.platformBom))
|
||||||
// Provide common Kotlin dependencies (coroutines, serialization, logging)
|
// Provide common Kotlin dependencies (coroutines, serialization, logging)
|
||||||
implementation(projects.platform.platformDependencies)
|
implementation(projects.platform.platformDependencies)
|
||||||
|
|
||||||
// Contract module for type-safe DTOs and API interface
|
// Contract module for type-safe DTOs and API interface
|
||||||
implementation(projects.services.ping.pingApi)
|
implementation(projects.services.ping.pingApi)
|
||||||
|
|
||||||
// Monitoring client: tracing + zipkin + defaults
|
// Monitoring client: tracing + zipkin + defaults
|
||||||
implementation(projects.infrastructure.monitoring.monitoringClient)
|
implementation(projects.infrastructure.monitoring.monitoringClient)
|
||||||
|
|
||||||
// === Core Spring Boot Dependencies ===
|
// === Core Spring Boot Dependencies ===
|
||||||
// Web starter for REST endpoints
|
// Web starter for REST endpoints
|
||||||
implementation(libs.spring.boot.starter.web)
|
implementation(libs.spring.boot.starter.web)
|
||||||
// Jackson Kotlin module for data classes and Kotlin features
|
// Jackson Kotlin module for data classes and Kotlin features
|
||||||
implementation(libs.jackson.module.kotlin)
|
implementation(libs.jackson.module.kotlin)
|
||||||
|
|
||||||
// Kotlin reflection for Spring Boot Kotlin serialization
|
// Kotlin reflection for Spring Boot Kotlin serialization
|
||||||
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
implementation("org.jetbrains.kotlin:kotlin-reflect")
|
||||||
|
|
||||||
// Validation for request/response validation
|
// Validation for request/response validation
|
||||||
implementation(libs.spring.boot.starter.validation)
|
implementation(libs.spring.boot.starter.validation)
|
||||||
|
|
||||||
// Actuator for health checks and metrics
|
// Actuator for health checks and metrics
|
||||||
implementation(libs.spring.boot.starter.actuator)
|
implementation(libs.spring.boot.starter.actuator)
|
||||||
|
|
||||||
// === Service Discovery ===
|
// === Service Discovery ===
|
||||||
// Spring Cloud Consul for service registration and discovery
|
// Spring Cloud Consul for service registration and discovery
|
||||||
implementation(libs.spring.cloud.starter.consul.discovery)
|
implementation(libs.spring.cloud.starter.consul.discovery)
|
||||||
|
|
||||||
// === Caching ===
|
// === Caching ===
|
||||||
// Caffeine cache for Spring Cloud LoadBalancer (resolves production cache warning)
|
// Caffeine cache for Spring Cloud LoadBalancer (resolves production cache warning)
|
||||||
implementation("com.github.ben-manes.caffeine:caffeine")
|
implementation("com.github.ben-manes.caffeine:caffeine")
|
||||||
implementation("org.springframework:spring-context-support")
|
implementation("org.springframework:spring-context-support")
|
||||||
|
|
||||||
// === Resilience & Fault Tolerance ===
|
// === Resilience & Fault Tolerance ===
|
||||||
// Resilience4j Circuit Breaker for fault tolerance
|
// Resilience4j Circuit Breaker for fault tolerance
|
||||||
implementation(libs.resilience4j.spring.boot3)
|
implementation(libs.resilience4j.spring.boot3)
|
||||||
implementation(libs.resilience4j.reactor)
|
implementation(libs.resilience4j.reactor)
|
||||||
implementation(libs.spring.boot.starter.aop)
|
implementation(libs.spring.boot.starter.aop)
|
||||||
|
|
||||||
// === Monitoring & Metrics ===
|
// === Monitoring & Metrics ===
|
||||||
// Micrometer for metrics collection and Prometheus integration
|
// Micrometer for metrics collection and Prometheus integration
|
||||||
implementation(libs.micrometer.prometheus)
|
implementation(libs.micrometer.prometheus)
|
||||||
|
|
||||||
// === Documentation ===
|
// === Documentation ===
|
||||||
// OpenAPI 3 documentation generation
|
// OpenAPI 3 documentation generation
|
||||||
implementation(libs.springdoc.openapi.starter.webmvc.ui)
|
implementation(libs.springdoc.openapi.starter.webmvc.ui)
|
||||||
|
|
||||||
// === Testing Dependencies ===
|
// === Testing Dependencies ===
|
||||||
// Platform testing utilities
|
// Platform testing utilities
|
||||||
testImplementation(projects.platform.platformTesting)
|
testImplementation(projects.platform.platformTesting)
|
||||||
|
|||||||
Reference in New Issue
Block a user