From 82e03978b89938219958032efb1448cc76baa181 Mon Sep 17 00:00:00 2001 From: Saumit Date: Sat, 27 Sep 2025 02:14:26 +0530 Subject: Initial snapshot - OpenTelemetry demo 2.1.3 -f --- src/fraud-detection/build.gradle.kts | 101 +++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/fraud-detection/build.gradle.kts (limited to 'src/fraud-detection/build.gradle.kts') diff --git a/src/fraud-detection/build.gradle.kts b/src/fraud-detection/build.gradle.kts new file mode 100644 index 0000000..6c94e62 --- /dev/null +++ b/src/fraud-detection/build.gradle.kts @@ -0,0 +1,101 @@ + +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import com.google.protobuf.gradle.* +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + +plugins { + kotlin("jvm") version "2.2.20" + application + id("java") + id("idea") + id("com.google.protobuf") version "0.9.5" + id("com.github.johnrengelman.shadow") version "8.1.1" +} + +group = "io.opentelemetry" +version = "1.0" + + +val grpcVersion = "1.75.0" +val protobufVersion = "4.32.1" + + +repositories { + mavenCentral() + gradlePluginPortal() +} + + + +dependencies { + implementation("com.google.protobuf:protobuf-java:${protobufVersion}") + testImplementation(kotlin("test")) + implementation(kotlin("script-runtime")) + implementation("org.apache.kafka:kafka-clients:4.1.0") + implementation("com.google.api.grpc:proto-google-common-protos:2.61.2") + implementation("io.grpc:grpc-protobuf:${grpcVersion}") + implementation("io.grpc:grpc-stub:${grpcVersion}") + implementation("io.grpc:grpc-netty:${grpcVersion}") + implementation("io.grpc:grpc-services:${grpcVersion}") + implementation("io.opentelemetry:opentelemetry-api:1.54.1") + implementation("io.opentelemetry:opentelemetry-sdk:1.54.1") + implementation("io.opentelemetry:opentelemetry-extension-annotations:1.18.0") + implementation("org.apache.logging.log4j:log4j-core:2.25.2") + implementation("org.slf4j:slf4j-api:2.0.17") + implementation("com.google.protobuf:protobuf-kotlin:${protobufVersion}") + implementation("dev.openfeature:sdk:1.18.1") + implementation("dev.openfeature.contrib.providers:flagd:0.11.15") + + if (JavaVersion.current().isJava9Compatible) { + // Workaround for @javax.annotation.Generated + // see: https://github.com/grpc/grpc-java/issues/3633 + implementation("javax.annotation:javax.annotation-api:1.3.2") + } +} + +tasks { + shadowJar { + mergeServiceFiles() + } +} + +tasks.test { + useJUnitPlatform() +} + +kotlin { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_17) + } +} + +protobuf { + protoc { + artifact = "com.google.protobuf:protoc:${protobufVersion}" + } + plugins { + + id("grpc") { + artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" + } + } + generateProtoTasks { + ofSourceSet("main").forEach { + it.plugins { + // Apply the "grpc" plugin whose spec is defined above, without + // options. Note the braces cannot be omitted, otherwise the + // plugin will not be added. This is because of the implicit way + // NamedDomainObjectContainer binds the methods. + id("grpc") { } + } + } + } +} + +application { + mainClass.set("frauddetection.MainKt") +} + +tasks.jar { + manifest.attributes["Main-Class"] = "frauddetection.MainKt" +} -- cgit v1.2.3