Kafkatorio/modules/events-server/build.gradle.kts

106 lines
2.4 KiB
Text
Raw Normal View History

import dev.adamko.kafkatorio.task.KafkaConsumerGroupsTask
2021-12-28 16:26:23 +01:00
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.utils.addToStdlib.applyIf
2021-12-28 16:26:23 +01:00
2021-10-22 18:19:53 +02:00
plugins {
dev.adamko.kafkatorio.lang.`kotlin-jvm`
2021-10-25 23:35:47 +02:00
kotlin("plugin.serialization")
application
2021-10-22 18:19:53 +02:00
}
description = "serves Kafkatorio content over the web"
2021-10-22 18:19:53 +02:00
val projectId: String by project.extra
val kafkaStateDir: Directory = layout.projectDirectory.dir("kafka-state")
dependencies {
implementation(platform(projects.modules.versionsPlatform))
implementation(libs.kafka.streams)
testImplementation(libs.kafka.streamsTestUtils)
implementation(projects.modules.eventsLibrary)
implementation(libs.kotlinx.serialization.core)
implementation(libs.kotlinx.serialization.json)
// implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf")
2021-10-25 23:35:47 +02:00
implementation(libs.kotlinx.coroutines.core)
implementation(libs.bundles.logging)
implementation(libs.scrimage.core)
implementation(libs.okio.core)
//<editor-fold desc="Ktor">
implementation(libs.ktorSerialization.kotlinxJson)
with(libs.ktorServer) {
implementation(core)
implementation(callId)
implementation(callLogging)
implementation(contentNegotiaion)
implementation(cio)
// implementation(netty)
implementation(autoHeadResponse)
implementation(partialContent)
implementation(resources)
implementation(statusPages)
implementation(websockets)
implementation(compression)
}
with(libs.ktorNetwork) {
implementation(core)
implementation(tls)
}
//</editor-fold>
implementation(libs.simpleSyslogParser)
implementation(libs.kafka.kotkaStreams) {
isChanging = false
}
implementation(libs.bundles.hoplite)
}
application {
// mainClass.set("dev.adamko.kafkatorio.processor.EventProcessorKt")
mainClass.set("dev.adamko.kafkatorio.server.EventsServerKt")
}
2021-12-28 16:26:23 +01:00
tasks.withType<KotlinCompile>().configureEach {
2021-12-28 16:26:23 +01:00
kotlinOptions.freeCompilerArgs += listOf(
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlinx.coroutines.FlowPreview",
2022-02-26 17:34:31 +01:00
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
2021-12-28 16:26:23 +01:00
)
}
val kafkaStateDirDelete by tasks.registering(Delete::class) {
group = project.name
mustRunAfter(kafkaConsumersDelete)
2022-03-12 01:37:35 +01:00
delete(kafkaStateDir)
}
val kafkaConsumersDelete by tasks.registering(KafkaConsumerGroupsTask.DeleteAll::class) {
2022-02-26 17:34:31 +01:00
group = project.name
}
2022-03-12 01:37:35 +01:00
idea {
module {
excludeDirs = excludeDirs + kafkaStateDir.asFile
}
}