Skip to content

Commit af8a5b8

Browse files
author
olme04
authored
Version catalogs and safe project accessors (#197)
1 parent 388fcc9 commit af8a5b8

File tree

13 files changed

+109
-113
lines changed

13 files changed

+109
-113
lines changed

benchmarks/build.gradle.kts

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.*
2020

2121
plugins {
2222
kotlin("multiplatform")
23-
id("org.jetbrains.kotlinx.benchmark")
24-
kotlin("plugin.allopen")
25-
}
23+
id("kotlinx-atomicfu")
2624

27-
val rsocketJavaVersion: String by rootProject
28-
val kotlinxCoroutinesVersion: String by rootProject
29-
val kotlinxBenchmarkVersion: String by rootProject
25+
alias(libs.plugins.kotlin.allopen)
26+
alias(libs.plugins.kotlinx.benchmark)
27+
}
3028

3129
val jmhVersionOverride: String by rootProject
3230

@@ -38,8 +36,8 @@ kotlin {
3836
sourceSets {
3937
val commonMain by getting {
4038
dependencies {
41-
implementation("org.jetbrains.kotlinx:kotlinx-benchmark-runtime:$kotlinxBenchmarkVersion")
42-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
39+
implementation(libs.kotlinx.benchmark)
40+
implementation(libs.kotlinx.coroutines.core)
4341
}
4442
}
4543

@@ -48,17 +46,17 @@ kotlin {
4846
val kotlinMain by getting {
4947
dependsOn(jvmMain)
5048
dependencies {
51-
implementation(project(":rsocket-core"))
52-
implementation(project(":rsocket-transport-local"))
49+
implementation(projects.rsocketCore)
50+
implementation(projects.rsocketTransportLocal)
5351
}
5452
}
5553

5654
val javaMain by getting {
5755
dependsOn(jvmMain)
5856
dependencies {
59-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:$kotlinxCoroutinesVersion")
60-
implementation("io.rsocket:rsocket-core:$rsocketJavaVersion")
61-
implementation("io.rsocket:rsocket-transport-local:$rsocketJavaVersion")
57+
implementation(libs.kotlinx.coroutines.reactor)
58+
implementation(libs.rsocket.java.core)
59+
implementation(libs.rsocket.java.transport.local)
6260
}
6361
}
6462
}
@@ -75,7 +73,7 @@ benchmark {
7573
register("java")
7674
}
7775

78-
targets.withType<JvmBenchmarkTarget> { jmhVersion = jmhVersionOverride }
76+
targets.withType<JvmBenchmarkTarget> { jmhVersion = libs.versions.jmh.get() }
7977
}
8078

8179
tasks.register<JavaExec>("jmhProfilers") {

build.gradle.kts

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,16 @@ buildscript {
2424
repositories {
2525
mavenCentral()
2626
}
27-
val kotlinVersion: String by rootProject
28-
val kotlinxAtomicfuVersion: String by rootProject
2927

3028
dependencies {
31-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
32-
classpath("org.jetbrains.kotlinx:atomicfu-gradle-plugin:$kotlinxAtomicfuVersion")
29+
classpath(libs.build.kotlin)
30+
classpath(libs.build.kotlinx.atomicfu)
3331
}
3432
}
3533

36-
val kotlinxAtomicfuVersion: String by rootProject
37-
3834
plugins {
39-
id("com.github.ben-manes.versions")
40-
41-
//needed to add classpath to script
42-
id("com.jfrog.artifactory") apply false
35+
alias(libs.plugins.versionUpdates)
36+
alias(libs.plugins.jfrog.artifactory) apply false //needed to add classpath to script
4337
}
4438

4539
//on macos it will return all publications supported by rsocket, as linux and mingw can be crosscompiled there for publication
@@ -146,8 +140,6 @@ subprojects {
146140
extensions.configure<KotlinMultiplatformExtension> {
147141
val isTestProject = project.name == "rsocket-test" || project.name == "rsocket-test-server"
148142
val isLibProject = project.name.startsWith("rsocket")
149-
val isPlaygroundProject = project.name == "playground"
150-
val isExampleProject = "examples" in project.path
151143

152144
sourceSets.all {
153145
languageSettings.apply {
@@ -159,7 +151,7 @@ subprojects {
159151
// will be not needed in future with ktor 2.0.0
160152
optIn("io.ktor.utils.io.core.ExperimentalIoApi")
161153

162-
if (name.contains("test", ignoreCase = true) || isTestProject || isPlaygroundProject) {
154+
if (name.contains("test", ignoreCase = true) || isTestProject) {
163155
optIn("kotlin.time.ExperimentalTime")
164156
optIn("kotlin.ExperimentalStdlibApi")
165157

@@ -183,14 +175,7 @@ subprojects {
183175
if (isLibProject && !isTestProject) {
184176
explicitApi()
185177
sourceSets["commonTest"].dependencies {
186-
implementation(project(":rsocket-test"))
187-
}
188-
}
189-
190-
//fix atomicfu for examples and playground
191-
if (isExampleProject || isPlaygroundProject) {
192-
sourceSets["commonMain"].dependencies {
193-
implementation("org.jetbrains.kotlinx:atomicfu:$kotlinxAtomicfuVersion")
178+
implementation(projects.rsocketTest)
194179
}
195180
}
196181
}

gradle.properties

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,6 @@
1616
#Project
1717
group=io.rsocket.kotlin
1818
version=0.15.0-SNAPSHOT
19-
#Versions
20-
kotlinVersion=1.6.10
21-
ktorVersion=1.6.7
22-
kotlinxCoroutinesVersion=1.5.2-native-mt
23-
kotlinxAtomicfuVersion=0.17.0
24-
kotlinxSerializationVersion=1.3.1
25-
kotlinxBenchmarkVersion=0.4.0
26-
rsocketJavaVersion=1.1.1
27-
turbineVersion=0.7.0
28-
artifactoryVersion=4.25.1
29-
versionUpdatesVersion=0.39.0
30-
gradleEnterpriseVersion=3.4.1
31-
jmhVersionOverride=1.33
3219
#Kotlin
3320
kotlin.js.compiler=both
3421
kotlin.mpp.stability.nowarn=true

gradle/libs.versions.toml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
[versions]
2+
kotlin = "1.6.10"
3+
4+
kotlinx-atomicfu = "0.17.0"
5+
kotlinx-coroutines = "1.5.2-native-mt"
6+
kotlinx-benchmark = "0.4.0"
7+
8+
ktor = "1.6.7"
9+
10+
turbine = "0.7.0"
11+
12+
jfrog-artifactory = "4.25.1"
13+
versionUpdates = "0.39.0"
14+
15+
rsocket-java = "1.1.1"
16+
17+
jmh = "1.33"
18+
19+
[libraries]
20+
kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" }
21+
kotlinx-coroutines-reactor = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-reactor", version.ref = "kotlinx-coroutines" }
22+
23+
kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu", version.ref = "kotlinx-atomicfu" }
24+
kotlinx-benchmark = { module = "org.jetbrains.kotlinx:kotlinx-benchmark-runtime", version.ref = "kotlinx-benchmark" }
25+
26+
ktor-io = { module = "io.ktor:ktor-io", version.ref = "ktor" }
27+
ktor-utils = { module = "io.ktor:ktor-utils", version.ref = "ktor" }
28+
ktor-network = { module = "io.ktor:ktor-network", version.ref = "ktor" }
29+
ktor-http-cio = { module = "io.ktor:ktor-http-cio", version.ref = "ktor" }
30+
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" }
31+
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" }
32+
ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" }
33+
ktor-server-core = { module = "io.ktor:ktor-server", version.ref = "ktor" }
34+
ktor-server-websockets = { module = "io.ktor:ktor-websockets", version.ref = "ktor" }
35+
ktor-server-cio = { module = "io.ktor:ktor-server-cio", version.ref = "ktor" }
36+
ktor-server-netty = { module = "io.ktor:ktor-server-netty", version.ref = "ktor" }
37+
ktor-server-jetty = { module = "io.ktor:ktor-server-jetty", version.ref = "ktor" }
38+
39+
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
40+
41+
rsocket-java-core = { module = 'io.rsocket:rsocket-core', version.ref = "rsocket-java" }
42+
rsocket-java-transport-local = { module = 'io.rsocket:rsocket-transport-local', version.ref = "rsocket-java" }
43+
44+
build-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
45+
build-kotlinx-atomicfu = { module = "org.jetbrains.kotlinx:atomicfu-gradle-plugin", version.ref = "kotlinx-atomicfu" }
46+
47+
[plugins]
48+
kotlin-allopen = { id = "org.jetbrains.kotlin.plugin.allopen", version.ref = "kotlin" }
49+
50+
kotlinx-benchmark = { id = "org.jetbrains.kotlinx.benchmark", version.ref = "kotlinx-benchmark" }
51+
52+
versionUpdates = { id = "com.github.ben-manes.versions", version.ref = "versionUpdates" }
53+
jfrog-artifactory = { id = "com.jfrog.artifactory", version.ref = "jfrog-artifactory" }

rsocket-core/build.gradle.kts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,17 @@ plugins {
2323
id("com.jfrog.artifactory")
2424
}
2525

26-
val ktorVersion: String by rootProject
27-
val kotlinxCoroutinesVersion: String by rootProject
28-
2926
kotlin {
3027
sourceSets {
3128
val commonMain by getting {
3229
dependencies {
33-
api("io.ktor:ktor-io:$ktorVersion")
34-
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
30+
api(libs.kotlinx.coroutines.core)
31+
api(libs.ktor.io)
3532
}
3633
}
3734
val commonTest by getting {
3835
dependencies {
39-
implementation(project(":rsocket-transport-local"))
36+
implementation(projects.rsocketTransportLocal)
4037
}
4138
}
4239
}

rsocket-test/build.gradle.kts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,15 @@ plugins {
1919
id("kotlinx-atomicfu")
2020
}
2121

22-
val ktorVersion: String by rootProject
23-
val kotlinxCoroutinesVersion: String by rootProject
24-
val turbineVersion: String by rootProject
25-
2622
kotlin {
2723
sourceSets {
2824
val commonMain by getting {
2925
dependencies {
3026
api(kotlin("test"))
31-
api(project(":rsocket-core"))
27+
api(projects.rsocketCore)
3228

33-
api("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion")
34-
api("io.ktor:ktor-utils:$ktorVersion")
35-
api("app.cash.turbine:turbine:$turbineVersion")
29+
api(libs.ktor.utils)
30+
api(libs.turbine)
3631
}
3732
}
3833
val jvmMain by getting {

rsocket-test/rsocket-test-server/build.gradle.kts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,17 @@ import java.net.*
2020

2121
plugins {
2222
kotlin("multiplatform")
23+
id("kotlinx-atomicfu")
2324
}
2425

25-
val ktorVersion: String by rootProject
26-
2726
kotlin {
2827
sourceSets {
2928
val jvmMain by getting {
3029
dependencies {
31-
implementation(project(":rsocket-test"))
32-
implementation(project(":rsocket-transport-ktor-server"))
30+
implementation(projects.rsocketTest)
31+
implementation(projects.rsocketTransportKtorServer)
3332

34-
implementation("io.ktor:ktor-server-cio:$ktorVersion")
33+
implementation(libs.ktor.server.cio)
3534
}
3635
}
3736
}

rsocket-transport-ktor/build.gradle.kts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,38 @@
1616

1717
plugins {
1818
kotlin("multiplatform")
19+
id("kotlinx-atomicfu")
1920

2021
signing
2122
`maven-publish`
2223
id("com.jfrog.artifactory")
2324
}
2425

25-
val ktorVersion: String by rootProject
26-
val kotlinxAtomicfuVersion: String by rootProject
27-
2826
kotlin {
2927
sourceSets {
3028
val commonMain by getting {
3129
dependencies {
32-
api(project(":rsocket-core"))
30+
api(projects.rsocketCore)
3331

34-
api("io.ktor:ktor-network:$ktorVersion")
35-
api("io.ktor:ktor-http-cio:$ktorVersion")
32+
api(libs.ktor.network)
33+
api(libs.ktor.http.cio)
3634
}
3735
}
3836
val commonTest by getting {
3937
dependencies {
40-
implementation(project(":rsocket-transport-ktor-client"))
41-
42-
implementation("org.jetbrains.kotlinx:atomicfu:$kotlinxAtomicfuVersion")
38+
implementation(projects.rsocketTransportKtorClient)
4339
}
4440
}
4541
val jvmTest by getting {
4642
dependencies {
47-
implementation(project(":rsocket-transport-ktor-server"))
43+
implementation(projects.rsocketTransportKtorServer)
4844

49-
implementation("io.ktor:ktor-client-cio:$ktorVersion")
50-
implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
45+
implementation(libs.ktor.client.cio)
46+
implementation(libs.ktor.client.okhttp)
5147

52-
implementation("io.ktor:ktor-server-cio:$ktorVersion")
53-
implementation("io.ktor:ktor-server-netty:$ktorVersion")
54-
implementation("io.ktor:ktor-server-jetty:$ktorVersion")
48+
implementation(libs.ktor.server.cio)
49+
implementation(libs.ktor.server.netty)
50+
implementation(libs.ktor.server.jetty)
5551
}
5652
}
5753
}

rsocket-transport-ktor/rsocket-transport-ktor-client/build.gradle.kts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,21 @@
1616

1717
plugins {
1818
kotlin("multiplatform")
19+
id("kotlinx-atomicfu")
1920

2021
signing
2122
`maven-publish`
2223
id("com.jfrog.artifactory")
2324
}
2425

25-
val ktorVersion: String by rootProject
26-
2726
kotlin {
2827
sourceSets {
2928
val commonMain by getting {
3029
dependencies {
31-
api(project(":rsocket-core"))
32-
api(project(":rsocket-transport-ktor"))
30+
api(projects.rsocketCore)
31+
api(projects.rsocketTransportKtor)
3332

34-
api("io.ktor:ktor-client-core:$ktorVersion")
33+
api(libs.ktor.client.core)
3534
}
3635
}
3736
}

rsocket-transport-ktor/rsocket-transport-ktor-server/build.gradle.kts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,22 @@
1616

1717
plugins {
1818
kotlin("multiplatform")
19+
id("kotlinx-atomicfu")
1920

2021
signing
2122
`maven-publish`
2223
id("com.jfrog.artifactory")
2324
}
2425

25-
val ktorVersion: String by rootProject
26-
2726
kotlin {
2827
sourceSets {
2928
val commonMain by getting {
3029
dependencies {
31-
api(project(":rsocket-core"))
32-
api(project(":rsocket-transport-ktor"))
30+
api(projects.rsocketCore)
31+
api(projects.rsocketTransportKtor)
3332

34-
api("io.ktor:ktor-server:$ktorVersion")
35-
api("io.ktor:ktor-websockets:$ktorVersion")
33+
api(libs.ktor.server.core)
34+
api(libs.ktor.server.websockets)
3635
}
3736
}
3837
}

0 commit comments

Comments
 (0)