diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index 0e1909b..ae6a622 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -19,16 +19,7 @@ plugins { application kotlin("multiplatform") kotlin("plugin.serialization") - id("com.monkopedia.ksrpc.plugin") -} - -repositories { - jcenter() - mavenCentral() - mavenLocal() - maven(url = "https://dl.bintray.com/kotlin/kotlin-dev/") - maven(url = "https://dl.bintray.com/kotlin/kotlin-eap/") - maven(url = "https://kotlinx.bintray.com/kotlinx/") + alias(libs.plugins.ksrpc) } application { @@ -65,42 +56,41 @@ kotlin { } sourceSets["commonMain"].dependencies { - api("com.monkopedia.ksrpc:ksrpc-core:0.7.1") - api("com.monkopedia.ksrpc:ksrpc-sockets:0.7.1") - api("com.monkopedia.ksrpc:ksrpc-ktor-client:0.7.1") - api("com.monkopedia.ksrpc:ksrpc-ktor-websocket-client:0.7.1") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.3") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") - compileOnly("io.ktor:ktor-client-core:2.0.2") - compileOnly("io.ktor:ktor-client-websockets:2.0.2") + api(libs.ksrpc) + api(libs.ksrpc.sockets) + api(libs.ksrpc.ktor.client) + api(libs.ksrpc.ktor.websocket.client) + implementation(libs.kotlinx.serialization) + implementation(libs.kotlinx.serialization.json) + implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.datetime) + compileOnly(libs.ktor.client) + compileOnly(libs.ktor.client.websockets) implementation(kotlin("stdlib")) api(project(":hauler")) - compileOnly("io.ktor:ktor-io:2.0.2") + compileOnly(libs.ktor.io) } sourceSets["jvmMain"].dependencies { implementation(kotlin("stdlib")) implementation(kotlin("reflect")) - implementation("org.slf4j:slf4j-api:2.0.6") - compileOnly("io.ktor:ktor-server-core:2.0.2") - compileOnly("io.ktor:ktor-server-host-common:2.0.2") - compileOnly("io.ktor:ktor-server-netty:2.0.2") - compileOnly("io.ktor:ktor-client-core:2.0.2") - api("com.monkopedia.ksrpc:ksrpc-sockets:0.7.1") - - implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4") - implementation("com.github.ajalt:clikt:2.8.0") + implementation(libs.slf4j.api) + compileOnly(libs.ktor.server) + compileOnly(libs.ktor.server.host.common) + compileOnly(libs.ktor.server.netty) + compileOnly(libs.ktor.client) + compileOnly(libs.ksrpc.sockets) + implementation(libs.kotlinx.serialization) + implementation(libs.kotlinx.serialization.json) + implementation(libs.kotlinx.coroutines) + implementation(libs.clikt) implementation(kotlin("test-junit")) implementation("ch.qos.logback:logback-classic:1.2.3") } sourceSets["jsMain"].dependencies { - api("com.monkopedia.ksrpc:ksrpc-sockets:0.7.1") - compileOnly("io.ktor:ktor-client-core:2.0.2") - compileOnly("io.ktor:ktor-client-js:2.0.2") - implementation("org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7") + api(libs.ksrpc.sockets) + api(libs.ktor.client) + api(libs.ktor.client.js) + implementation(libs.kotlinx.nodejs) } } diff --git a/benchmark/src/jvmMain/kotlin/JvmHarnessRule.kt b/benchmark/src/jvmMain/kotlin/JvmHarnessRule.kt index c483e64..cfcf49c 100644 --- a/benchmark/src/jvmMain/kotlin/JvmHarnessRule.kt +++ b/benchmark/src/jvmMain/kotlin/JvmHarnessRule.kt @@ -17,8 +17,8 @@ import java.io.PipedOutputStream class JvmHarnessRule : BeforeAfterRule() { private var harnessImpl: HarnessProtocol? = null - private var conn1: Connection? = null - private var conn2: Connection? = null + private var conn1: Connection? = null + private var conn2: Connection? = null private var scope: CoroutineScope? = null val harness: HarnessProtocol diff --git a/benchmark/src/jvmMain/kotlin/NativeHarnessRule.kt b/benchmark/src/jvmMain/kotlin/NativeHarnessRule.kt index c4caccc..73ffb66 100644 --- a/benchmark/src/jvmMain/kotlin/NativeHarnessRule.kt +++ b/benchmark/src/jvmMain/kotlin/NativeHarnessRule.kt @@ -17,7 +17,7 @@ import java.util.concurrent.CountDownLatch class NativeHarnessRule : BeforeAfterRule() { private var harnessImpl: HarnessProtocol? = null - private var connection: Connection? = null + private var connection: Connection? = null val harness: HarnessProtocol get() = harnessImpl ?: error("harness can only be accessed within a test") diff --git a/benchmark/src/jvmMain/kotlin/NodeHarnessRule.kt b/benchmark/src/jvmMain/kotlin/NodeHarnessRule.kt index 80bf064..b11e36d 100644 --- a/benchmark/src/jvmMain/kotlin/NodeHarnessRule.kt +++ b/benchmark/src/jvmMain/kotlin/NodeHarnessRule.kt @@ -15,7 +15,7 @@ import java.util.concurrent.CountDownLatch class NodeHarnessRule : BeforeAfterRule() { private var harnessImpl: HarnessProtocol? = null - private var connection: Connection? = null + private var connection: Connection? = null val harness: HarnessProtocol get() = harnessImpl ?: error("harness can only be accessed within a test") diff --git a/build.gradle.kts b/build.gradle.kts index d0ebcf8..33dadc4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,31 +1,32 @@ buildscript { - val kotlin_version by extra("1.8.0") repositories { - mavenCentral() mavenLocal() + mavenCentral() gradlePluginPortal() } dependencies { - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version") - classpath("org.jetbrains.kotlin:kotlin-serialization:$kotlin_version") - classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.7.20") - classpath("org.jetbrains.dokka:dokka-base:1.7.20") - classpath("com.monkopedia.ksrpc:ksrpc-gradle-plugin:0.7.2") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.asProvider().get()}") + classpath("org.jetbrains.kotlin:kotlin-serialization:${libs.versions.kotlin.asProvider().get()}") + classpath("org.jetbrains.dokka:dokka-gradle-plugin:${libs.versions.dokka.get()}") + classpath("org.jetbrains.dokka:dokka-base:${libs.versions.dokka.get()}") + classpath("com.monkopedia.ksrpc:ksrpc-gradle-plugin:${libs.versions.ksrpc.get()}") classpath("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") } } + plugins { id("org.jlleitschuh.gradle.ktlint") version "11.0.0" id("com.github.hierynomus.license") version "0.16.1" + id("com.monkopedia.ksrpc.plugin") version libs.versions.ksrpc.get() apply false } group = "com.monkopedia" allprojects { repositories { - jcenter() - mavenCentral() mavenLocal() + mavenCentral() + jcenter() } apply(plugin = "org.jlleitschuh.gradle.ktlint") apply(plugin = "com.github.hierynomus.license") diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..b6efe78 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,71 @@ +[versions] +kotlin = "1.9.10" +kotlin-coroutines = "1.7.3" +kotlin-serialization = "1.6.0" +kotlin-datetime = "0.4.0" +kotlin-nodejs = "0.0.7" +ktor = "2.3.4" +slf4j = "2.0.9" +clikt = "4.2.0" +gradleplugin = "8.1.1" +kotlin-atomicfu = "0.22.0" +kotlin-compiletesting = "1.5.0" +dokka = "1.9.0" +googleautoservice = "1.1.1" +jnanoid = "2.0.0" +nanoid = "3.1.22" +ksrpc = "0.8.0" + +[libraries] +dokka-base = { module = "org.jetbrains.dokka:dokka-base", version.ref = "dokka" } +dokka-gradle = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" } +kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +autoservice = { module = "com.google.auto.service:auto-service", version.ref = "googleautoservice" } +autoservice-annotations = { module = "com.google.auto.service:auto-service-annotations", version.ref = "googleautoservice" } +kotlin-compiletesting = { module = "com.github.tschuchortdev:kotlin-compile-testing", version.ref = "kotlin-compiletesting"} +ktor-io = { module = "io.ktor:ktor-io", version.ref = "ktor" } +kotlinx-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlin-serialization"} +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization"} +kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin-coroutines"} +kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlin-datetime"} +kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlin-atomicfu"} +kotlinx-nodejs = { module = "org.jetbrains.kotlinx:kotlinx-nodejs", version.ref = "kotlin-nodejs"} +jnanoid = { module = "com.aventrix.jnanoid:jnanoid", version.ref = "jnanoid" } +slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j"} +ktor-client = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-js = { module = "io.ktor:ktor-client-js", version.ref = "ktor" } +ktor-client-curl = { module = "io.ktor:ktor-client-curl", version.ref = "ktor" } +ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } +ktor-client-websockets = { module = "io.ktor:ktor-client-websockets", version.ref = "ktor" } +ktor-server = { module = "io.ktor:ktor-server-core", version.ref = "ktor" } +ktor-server-websockets = { module = "io.ktor:ktor-server-websockets", version.ref = "ktor" } +ktor-server-cors = { module = "io.ktor:ktor-server-cors", version.ref = "ktor" } +ktor-server-host-common = { module = "io.ktor:ktor-server-host-common", version.ref = "ktor" } +ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" } +ktor-server-cio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" } +ktor-http = { module = "io.ktor:ktor-http", version.ref = "ktor" } +ktor-kotlinx-serialization = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } +ktor-jackson-serialization = { module = "io.ktor:ktor-serialization-jackson", version.ref = "ktor" } +ktor-websockets = { module = "io.ktor:ktor-websockets", version.ref = "ktor" } +ktor-websockets-serialization = { module = "io.ktor:ktor-websocket-serialization", version.ref = "ktor" } +clikt = { module = "com.github.ajalt.clikt:clikt", version.ref = "clikt"} +ksrpc = { module = "com.monkopedia.ksrpc:ksrpc-core", version.ref = "ksrpc"} +ksrpc-sockets = { module = "com.monkopedia.ksrpc:ksrpc-sockets", version.ref = "ksrpc"} +ksrpc-ktor-client = { module = "com.monkopedia.ksrpc:ksrpc-ktor-client", version.ref = "ksrpc"} +ksrpc-ktor-websocket-client = { module = "com.monkopedia.ksrpc:ksrpc-ktor-websocket-client", version.ref = "ksrpc"} + +[bundles] +dokka = ["dokka-base", "dokka-gradle"] + +[plugins] +ksrpc = { id = "com.monkopedia.ksrpc.plugin", version.ref = "ksrpc"} +android-application = { id = "com.android.application", version.ref = "gradleplugin" } +android-library = { id = "com.android.library", version.ref = "gradleplugin" } +kotlin = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } +hierynomus-license = { id = "com.github.hierynomus.license", version = "0.16.1" } +jlleitschuh-ktlint = { id = "org.jlleitschuh.gradle.ktlint", version = "11.0.0" } +gmazzo-buildconfig = { id = "com.github.gmazzo.buildconfig", version = "3.1.0" } diff --git a/hauler/build.gradle.kts b/hauler/build.gradle.kts index d09ea44..b860460 100644 --- a/hauler/build.gradle.kts +++ b/hauler/build.gradle.kts @@ -18,21 +18,12 @@ plugins { java kotlin("multiplatform") kotlin("plugin.serialization") - id("com.monkopedia.ksrpc.plugin") + alias(libs.plugins.ksrpc) id("org.jetbrains.dokka") id("org.gradle.maven-publish") id("org.gradle.signing") } -repositories { - jcenter() - mavenCentral() - mavenLocal() - maven(url = "https://dl.bintray.com/kotlin/kotlin-dev/") - maven(url = "https://dl.bintray.com/kotlin/kotlin-eap/") - maven(url = "https://kotlinx.bintray.com/kotlinx/") -} - group = "com.monkopedia" kotlin { @@ -60,31 +51,30 @@ kotlin { } } sourceSets["commonMain"].dependencies { - api("com.monkopedia.ksrpc:ksrpc-core:0.7.1") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.3") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") + api(libs.ksrpc) + implementation(libs.kotlinx.serialization) + implementation(libs.kotlinx.serialization.json) + implementation(libs.kotlinx.coroutines) + implementation(libs.kotlinx.datetime) implementation(kotlin("stdlib")) - compileOnly("io.ktor:ktor-io:2.0.2") + compileOnly(libs.ktor.io) } sourceSets["jvmMain"].dependencies { implementation(kotlin("stdlib")) implementation(kotlin("reflect")) - implementation("org.slf4j:slf4j-api:2.0.6") - compileOnly("io.ktor:ktor-server-core:2.0.2") - compileOnly("io.ktor:ktor-server-host-common:2.0.2") - compileOnly("io.ktor:ktor-server-netty:2.0.2") - compileOnly("io.ktor:ktor-client-core:2.0.2") - - implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.0.0") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0") - implementation("com.github.ajalt:clikt:2.8.0") + implementation(libs.slf4j.api) + compileOnly(libs.ktor.server) + compileOnly(libs.ktor.server.host.common) + compileOnly(libs.ktor.server.netty) + compileOnly(libs.ktor.client) + implementation(libs.kotlinx.serialization) + implementation(libs.kotlinx.serialization.json) + implementation(libs.clikt) implementation("ch.qos.logback:logback-classic:1.2.3") } sourceSets["jsMain"].dependencies { - compileOnly("io.ktor:ktor-client-core:2.0.2") - compileOnly("io.ktor:ktor-client-js:2.0.2") + api(libs.ktor.client) + api(libs.ktor.client.js) } } @@ -98,7 +88,7 @@ tasks.withType().all { val dokkaJavadoc = tasks.create("dokkaJavadocCustom", DokkaTask::class) { project.dependencies { - plugins("org.jetbrains.dokka:kotlin-as-java-plugin:1.7.20") + plugins("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.0") } // outputFormat = "javadoc" outputDirectory.set(File(project.buildDir, "javadoc")) diff --git a/settings.gradle.kts b/settings.gradle.kts index 6dc0bfa..3818dca 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -12,6 +12,11 @@ include(":hauler") include(":benchmark") pluginManagement { + repositories { + mavenLocal() + mavenCentral() + gradlePluginPortal() + } resolutionStrategy { eachPlugin { if (requested.id.id == "kotlin-multiplatform") {