2022-10-22 19:55:02 +02:00
|
|
|
import kafkatorio.extensions.dropDirectory
|
2022-09-13 17:56:57 +02:00
|
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
|
|
|
|
|
|
plugins {
|
2022-09-18 20:49:32 +02:00
|
|
|
id("kafkatorio.conventions.lang.kotlin-jvm")
|
2022-10-04 22:38:00 +02:00
|
|
|
id("dev.adamko.geedeecee")
|
2022-09-13 17:56:57 +02:00
|
|
|
kotlin("plugin.serialization")
|
|
|
|
|
application
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
description = "processors for Kafkatorio packets"
|
|
|
|
|
|
|
|
|
|
val projectId: String by project.extra
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
|
implementation(platform(projects.modules.versionsPlatform))
|
|
|
|
|
|
|
|
|
|
implementation(libs.kafka.streams)
|
2022-12-18 01:40:40 +01:00
|
|
|
implementation(kotlin("reflect"))
|
2022-09-13 17:56:57 +02:00
|
|
|
|
|
|
|
|
testImplementation(libs.kafka.streamsTestUtils)
|
|
|
|
|
|
|
|
|
|
implementation(projects.modules.eventsLibrary)
|
|
|
|
|
implementation(projects.modules.eventsProcessorCore)
|
|
|
|
|
|
|
|
|
|
implementation(libs.kotlinxSerialization.core)
|
|
|
|
|
implementation(libs.kotlinxSerialization.json)
|
|
|
|
|
|
|
|
|
|
implementation(libs.kotlinx.coroutines.core)
|
|
|
|
|
|
|
|
|
|
implementation(libs.bundles.logging)
|
|
|
|
|
|
|
|
|
|
implementation(libs.scrimage.core)
|
|
|
|
|
|
|
|
|
|
implementation(libs.okio.core)
|
|
|
|
|
|
|
|
|
|
implementation(libs.simpleSyslogParser)
|
|
|
|
|
|
|
|
|
|
implementation(libs.kafka.kotkaStreams)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
application {
|
|
|
|
|
mainClass.set("dev.adamko.kafkatorio.processors.MainKt")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tasks.withType<KotlinCompile>().configureEach {
|
|
|
|
|
kotlinOptions.freeCompilerArgs += listOf(
|
|
|
|
|
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
|
|
|
|
|
"-opt-in=kotlinx.coroutines.FlowPreview",
|
|
|
|
|
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//val startScriptEntitiesProcessor = registerStartScriptTask("EntitiesProcessor") {
|
|
|
|
|
// mainClass.set("dev.adamko.kafkatorio.processors.EntitiesProcessorKt")
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//val startScriptPacketsProcessor = registerStartScriptTask("PacketsProcessor") {
|
|
|
|
|
// mainClass.set("dev.adamko.kafkatorio.processors.PacketsProcessorKt")
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//val startScriptTilesProcessor = registerStartScriptTask("TilesProcessor") {
|
|
|
|
|
// mainClass.set("dev.adamko.kafkatorio.processors.TilesProcessorKt")
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
//application.applicationDistribution.into("bin") {
|
|
|
|
|
// from(startScriptEntitiesProcessor)
|
|
|
|
|
// from(startScriptPacketsProcessor)
|
|
|
|
|
// from(startScriptTilesProcessor)
|
|
|
|
|
// fileMode = 0b000_111_101_101 // 0755
|
|
|
|
|
// duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
tasks.named("run") {
|
|
|
|
|
val kafkaStateDir: Directory = layout.projectDirectory.dir(".state/kafka/")
|
|
|
|
|
|
|
|
|
|
doFirst {
|
|
|
|
|
kafkaStateDir.asFile.mkdirs()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val runEventsProcessors by tasks.registering {
|
|
|
|
|
group = rootProject.name
|
|
|
|
|
|
|
|
|
|
dependsOn(tasks.run)
|
|
|
|
|
}
|
2022-10-04 22:38:00 +02:00
|
|
|
|
2022-10-22 19:55:02 +02:00
|
|
|
|
|
|
|
|
tasks.dockerContextPrepareFiles {
|
|
|
|
|
from(zipTree(tasks.distZip.flatMap { it.archiveFile })) {
|
|
|
|
|
eachFile {
|
|
|
|
|
relativePath = relativePath.dropDirectory()
|
|
|
|
|
|
|
|
|
|
if (!isDirectory && relativePath.pathString.matches("""bin\/.+""".toRegex())) {
|
|
|
|
|
name = name.replace(file.nameWithoutExtension, "run")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-10-04 22:38:00 +02:00
|
|
|
}
|