Merge pull request 'Обновление зависимостей' (!10) from support/update_dependencies into dev

Reviewed-on: #10
Reviewed-by: Alexander Nozik <altavir@gmail.com>
This commit is contained in:
Alexander Nozik 2024-04-29 18:29:57 +03:00
commit 4b05f46fa7
30 changed files with 2197 additions and 98 deletions

View File

@ -3,14 +3,9 @@ import space.kscience.gradle.useSPCTeam
plugins { plugins {
id("space.kscience.gradle.project") id("space.kscience.gradle.project")
alias(libs.plugins.versions)
} }
val dataforgeVersion: String by extra("0.8.0")
val visionforgeVersion by extra("0.4.1")
val ktorVersion: String by extra(space.kscience.gradle.KScienceVersions.ktorVersion)
val rsocketVersion by extra("0.15.4")
val xodusVersion by extra("2.0.1")
allprojects { allprojects {
group = "space.kscience" group = "space.kscience"
version = "0.3.1-dev-1" version = "0.3.1-dev-1"

View File

@ -9,8 +9,6 @@ description = """
Core interfaces for building a device server Core interfaces for building a device server
""".trimIndent() """.trimIndent()
val dataforgeVersion: String by rootProject.extra
kscience { kscience {
jvm() jvm()
js() js()
@ -21,7 +19,7 @@ kscience {
} }
useContextReceivers() useContextReceivers()
commonMain { commonMain {
api("space.kscience:dataforge-io:$dataforgeVersion") api(libs.dataforge.io)
api(spclibs.kotlinx.datetime) api(spclibs.kotlinx.datetime)
} }

View File

@ -72,6 +72,7 @@ public abstract class DeviceBase<D : Device>(
onBufferOverflow = BufferOverflow.DROP_OLDEST onBufferOverflow = BufferOverflow.DROP_OLDEST
) )
@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
override val coroutineContext: CoroutineContext = context.newCoroutineContext( override val coroutineContext: CoroutineContext = context.newCoroutineContext(
SupervisorJob(context.coroutineContext[Job]) + SupervisorJob(context.coroutineContext[Job]) +
CoroutineName("Device $this") + CoroutineName("Device $this") +

View File

@ -3,8 +3,6 @@ plugins {
`maven-publish` `maven-publish`
} }
val visionforgeVersion: String by rootProject.extra
kscience { kscience {
fullStack("js/controls-jupyter.js") fullStack("js/controls-jupyter.js")
useKtor() useKtor()
@ -12,7 +10,7 @@ kscience {
jupyterLibrary("space.kscience.controls.jupyter.ControlsJupyter") jupyterLibrary("space.kscience.controls.jupyter.ControlsJupyter")
dependencies { dependencies {
implementation(projects.controlsVision) implementation(projects.controlsVision)
implementation("space.kscience:visionforge-jupyter:$visionforgeVersion") implementation(libs.visionforge.jupiter)
} }
jvmMain { jvmMain {
implementation(spclibs.logback.classic) implementation(spclibs.logback.classic)

View File

@ -19,7 +19,7 @@ kscience {
dependencies { dependencies {
api(projects.magix.magixApi) api(projects.magix.magixApi)
api(projects.controlsCore) api(projects.controlsCore)
api("com.benasher44:uuid:0.8.0") api(libs.uuid)
} }
} }

View File

@ -12,7 +12,7 @@ description = """
dependencies { dependencies {
api(projects.controlsCore) api(projects.controlsCore)
api("com.ghgande:j2mod:3.2.0") api(libs.j2mod)
} }
readme{ readme{

View File

@ -11,15 +11,13 @@ description = """
val ktorVersion: String by rootProject.extra val ktorVersion: String by rootProject.extra
val miloVersion: String = "0.6.10"
dependencies { dependencies {
api(projects.controlsCore) api(projects.controlsCore)
api(spclibs.kotlinx.coroutines.jdk8) api(spclibs.kotlinx.coroutines.jdk8)
api("org.eclipse.milo:sdk-client:$miloVersion") api(libs.milo.client)
api("org.eclipse.milo:bsd-parser:$miloVersion") api(libs.milo.parser)
api("org.eclipse.milo:sdk-server:$miloVersion") api(libs.milo.server)
testImplementation(spclibs.kotlinx.coroutines.test) testImplementation(spclibs.kotlinx.coroutines.test)
} }

View File

@ -7,12 +7,10 @@ description = """
Utils to work with controls-kt on Raspberry pi Utils to work with controls-kt on Raspberry pi
""".trimIndent() """.trimIndent()
val pi4jVerstion = "2.3.0"
dependencies{ dependencies{
api(project(":controls-core")) api(project(":controls-core"))
api("com.pi4j:pi4j-ktx:2.4.0") // Kotlin DSL api(libs.pi4j.ktx) // Kotlin DSL
api("com.pi4j:pi4j-core:$pi4jVerstion") api(libs.pi4j.core)
api("com.pi4j:pi4j-plugin-raspberrypi:$pi4jVerstion") api(libs.pi4j.plugin.raspberrypi)
api("com.pi4j:pi4j-plugin-pigpio:$pi4jVerstion") api(libs.pi4j.plugin.pigpio)
} }

View File

@ -5,8 +5,6 @@ plugins {
`maven-publish` `maven-publish`
} }
val plc4xVersion = "0.12.0"
description = """ description = """
A plugin for Controls-kt device server on top of plc4x library A plugin for Controls-kt device server on top of plc4x library
""".trimIndent() """.trimIndent()
@ -15,7 +13,7 @@ kscience {
jvm() jvm()
jvmMain { jvmMain {
api(projects.controlsCore) api(projects.controlsCore)
api("org.apache.plc4x:plc4j-spi:$plc4xVersion") api(libs.plc4j.spi)
} }
} }

View File

@ -9,11 +9,9 @@ description = """
Implementation of byte ports on top os ktor-io asynchronous API Implementation of byte ports on top os ktor-io asynchronous API
""".trimIndent() """.trimIndent()
val ktorVersion: String by rootProject.extra
dependencies { dependencies {
api(projects.controlsCore) api(projects.controlsCore)
api("io.ktor:ktor-network:$ktorVersion") api(spclibs.ktor.network)
} }
readme{ readme{

View File

@ -9,7 +9,7 @@ description = "Implementation of direct serial port communication with JSerialCo
dependencies{ dependencies{
api(project(":controls-core")) api(project(":controls-core"))
implementation("com.fazecast:jSerialComm:2.10.4") implementation(libs.jSerialComm)
} }
readme{ readme{

View File

@ -9,9 +9,6 @@ description = """
A combined Magix event loop server with web server for visualization. A combined Magix event loop server with web server for visualization.
""".trimIndent() """.trimIndent()
val dataforgeVersion: String by rootProject.extra
val ktorVersion: String by rootProject.extra
kscience { kscience {
jvm() jvm()
@ -19,12 +16,12 @@ kscience {
implementation(projects.controlsCore) implementation(projects.controlsCore)
implementation(projects.controlsPortsKtor) implementation(projects.controlsPortsKtor)
implementation(projects.magix.magixServer) implementation(projects.magix.magixServer)
implementation("io.ktor:ktor-server-cio:$ktorVersion") implementation(spclibs.ktor.server.cio)
implementation("io.ktor:ktor-server-websockets:$ktorVersion") implementation(spclibs.ktor.server.websockets)
implementation("io.ktor:ktor-server-content-negotiation:$ktorVersion") implementation(spclibs.ktor.server.content.negotiation)
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") implementation(spclibs.ktor.serialization.kotlinx.json)
implementation("io.ktor:ktor-server-html-builder:$ktorVersion") implementation(spclibs.ktor.server.html.builder)
implementation("io.ktor:ktor-server-status-pages:$ktorVersion") implementation(spclibs.ktor.server.status.pages)
} }
} }

View File

@ -3,15 +3,13 @@ plugins {
`maven-publish` `maven-publish`
} }
val xodusVersion: String by rootProject.extra
description = """ description = """
An implementation of controls-storage on top of JetBrains Xodus. An implementation of controls-storage on top of JetBrains Xodus.
""".trimIndent() """.trimIndent()
dependencies { dependencies {
api(projects.controlsStorage) api(projects.controlsStorage)
implementation("org.jetbrains.xodus:xodus-entity-store:$xodusVersion") implementation(libs.xodus.entity.store)
// implementation("org.jetbrains.xodus:xodus-environment:$xodusVersion") // implementation("org.jetbrains.xodus:xodus-environment:$xodusVersion")
// implementation("org.jetbrains.xodus:xodus-vfs:$xodusVersion") // implementation("org.jetbrains.xodus:xodus-vfs:$xodusVersion")

View File

@ -7,8 +7,6 @@ description = """
Dashboard and visualization extensions for devices Dashboard and visualization extensions for devices
""".trimIndent() """.trimIndent()
val visionforgeVersion: String by rootProject.extra
kscience { kscience {
fullStack("js/controls-vision.js") fullStack("js/controls-vision.js")
useKtor() useKtor()
@ -16,15 +14,15 @@ kscience {
dependencies { dependencies {
api(projects.controlsCore) api(projects.controlsCore)
api(projects.controlsConstructor) api(projects.controlsConstructor)
api("space.kscience:visionforge-plotly:$visionforgeVersion") api(libs.visionforge.plotly)
api("space.kscience:visionforge-markdown:$visionforgeVersion") api(libs.visionforge.markdown)
// api("space.kscience:tables-kt:0.2.1") // api("space.kscience:tables-kt:0.2.1")
// api("space.kscience:visionforge-tables:$visionforgeVersion") // api("space.kscience:visionforge-tables:$visionforgeVersion")
} }
jvmMain{ jvmMain{
api("space.kscience:visionforge-server:$visionforgeVersion") api(libs.visionforge.server)
api("io.ktor:ktor-server-cio") api(spclibs.ktor.server.cio)
} }
} }

View File

@ -10,9 +10,6 @@ repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
} }
val ktorVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
dependencies { dependencies {
implementation(projects.controlsCore) implementation(projects.controlsCore)
//implementation(projects.controlsServer) //implementation(projects.controlsServer)
@ -22,9 +19,9 @@ dependencies {
implementation(projects.magix.magixZmq) implementation(projects.magix.magixZmq)
implementation(projects.controlsOpcua) implementation(projects.controlsOpcua)
implementation("io.ktor:ktor-client-cio:$ktorVersion") implementation(spclibs.ktor.client.cio)
implementation("no.tornado:tornadofx:1.7.20") implementation(libs.tornadofx)
implementation("space.kscience:plotlykt-server:0.7.1") implementation(libs.plotlykt.server)
// implementation("com.github.Ricky12Awesome:json-schema-serialization:0.6.6") // implementation("com.github.Ricky12Awesome:json-schema-serialization:0.6.6")
implementation(spclibs.logback.classic) implementation(spclibs.logback.classic)
} }

View File

@ -10,9 +10,6 @@ repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
} }
val ktorVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
dependencies { dependencies {
implementation(projects.controlsCore) implementation(projects.controlsCore)
implementation(projects.magix.magixApi) implementation(projects.magix.magixApi)
@ -24,14 +21,14 @@ dependencies {
implementation(projects.magix.magixStorage.magixStorageXodus) implementation(projects.magix.magixStorage.magixStorageXodus)
// implementation(projects.controlsMongo) // implementation(projects.controlsMongo)
implementation("io.ktor:ktor-client-cio:$ktorVersion") implementation(spclibs.ktor.client.cio)
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.3.1") implementation(spclibs.kotlinx.datetime)
implementation("no.tornado:tornadofx:1.7.20") implementation(libs.tornadofx)
implementation("space.kscience:plotlykt-server:0.5.0") implementation(libs.plotlykt.server)
implementation("ch.qos.logback:logback-classic:1.2.11") implementation(libs.logback.classic)
implementation("org.jetbrains.xodus:xodus-entity-store:1.3.232") implementation(libs.xodus.entity.store)
implementation("org.jetbrains.xodus:xodus-environment:1.3.232") implementation(libs.xodus.environment)
implementation("org.jetbrains.xodus:xodus-vfs:1.3.232") implementation(libs.xodus.vfs)
// implementation("org.litote.kmongo:kmongo-coroutine-serialization:4.4.0") // implementation("org.litote.kmongo:kmongo-coroutine-serialization:4.4.0")
} }

View File

@ -8,16 +8,13 @@ repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
} }
val ktorVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
dependencies { dependencies {
implementation(projects.magix.magixServer) implementation(projects.magix.magixServer)
implementation(projects.magix.magixRsocket) implementation(projects.magix.magixRsocket)
implementation(projects.magix.magixZmq) implementation(projects.magix.magixZmq)
implementation("io.ktor:ktor-client-cio:$ktorVersion") implementation(spclibs.ktor.client.cio)
implementation("ch.qos.logback:logback-classic:1.2.11") implementation(libs.logback.classic)
} }
kotlin{ kotlin{
jvmToolchain(11) jvmToolchain(11)

View File

@ -9,17 +9,14 @@ repositories {
maven("https://repo.kotlin.link") maven("https://repo.kotlin.link")
} }
val ktorVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
dependencies { dependencies {
implementation(projects.magix.magixServer) implementation(projects.magix.magixServer)
implementation(projects.controlsMagix) implementation(projects.controlsMagix)
implementation(projects.magix.magixRsocket) implementation(projects.magix.magixRsocket)
implementation(projects.magix.magixZmq) implementation(projects.magix.magixZmq)
implementation("io.ktor:ktor-client-cio:$ktorVersion") implementation(spclibs.ktor.client.cio)
implementation("space.kscience:plotlykt-server:0.7.1") implementation(libs.plotlykt.server)
implementation(spclibs.logback.classic) implementation(spclibs.logback.classic)
} }

View File

@ -25,5 +25,5 @@ val dataforgeVersion: String by extra
dependencies { dependencies {
implementation(project(":controls-ports-ktor")) implementation(project(":controls-ports-ktor"))
implementation(projects.controlsMagix) implementation(projects.controlsMagix)
implementation("no.tornado:tornadofx:1.7.20") implementation(libs.tornadofx)
} }

87
gradle/libs.versions.toml Normal file
View File

@ -0,0 +1,87 @@
[versions]
dataforge = "0.8.0"
rsocket = "0.15.4"
xodus = "2.0.1"
uuid = "0.8.0"
fazecast = "2.10.3"
tornadofx = "1.7.20"
plotlykt = "0.7.0"
logback = "1.2.11"
hivemq = "1.3.1"
rabbitmq = "5.14.2"
kmongo = "4.5.1"
j2mod = "3.2.1"
milo = "0.6.12"
pi4j = "2.3.0"
pi4j-ktx = "2.4.0"
plc4j = "0.12.0"
visionforge = "0.4.1"
versions = "0.51.0"
[libraries]
dataforge-io = { module = "space.kscience:dataforge-io", version.ref = "dataforge" }
dataforge-meta = { module = "space.kscience:dataforge-meta", version.ref = "dataforge" }
uuid = { module = "com.benasher44:uuid", version.ref = "uuid" }
xodus-entity-store = { module = "org.jetbrains.xodus:xodus-entity-store", version.ref = "xodus" }
xodus-environment = { module = "org.jetbrains.xodus:xodus-environment", version.ref = "xodus" }
xodus-vfs = { module = "org.jetbrains.xodus:xodus-vfs", version.ref = "xodus" }
rsocket-ktor-client = { module = "io.rsocket.kotlin:rsocket-ktor-client", version.ref = "rsocket" }
rsocket-ktor-server = { module = "io.rsocket.kotlin:rsocket-ktor-server", version.ref = "rsocket" }
rsocket-transport-ktor-tcp = { module = "io.rsocket.kotlin:rsocket-transport-ktor-tcp", version.ref = "rsocket" }
jSerialComm = { module = "com.fazecast:jSerialComm", version.ref = "fazecast" }
tornadofx = { module = "no.tornado:tornadofx", version.ref = "tornadofx" }
plotlykt-server = { module = "space.kscience:plotlykt-server", version.ref = "plotlykt" }
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
hivemq-mqtt-client = { module = "com.hivemq:hivemq-mqtt-client", version.ref = "hivemq" }
rabbitmq-amqp-client = { module = "com.rabbitmq:amqp-client", version.ref = "rabbitmq" }
j2mod = { module = "com.ghgande:j2mod", version.ref = "j2mod" }
kmongo-coroutine-serialization = { module = "org.litote.kmongo:kmongo-coroutine-serialization", version.ref = "kmongo" }
milo-client = { module = "org.eclipse.milo:sdk-client", version.ref = "milo" }
milo-parser = { module = "org.eclipse.milo:bsd-parser", version.ref = "milo" }
milo-server = { module = "org.eclipse.milo:sdk-server", version.ref = "milo" }
pi4j-ktx = { module = "com.pi4j:pi4j-ktx", version.ref = "pi4j-ktx" }
pi4j-core = { module = "com.pi4j:pi4j-core", version.ref = "pi4j" }
pi4j-plugin-raspberrypi = { module = "com.pi4j:pi4j-plugin-raspberrypi", version.ref = "pi4j" }
pi4j-plugin-pigpio = { module = "com.pi4j:pi4j-plugin-pigpio", version.ref = "pi4j" }
plc4j-spi = { module = "org.apache.plc4x:plc4j-spi", version.ref = "plc4j" }
visionforge-jupiter = { module = "space.kscience:visionforge-jupyter", version.ref = "visionforge" }
visionforge-plotly = { module = "space.kscience:visionforge-plotly", version.ref = "visionforge" }
visionforge-markdown = { module = "space.kscience:visionforge-markdown", version.ref = "visionforge" }
visionforge-server = { module = "space.kscience:visionforge-server", version.ref = "visionforge" }
# Buildscript
[plugins]
versions = { id = "com.github.ben-manes.versions", version.ref = "versions" }

2042
gradle/yarn.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ description = """
dependencies { dependencies {
implementation(project(":magix:magix-rsocket")) implementation(project(":magix:magix-rsocket"))
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk9:${KScienceVersions.coroutinesVersion}") implementation(spclibs.kotlinx.coroutines.jdk9)
} }
//java { //java {

View File

@ -9,7 +9,7 @@ description = """
dependencies { dependencies {
api(projects.magix.magixApi) api(projects.magix.magixApi)
implementation("com.hivemq:hivemq-mqtt-client:1.3.1") implementation(libs.hivemq.mqtt.client)
implementation(spclibs.kotlinx.coroutines.jdk8) implementation(spclibs.kotlinx.coroutines.jdk8)
} }

View File

@ -9,7 +9,7 @@ description = """
dependencies { dependencies {
api(projects.magix.magixApi) api(projects.magix.magixApi)
implementation("com.rabbitmq:amqp-client:5.14.2") implementation(libs.rabbitmq.amqp.client)
} }
readme{ readme{

View File

@ -10,7 +10,6 @@ description = """
""".trimIndent() """.trimIndent()
val ktorVersion: String by rootProject.extra val ktorVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
kscience { kscience {
jvm() jvm()
@ -21,11 +20,11 @@ kscience {
} }
dependencies { dependencies {
api(projects.magix.magixApi) api(projects.magix.magixApi)
implementation("io.ktor:ktor-client-core:$ktorVersion") implementation(spclibs.ktor.client.core)
implementation("io.rsocket.kotlin:rsocket-ktor-client:$rsocketVersion") implementation(libs.rsocket.ktor.client)
} }
dependencies(jvmMain) { dependencies(jvmMain) {
implementation("io.rsocket.kotlin:rsocket-transport-ktor-tcp:$rsocketVersion") implementation(libs.rsocket.transport.ktor.tcp)
} }
} }
@ -33,7 +32,7 @@ kotlin {
sourceSets { sourceSets {
getByName("linuxX64Main") { getByName("linuxX64Main") {
dependencies { dependencies {
implementation("io.rsocket.kotlin:rsocket-transport-ktor-tcp:$rsocketVersion") implementation(libs.rsocket.transport.ktor.tcp)
} }
} }
} }

View File

@ -17,7 +17,6 @@ kscience {
} }
val dataforgeVersion: String by rootProject.extra val dataforgeVersion: String by rootProject.extra
val rsocketVersion: String by rootProject.extra
val ktorVersion: String = space.kscience.gradle.KScienceVersions.ktorVersion val ktorVersion: String = space.kscience.gradle.KScienceVersions.ktorVersion
dependencies{ dependencies{
@ -28,8 +27,8 @@ dependencies{
api("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") api("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
api("io.ktor:ktor-server-html-builder:$ktorVersion") api("io.ktor:ktor-server-html-builder:$ktorVersion")
api("io.rsocket.kotlin:rsocket-ktor-server:$rsocketVersion") api(libs.rsocket.ktor.server)
api("io.rsocket.kotlin:rsocket-transport-ktor-tcp:$rsocketVersion") api(libs.rsocket.transport.ktor.tcp)
} }
readme{ readme{

View File

@ -3,11 +3,9 @@ plugins {
`maven-publish` `maven-publish`
} }
val kmongoVersion = "4.5.1"
dependencies { dependencies {
implementation(projects.controlsStorage) implementation(projects.controlsStorage)
implementation("org.litote.kmongo:kmongo-coroutine-serialization:$kmongoVersion") implementation(libs.kmongo.coroutine.serialization)
} }
readme{ readme{

View File

@ -3,15 +3,13 @@ plugins {
`maven-publish` `maven-publish`
} }
val xodusVersion: String by rootProject.extra
kscience { kscience {
useCoroutines() useCoroutines()
} }
dependencies { dependencies {
api(projects.magix.magixStorage) api(projects.magix.magixStorage)
implementation("org.jetbrains.xodus:xodus-entity-store:$xodusVersion") implementation(libs.xodus.entity.store)
// implementation("org.jetbrains.xodus:dnq:2.0.0") // implementation("org.jetbrains.xodus:dnq:2.0.0")
testImplementation(spclibs.kotlinx.coroutines.test) testImplementation(spclibs.kotlinx.coroutines.test)

View File

@ -9,8 +9,6 @@ description = """
Common utilities and services for Magix endpoints. Common utilities and services for Magix endpoints.
""".trimIndent() """.trimIndent()
val dataforgeVersion: String by rootProject.extra
kscience { kscience {
jvm() jvm()
js() js()
@ -18,7 +16,7 @@ kscience {
useSerialization() useSerialization()
commonMain { commonMain {
api(projects.magix.magixApi) api(projects.magix.magixApi)
api("space.kscience:dataforge-meta:$dataforgeVersion") api(libs.dataforge.meta)
} }
} }

View File

@ -35,6 +35,19 @@ dependencyResolutionManagement {
versionCatalogs { versionCatalogs {
create("spclibs") { create("spclibs") {
from("space.kscience:version-catalog:$toolsVersion") from("space.kscience:version-catalog:$toolsVersion")
library("kotlinx-coroutines-jdk9", "org.jetbrains.kotlinx", "kotlinx-coroutines-jdk9").versionRef("kotlinx-coroutines")
library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor")
library("ktor-client-cio", "io.ktor", "ktor-client-cio").versionRef("ktor")
library("ktor-network", "io.ktor", "ktor-network").versionRef("ktor")
library("ktor-serialization-kotlinx-json", "io.ktor", "ktor-serialization-kotlinx-json").versionRef("ktor")
library("ktor-server-cio", "io.ktor", "ktor-server-cio").versionRef("ktor")
library("ktor-server-websockets", "io.ktor", "ktor-server-websockets").versionRef("ktor")
library("ktor-server-content-negotiation", "io.ktor", "ktor-server-content-negotiation").versionRef("ktor")
library("ktor-server-html-builder", "io.ktor", "ktor-server-html-builder").versionRef("ktor")
library("ktor-server-status-pages", "io.ktor", "ktor-server-status-pages").versionRef("ktor")
} }
} }
} }