diff --git a/build.gradle.kts b/build.gradle.kts index 60b1341..bf22bd1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -35,7 +35,7 @@ idea { } tasks.wrapper { - gradleVersion = "7.4" + gradleVersion = "7.4.1" distributionType = Wrapper.DistributionType.ALL } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5af130a..c2216ac 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -15,13 +15,12 @@ object Versions { const val kotlin = "1.6.10" const val gradleNodePlugin = "3.2.1" - const val gradleDockerComposePlugin = "0.15.0" + const val gradleDockerComposePlugin = "0.15.1" const val kotlinXSerialization = "1.3.2" const val kvision = "5.8.1" const val semver = "1.1.2" const val http4k = "4.19.1.0" - const val jsoup = "1.14.3" const val kotest = "5.1.0" } @@ -54,7 +53,10 @@ dependencies { implementation("org.http4k:http4k-core") implementation("org.http4k:http4k-client-okhttp") - implementation("org.jsoup:jsoup:${Versions.jsoup}") + + // https://github.com/gradle/gradle/issues/15383#issuecomment-779893192 + // https://youtrack.jetbrains.com/issue/IDEA-262280#focus=Comments-27-5397040.0-0 +// implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) } diff --git a/buildSrc/repositories.settings.gradle.kts b/buildSrc/repositories.settings.gradle.kts index ff14164..a9c0f1e 100644 --- a/buildSrc/repositories.settings.gradle.kts +++ b/buildSrc/repositories.settings.gradle.kts @@ -13,8 +13,6 @@ dependencyResolutionManagement { mavenCentral() jitpack() gradlePluginPortal() -// maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") -// maven("https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven") // Declare the Node.js download repository ivy("https://nodejs.org/dist/") { @@ -32,25 +30,15 @@ dependencyResolutionManagement { } pluginManagement { - repositories { gradlePluginPortal() mavenCentral() jitpack() -// maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/") } - } } fun RepositoryHandler.jitpack() { - maven("https://jitpack.io") { -// content { -// includeGroup("com.github.aSemy") -// includeGroup("com.github.adamko-dev") -// includeGroup("com.github.adamko-dev.kotka-streams") -// includeGroup("dev.adamko.kotka") -// } - } + maven("https://jitpack.io") } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts index 732bd75..202f788 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/base.gradle.kts @@ -1,21 +1,30 @@ package dev.adamko.kafkatorio +import org.gradle.api.internal.tasks.userinput.UserInputHandler +import org.gradle.kotlin.dsl.support.serviceOf + plugins { - idea base + idea } -group = "${rootProject.group}.${project.name}" +group = rootProject.group version = rootProject.version -idea { - module { - isDownloadSources = true - isDownloadJavadoc = true - } -} tasks.withType().configureEach { encoding = Charsets.UTF_8.name() comment = " Do not edit manually. This file was created with task '$name'" } + +val hardReset by tasks.registering(Delete::class) { + group = rootProject.name + doFirst("hardResetConfirmation") { + val answer = project.serviceOf() + .askYesNoQuestion("Are you sure you want to permanently delete Kafkatorio data?") + + if (answer != true) { + throw GradleException("Aborting hard reset") + } + } +} diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts index a565841..b12d5ef 100644 --- a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts +++ b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/infra/docker-compose.gradle.kts @@ -31,6 +31,16 @@ val dockerDown by tasks.registering(Exec::class) { commandLine = parseSpaceSeparatedArgs(""" docker-compose down """) } + +val dockerRemove by tasks.registering(Exec::class) { + group = dockerComposeTaskGroup + + logging.captureStandardOutput(LogLevel.LIFECYCLE) + + workingDir = dockerSrcDir.asFile + commandLine = parseSpaceSeparatedArgs(""" docker-compose rm --stop -v -f """) +} + afterEvaluate { tasks.named("processRun") { dependsOn(dockerUp, dockerEnv) } tasks.named("processKill") { dependsOn(dockerDown) } diff --git a/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumersResetTask.kt b/buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumerGroupsTask.kt similarity index 100% rename from buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumersResetTask.kt rename to buildSrc/src/main/kotlin/dev/adamko/kafkatorio/task/KafkaConsumerGroupsTask.kt diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7454180..41d9927 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b1159fc..d7e66b5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index c53aefa..1b6c787 100644 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -32,10 +32,10 @@ # Busybox and similar reduced shells will NOT work, because this script # requires all of these POSIX shell features: # * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». # # Important for patching: # diff --git a/modules/events-server/build.gradle.kts b/modules/events-server/build.gradle.kts index f0a19ef..6972839 100644 --- a/modules/events-server/build.gradle.kts +++ b/modules/events-server/build.gradle.kts @@ -39,7 +39,7 @@ dependencies { implementation("com.sksamuel.scrimage:scrimage-core:4.0.24") - val kotkaVersion = "v0.0.12" + val kotkaVersion = "v0.0.13" implementation("com.github.adamko-dev.kotka-streams:kotka-streams:$kotkaVersion") { isChanging = true } diff --git a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/processor/serdes/kxsBinary.kt b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/processor/serdes/kxsBinary.kt index f61bf25..b1be03c 100644 --- a/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/processor/serdes/kxsBinary.kt +++ b/modules/events-server/src/main/kotlin/dev/adamko/kafkatorio/processor/serdes/kxsBinary.kt @@ -98,7 +98,7 @@ class KxsDataOutputEncoder( class KxsDataInputDecoder( private val input: DataInput, override val serializersModule: SerializersModule = EmptySerializersModule, - var elementsCount: Int = 0, + private var elementsCount: Int = 0, ) : AbstractDecoder() { private var elementIndex = 0 diff --git a/modules/infra-factorio-client/build.gradle.kts b/modules/infra-factorio-client/build.gradle.kts index c52e925..ba5d671 100644 --- a/modules/infra-factorio-client/build.gradle.kts +++ b/modules/infra-factorio-client/build.gradle.kts @@ -5,7 +5,7 @@ import dev.adamko.kafkatorio.gradle.not import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - id("dev.adamko.kafkatorio.infra.process-runner") + dev.adamko.kafkatorio.infra.`process-runner` } description = "Start the Factorio game client" diff --git a/modules/infra-factorio-server/build.gradle.kts b/modules/infra-factorio-server/build.gradle.kts index 7f7254c..7cff893 100644 --- a/modules/infra-factorio-server/build.gradle.kts +++ b/modules/infra-factorio-server/build.gradle.kts @@ -3,7 +3,7 @@ import dev.adamko.kafkatorio.gradle.factorioModAttributes import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - id("dev.adamko.kafkatorio.infra.docker-compose") + dev.adamko.kafkatorio.infra.`docker-compose` } val dockerSrcDir: Directory by extra @@ -57,3 +57,17 @@ idea { excludeDirs.add(file("src/factorio-server")) } } + + +tasks.hardReset { + + dependsOn(tasks.dockerRemove) + + delete( + factorioServerDataDir.dir("saves"), + factorioServerDataDir.dir("temp"), + factorioServerDataDir.file("factorio-current.log"), + factorioServerDataDir.file("factorio-previous.log"), + factorioServerDataDir.file(".lock"), + ) +} diff --git a/modules/infra-kafka-cluster/build.gradle.kts b/modules/infra-kafka-cluster/build.gradle.kts index 8cb355b..35b7263 100644 --- a/modules/infra-kafka-cluster/build.gradle.kts +++ b/modules/infra-kafka-cluster/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("dev.adamko.kafkatorio.infra.docker-compose") + dev.adamko.kafkatorio.infra.`docker-compose` } description = "Kafka cluster" diff --git a/modules/infra-kafka-connect/build.gradle.kts b/modules/infra-kafka-connect/build.gradle.kts index 67954a0..19ce2fa 100644 --- a/modules/infra-kafka-connect/build.gradle.kts +++ b/modules/infra-kafka-connect/build.gradle.kts @@ -3,8 +3,8 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - id("dev.adamko.kafkatorio.infra.docker-compose") - id("dev.adamko.kafkatorio.lang.kotlin-jvm") + dev.adamko.kafkatorio.infra.`docker-compose` + dev.adamko.kafkatorio.lang.`kotlin-jvm` } val dockerSrcDir: Directory by extra(layout.projectDirectory.dir("src/main/docker")) diff --git a/modules/infra-kafka-pipe/build.gradle.kts b/modules/infra-kafka-pipe/build.gradle.kts index e2878bb..8566525 100644 --- a/modules/infra-kafka-pipe/build.gradle.kts +++ b/modules/infra-kafka-pipe/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.incremental.md5 import org.jetbrains.kotlin.util.parseSpaceSeparatedArgs plugins { - id("dev.adamko.kafkatorio.infra.docker-compose") + dev.adamko.kafkatorio.infra.`docker-compose` } description = "Send events from a Factorio server to a Kafka topic " diff --git a/modules/kt-rcon/build.gradle.kts b/modules/kt-rcon/build.gradle.kts index 236d9f6..caa6ded 100644 --- a/modules/kt-rcon/build.gradle.kts +++ b/modules/kt-rcon/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("dev.adamko.kafkatorio.lang.kotlin-jvm") + dev.adamko.kafkatorio.lang.`kotlin-jvm` } //group = "${rootProject.group}.server" @@ -14,4 +14,4 @@ dependencies { implementation("io.ktor:ktor-network:1.6.4") -} \ No newline at end of file +} diff --git a/modules/web-map/build.gradle.kts b/modules/web-map/build.gradle.kts index 76426f4..eeebeb0 100644 --- a/modules/web-map/build.gradle.kts +++ b/modules/web-map/build.gradle.kts @@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig plugins { - id("dev.adamko.kafkatorio.lang.kotlin-js") + dev.adamko.kafkatorio.lang.`kotlin-js` kotlin("plugin.serialization") id("io.kvision") } @@ -39,8 +39,10 @@ kotlin { sourceSets { all { - languageSettings.optIn("kotlin.RequiresOptIn") - languageSettings.optIn("kotlinx.serialization.ExperimentalSerializationApi") + languageSettings.apply { + optIn("kotlin.RequiresOptIn") + optIn("kotlinx.serialization.ExperimentalSerializationApi") + } } main { diff --git a/settings.gradle.kts b/settings.gradle.kts index 174121e..51dc0c9 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -28,12 +28,12 @@ dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) - repositories { - mavenLocal { -//// content { -//// includeGroup("io.kvision") -//// includeGroup("dev.adamko.kotka") -//// } - } - } +// repositories { +// mavenLocal { +// content { +// includeGroup("io.kvision") +// includeGroup("dev.adamko.kotka") +// } +// } +// } }