Files
meldestelle/services/ping/ping-service/build.gradle.kts
T
2025-10-06 00:17:18 +02:00

79 lines
3.2 KiB
Kotlin

// Optimized Spring Boot ping service for testing microservice architecture
// This service demonstrates circuit breaker patterns, service discovery, and monitoring
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
// Build optimization settings
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
compilerOptions {
freeCompilerArgs.addAll("-Xjsr305=strict")
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_21)
}
}
// Configure the main class for the executable JAR
springBoot {
mainClass.set("at.mocode.ping.service.PingServiceApplicationKt")
buildInfo()
}
dependencies {
// === Platform Dependencies ===
// Ensure all versions come from the central BOM
implementation(platform(projects.platform.platformBom))
// Provide common Kotlin dependencies (coroutines, serialization, logging)
implementation(projects.platform.platformDependencies)
// Contract module for type-safe DTOs and API interface
implementation(projects.services.ping.pingApi)
// Monitoring client: tracing + zipkin + defaults
implementation(projects.infrastructure.monitoring.monitoringClient)
// === Core Spring Boot Dependencies ===
// Web starter for REST endpoints
implementation(libs.spring.boot.starter.web)
// Jackson Kotlin module for data classes and Kotlin features
implementation(libs.jackson.module.kotlin)
// Kotlin reflection for Spring Boot Kotlin serialization
implementation("org.jetbrains.kotlin:kotlin-reflect")
// Validation for request/response validation
implementation(libs.spring.boot.starter.validation)
// Spring Security for method-level authorization
implementation("org.springframework.boot:spring-boot-starter-security")
// Actuator for health checks and metrics
implementation(libs.spring.boot.starter.actuator)
// === Service Discovery ===
// Spring Cloud Consul for service registration and discovery
implementation(libs.spring.cloud.starter.consul.discovery)
// === Caching ===
// Caffeine cache for Spring Cloud LoadBalancer (resolves production cache warning)
implementation("com.github.ben-manes.caffeine:caffeine")
implementation("org.springframework:spring-context-support")
// === Resilience & Fault Tolerance ===
// Resilience4j Circuit Breaker for fault tolerance
implementation(libs.resilience4j.spring.boot3)
implementation(libs.resilience4j.reactor)
implementation(libs.spring.boot.starter.aop)
// === Monitoring & Metrics ===
// Micrometer for metrics collection and Prometheus integration
implementation(libs.micrometer.prometheus)
// === Documentation ===
// OpenAPI 3 documentation generation
implementation(libs.springdoc.openapi.starter.webmvc.ui)
// === Testing Dependencies ===
// Platform testing utilities
testImplementation(projects.platform.platformTesting)
// JVM testing bundle (JUnit, AssertJ, Mockk)
testImplementation(libs.bundles.testing.jvm)
// Spring Boot testing starter
testImplementation(libs.spring.boot.starter.test)
}