// Driving adapter: gRPC API (skeleton machinery, transport-only). // // A SmartLifecycle bean (GrpcServerRunner) owns the io.grpc Netty server, so this module depends on // NO third-party grpc-spring-boot starter (no Spring Boot version coupling). The skeleton compiles // NO protobuf: there is no `com.google.protobuf` plugin and no `.proto` here — health + reflection // come from grpc-services at runtime, and feature `.proto`/services live in the sample module. // // io.grpc:* / protobuf versions are NOT managed by the Spring Boot BOM, and this repo has no version // catalog, so the grpc-bom + protobuf-bom platforms are imported HERE (module scope) using the root // `ext.grpcVersion` / `ext.protobufVersion` SSOT — this keeps the strict-locking blast radius to // this module (the shared root dependencyManagement block stays io.grpc-free). dependencyManagement { imports { mavenBom "io.grpc:grpc-bom:${grpcVersion}" mavenBom "com.google.protobuf:protobuf-bom:${protobufVersion}" } } dependencies { implementation project(':shared-contract') implementation 'org.springframework.boot:spring-boot-starter' implementation 'io.grpc:grpc-netty-shaded' implementation 'io.grpc:grpc-services' // health + reflection (grpc.health.v1 / reflection) annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' // The boot test directly builds generated health/reflection protobuf messages. grpc-services // does not expose protobuf-java on its compile API, so keep the narrower test-only declaration. testImplementation 'io.grpc:grpc-protobuf' }