// 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 { 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) // 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) }