summaryrefslogtreecommitdiff
path: root/src/fraud-detection/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'src/fraud-detection/build.gradle.kts')
-rw-r--r--src/fraud-detection/build.gradle.kts101
1 files changed, 101 insertions, 0 deletions
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"
+}