diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d6f9d13 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changelog + +## Unreleased + +### Added +- Core interfaces for building a device server +- Magix service for binding controls devices (both as RPC client and server) +- A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols +- A client and server connectors for OPC-UA via Eclipse Milo +- Implementation of byte ports on top os ktor-io asynchronous API +- Implementation of direct serial port communication with JSerialComm +- A combined Magix event loop server with web server for visualization. +- An API for stand-alone Controls-kt device or a hub. +- An implementation of controls-storage on top of JetBrains Xodus. +- A kotlin API for magix standard and some zero-dependency magix services +- Java API to work with magix endpoints without Kotlin +- MQTT client magix endpoint +- RabbitMQ client magix endpoint +- Magix endpoint (client) based on RSocket +- A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket routes. +- Magix history database API +- ZMQ client endpoint for Magix + +### Changed + +### Deprecated + +### Removed + +### Fixed + +### Security diff --git a/README.md b/README.md index 9535868..d5b40c3 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ Example view of a demo: ### [controls-core](controls-core) -> +> Core interfaces for building a device server > > **Maturity**: EXPERIMENTAL > @@ -51,140 +51,150 @@ Example view of a demo: > - [device](controls-core/src/commonMain/kotlin/space/kscience/controls/api/Device.kt) : Device API with subscription (asynchronous and pseudo-synchronous properties) > - [deviceMessage](controls-core/src/commonMain/kotlin/space/kscience/controls/api/DeviceMessage.kt) : Specification for messages used to communicate between Controls-kt devices. > - [deviceHub](controls-core/src/commonMain/kotlin/space/kscience/controls/api/DeviceHub.kt) : Grouping of devices into local tree-like hubs. +> - [deviceSpec](controls-core/src/commonMain/kotlin/space/kscience/controls/spec) : Mechanics and type-safe builders for devices. Including separation of device specification and device state. +> - [deviceManager](controls-core/src/commonMain/kotlin/space/kscience/controls/manager) : DataForge DI integration for devices. Includes device builders. +> - [ports](controls-core/src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays -### [controls-magix-client](controls-magix-client) -> +### [controls-magix](controls-magix) +> Magix service for binding controls devices (both as RPC client and server) > > **Maturity**: EXPERIMENTAL +> +> **Features:** +> - [controlsMagix](controls-magix/src/commonMain/kotlin/space/kscience/controls/client/controlsMagix.kt) : Connect a `DeviceManage` with one or many devices to the Magix endpoint +> - [DeviceClient](controls-magix/src/commonMain/kotlin/space/kscience/controls/client/DeviceClient.kt) : A remote connector to Controls-kt device via Magix + ### [controls-modbus](controls-modbus) -> +> A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols > > **Maturity**: EXPERIMENTAL +> +> **Features:** +> - [modbusRegistryMap](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/ModbusRegistryMap.kt) : Type-safe modbus registry map. Allows to define both single-register and multi-register entries (using DataForge IO). +Automatically checks consistency. +> - [modbusProcessImage](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt) : Binding of slave (server) modbus device to Controls-kt device +> - [modbusDevice](controls-modbus/src/main/kotlin/space/kscience/controls/modbus/ModbusDevice.kt) : A device with additional methods to work with modbus registers. + ### [controls-opcua](controls-opcua) -> +> A client and server connectors for OPC-UA via Eclipse Milo > > **Maturity**: EXPERIMENTAL +> +> **Features:** +> - [opcuaClient](controls-opcua/src/main/kotlin/space/kscience/controls/opcua/client) : Connect a Controls-kt as a client to OPC UA server +> - [opcuaServer](controls-opcua/src/main/kotlin/space/kscience/controls/opcua/server) : Create an OPC UA server on top of Controls-kt device (or device hub) + ### [controls-pi](controls-pi) -> +> Utils to work with controls-kt on Raspberry pi > > **Maturity**: EXPERIMENTAL ### [controls-ports-ktor](controls-ports-ktor) -> +> Implementation of byte ports on top os ktor-io asynchronous API > -> **Maturity**: EXPERIMENTAL +> **Maturity**: PROTOTYPE ### [controls-serial](controls-serial) -> +> Implementation of direct serial port communication with JSerialComm > > **Maturity**: EXPERIMENTAL ### [controls-server](controls-server) -> +> A combined Magix event loop server with web server for visualization. > -> **Maturity**: EXPERIMENTAL +> **Maturity**: PROTOTYPE ### [controls-storage](controls-storage) -> +> An API for stand-alone Controls-kt device or a hub. > > **Maturity**: PROTOTYPE ### [demo](demo) -> > > **Maturity**: EXPERIMENTAL ### [magix](magix) -> > > **Maturity**: EXPERIMENTAL ### [controls-storage/controls-xodus](controls-storage/controls-xodus) -> +> An implementation of controls-storage on top of JetBrains Xodus. > > **Maturity**: PROTOTYPE ### [demo/all-things](demo/all-things) -> > > **Maturity**: EXPERIMENTAL ### [demo/car](demo/car) -> > > **Maturity**: EXPERIMENTAL ### [demo/echo](demo/echo) -> > > **Maturity**: EXPERIMENTAL ### [demo/magix-demo](demo/magix-demo) -> > > **Maturity**: EXPERIMENTAL ### [demo/many-devices](demo/many-devices) -> > > **Maturity**: EXPERIMENTAL ### [demo/mks-pdr900](demo/mks-pdr900) -> > > **Maturity**: EXPERIMENTAL ### [demo/motors](demo/motors) -> > > **Maturity**: EXPERIMENTAL ### [magix/magix-api](magix/magix-api) -> +> A kotlin API for magix standard and some zero-dependency magix services > > **Maturity**: EXPERIMENTAL -### [magix/magix-java-client](magix/magix-java-client) -> +### [magix/magix-java-endpoint](magix/magix-java-endpoint) +> Java API to work with magix endpoints without Kotlin > > **Maturity**: EXPERIMENTAL ### [magix/magix-mqtt](magix/magix-mqtt) -> +> MQTT client magix endpoint > > **Maturity**: PROTOTYPE ### [magix/magix-rabbit](magix/magix-rabbit) -> +> RabbitMQ client magix endpoint > > **Maturity**: PROTOTYPE ### [magix/magix-rsocket](magix/magix-rsocket) -> +> Magix endpoint (client) based on RSocket > > **Maturity**: EXPERIMENTAL ### [magix/magix-server](magix/magix-server) -> +> A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket routes. > > **Maturity**: EXPERIMENTAL ### [magix/magix-storage](magix/magix-storage) -> +> Magix history database API > -> **Maturity**: EXPERIMENTAL +> **Maturity**: PROTOTYPE ### [magix/magix-zmq](magix/magix-zmq) -> +> ZMQ client endpoint for Magix > > **Maturity**: EXPERIMENTAL ### [magix/magix-storage/magix-storage-xodus](magix/magix-storage/magix-storage-xodus) -> > > **Maturity**: PROTOTYPE diff --git a/build.gradle.kts b/build.gradle.kts index b854502..fda627d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ val xodusVersion by extra("2.0.1") allprojects { group = "space.kscience" - version = "0.2.0-dev-2" + version = "0.2.0" repositories{ maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") } diff --git a/controls-core/README.md b/controls-core/README.md index 1a8fa70..b75961d 100644 --- a/controls-core/README.md +++ b/controls-core/README.md @@ -1,39 +1,33 @@ # Module controls-core - +Core interfaces for building a device server ## Features - [device](src/commonMain/kotlin/space/kscience/controls/api/Device.kt) : Device API with subscription (asynchronous and pseudo-synchronous properties) - [deviceMessage](src/commonMain/kotlin/space/kscience/controls/api/DeviceMessage.kt) : Specification for messages used to communicate between Controls-kt devices. - [deviceHub](src/commonMain/kotlin/space/kscience/controls/api/DeviceHub.kt) : Grouping of devices into local tree-like hubs. + - [deviceSpec](src/commonMain/kotlin/space/kscience/controls/spec) : Mechanics and type-safe builders for devices. Including separation of device specification and device state. + - [deviceManager](src/commonMain/kotlin/space/kscience/controls/manager) : DataForge DI integration for devices. Includes device builders. + - [ports](src/commonMain/kotlin/space/kscience/controls/ports) : Working with asynchronous data sending and receiving raw byte arrays ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-core:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-core:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-core:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-core:0.2.0-dev-2") + implementation("space.kscience:controls-core:0.2.0") } ``` diff --git a/controls-core/build.gradle.kts b/controls-core/build.gradle.kts index 41acc60..bbe32eb 100644 --- a/controls-core/build.gradle.kts +++ b/controls-core/build.gradle.kts @@ -1,8 +1,14 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.mpp") `maven-publish` } +description = """ + Core interfaces for building a device server +""".trimIndent() + val dataforgeVersion: String by rootProject.extra kscience { @@ -22,25 +28,41 @@ kscience { readme{ + maturity = Maturity.EXPERIMENTAL + feature("device", ref = "src/commonMain/kotlin/space/kscience/controls/api/Device.kt"){ """ Device API with subscription (asynchronous and pseudo-synchronous properties) """.trimIndent() } -} -readme{ feature("deviceMessage", ref = "src/commonMain/kotlin/space/kscience/controls/api/DeviceMessage.kt"){ """ Specification for messages used to communicate between Controls-kt devices. """.trimIndent() } -} -readme{ feature("deviceHub", ref = "src/commonMain/kotlin/space/kscience/controls/api/DeviceHub.kt"){ """ Grouping of devices into local tree-like hubs. """.trimIndent() } + + feature("deviceSpec", ref = "src/commonMain/kotlin/space/kscience/controls/spec"){ + """ + Mechanics and type-safe builders for devices. Including separation of device specification and device state. + """.trimIndent() + } + + feature("deviceManager", ref = "src/commonMain/kotlin/space/kscience/controls/manager"){ + """ + DataForge DI integration for devices. Includes device builders. + """.trimIndent() + } + + feature("ports", ref = "src/commonMain/kotlin/space/kscience/controls/ports"){ + """ + Working with asynchronous data sending and receiving raw byte arrays + """.trimIndent() + } } \ No newline at end of file diff --git a/controls-magix/README.md b/controls-magix/README.md index eec6dc1..5473f02 100644 --- a/controls-magix/README.md +++ b/controls-magix/README.md @@ -1,32 +1,29 @@ -# Module controls-magix-client +# Module controls-magix + +Magix service for binding controls devices (both as RPC client and server) + +## Features + + - [controlsMagix](src/commonMain/kotlin/space/kscience/controls/client/controlsMagix.kt) : Connect a `DeviceManage` with one or many devices to the Magix endpoint + - [DeviceClient](src/commonMain/kotlin/space/kscience/controls/client/DeviceClient.kt) : A remote connector to Controls-kt device via Magix -Magix service for binding controls devices (both as RPC client and server ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-magix-client:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-magix:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-magix-client:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-magix-client:0.2.0-dev-2") + implementation("space.kscience:controls-magix:0.2.0") } ``` diff --git a/controls-magix/build.gradle.kts b/controls-magix/build.gradle.kts index 76c7956..0296b8c 100644 --- a/controls-magix/build.gradle.kts +++ b/controls-magix/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.mpp") `maven-publish` @@ -21,5 +23,17 @@ kscience { } readme { + maturity = Maturity.EXPERIMENTAL + feature("controlsMagix", ref = "src/commonMain/kotlin/space/kscience/controls/client/controlsMagix.kt"){ + """ + Connect a `DeviceManage` with one or many devices to the Magix endpoint + """.trimIndent() + } + + feature("DeviceClient", ref = "src/commonMain/kotlin/space/kscience/controls/client/DeviceClient.kt"){ + """ + A remote connector to Controls-kt device via Magix + """.trimIndent() + } } \ No newline at end of file diff --git a/controls-modbus/README.md b/controls-modbus/README.md index 1e9a395..78d515a 100644 --- a/controls-modbus/README.md +++ b/controls-modbus/README.md @@ -2,31 +2,30 @@ A plugin for Controls-kt device server on top of modbus-rtu/modbus-tcp protocols +## Features + + - [modbusRegistryMap](src/main/kotlin/space/kscience/controls/modbus/ModbusRegistryMap.kt) : Type-safe modbus registry map. Allows to define both single-register and multi-register entries (using DataForge IO). +Automatically checks consistency. + - [modbusProcessImage](src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt) : Binding of slave (server) modbus device to Controls-kt device + - [modbusDevice](src/main/kotlin/space/kscience/controls/modbus/ModbusDevice.kt) : A device with additional methods to work with modbus registers. + + ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-modbus:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-modbus:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-modbus:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-modbus:0.2.0-dev-2") + implementation("space.kscience:controls-modbus:0.2.0") } ``` diff --git a/controls-modbus/build.gradle.kts b/controls-modbus/build.gradle.kts index 341d201..aee64d5 100644 --- a/controls-modbus/build.gradle.kts +++ b/controls-modbus/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` @@ -12,3 +14,26 @@ dependencies { api(projects.controlsCore) api("com.ghgande:j2mod:3.1.1") } + +readme{ + maturity = Maturity.EXPERIMENTAL + + feature("modbusRegistryMap", ref = "src/main/kotlin/space/kscience/controls/modbus/ModbusRegistryMap.kt"){ + """ + Type-safe modbus registry map. Allows to define both single-register and multi-register entries (using DataForge IO). + Automatically checks consistency. + """.trimIndent() + } + + feature("modbusProcessImage", ref = "src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt"){ + """ + Binding of slave (server) modbus device to Controls-kt device + """.trimIndent() + } + + feature("modbusDevice", ref = "src/main/kotlin/space/kscience/controls/modbus/ModbusDevice.kt"){ + """ + A device with additional methods to work with modbus registers. + """.trimIndent() + } +} \ No newline at end of file diff --git a/controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt b/controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt index 3352f1a..2f56a8a 100644 --- a/controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt +++ b/controls-modbus/src/main/kotlin/space/kscience/controls/modbus/DeviceProcessImage.kt @@ -12,7 +12,7 @@ import space.kscience.controls.spec.set import space.kscience.controls.spec.useProperty -public class DeviceProcessImageBuilder( +public class DeviceProcessImageBuilder internal constructor( private val device: D, public val image: ProcessImageImplementation, ) { @@ -201,7 +201,9 @@ public class DeviceProcessImageBuilder( } - +/** + * Bind the device to Modbus slave (server) image. + */ public fun D.bindProcessImage( openOnBind: Boolean = true, binding: DeviceProcessImageBuilder.() -> Unit, diff --git a/controls-opcua/README.md b/controls-opcua/README.md index a365cb2..8cdd373 100644 --- a/controls-opcua/README.md +++ b/controls-opcua/README.md @@ -1,32 +1,29 @@ # Module controls-opcua +A client and server connectors for OPC-UA via Eclipse Milo + +## Features + + - [opcuaClient](src/main/kotlin/space/kscience/controls/opcua/client) : Connect a Controls-kt as a client to OPC UA server + - [opcuaServer](src/main/kotlin/space/kscience/controls/opcua/server) : Create an OPC UA server on top of Controls-kt device (or device hub) ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-opcua:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-opcua:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-opcua:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-opcua:0.2.0-dev-2") + implementation("space.kscience:controls-opcua:0.2.0") } ``` diff --git a/controls-opcua/build.gradle.kts b/controls-opcua/build.gradle.kts index b0530c7..e7e1da8 100644 --- a/controls-opcua/build.gradle.kts +++ b/controls-opcua/build.gradle.kts @@ -1,11 +1,17 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` } +description = """ + A client and server connectors for OPC-UA via Eclipse Milo +""".trimIndent() + val ktorVersion: String by rootProject.extra -val miloVersion: String = "0.6.9" +val miloVersion: String = "0.6.10" dependencies { api(projects.controlsCore) @@ -17,3 +23,19 @@ dependencies { testImplementation(spclibs.kotlinx.coroutines.test) } + +readme{ + maturity = Maturity.EXPERIMENTAL + + feature("opcuaClient", ref = "src/main/kotlin/space/kscience/controls/opcua/client"){ + """ + Connect a Controls-kt as a client to OPC UA server + """.trimIndent() + } + + feature("opcuaServer", ref = "src/main/kotlin/space/kscience/controls/opcua/server"){ + """ + Create an OPC UA server on top of Controls-kt device (or device hub) + """.trimIndent() + } +} diff --git a/controls-pi/README.md b/controls-pi/README.md index 9d91bcf..cd9ee0a 100644 --- a/controls-pi/README.md +++ b/controls-pi/README.md @@ -1,32 +1,23 @@ # Module controls-pi - +Utils to work with controls-kt on Raspberry pi ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-pi:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-pi:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-pi:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-pi:0.2.0-dev-2") + implementation("space.kscience:controls-pi:0.2.0") } ``` diff --git a/controls-pi/build.gradle.kts b/controls-pi/build.gradle.kts index b269c85..a763396 100644 --- a/controls-pi/build.gradle.kts +++ b/controls-pi/build.gradle.kts @@ -3,6 +3,10 @@ plugins { `maven-publish` } +description = """ + Utils to work with controls-kt on Raspberry pi +""".trimIndent() + dependencies{ api(project(":controls-core")) api("com.pi4j:pi4j-ktx:2.4.0") // Kotlin DSL diff --git a/controls-ports-ktor/README.md b/controls-ports-ktor/README.md index b43e48c..7f935f9 100644 --- a/controls-ports-ktor/README.md +++ b/controls-ports-ktor/README.md @@ -1,32 +1,23 @@ # Module controls-ports-ktor - +Implementation of byte ports on top os ktor-io asynchronous API ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-ports-ktor:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-ports-ktor:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-ports-ktor:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-ports-ktor:0.2.0-dev-2") + implementation("space.kscience:controls-ports-ktor:0.2.0") } ``` diff --git a/controls-ports-ktor/build.gradle.kts b/controls-ports-ktor/build.gradle.kts index 93e376c..4c8ad9a 100644 --- a/controls-ports-ktor/build.gradle.kts +++ b/controls-ports-ktor/build.gradle.kts @@ -1,11 +1,21 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` } +description = """ + Implementation of byte ports on top os ktor-io asynchronous API +""".trimIndent() + val ktorVersion: String by rootProject.extra dependencies { api(projects.controlsCore) api("io.ktor:ktor-network:$ktorVersion") } + +readme{ + maturity = Maturity.PROTOTYPE +} diff --git a/controls-serial/README.md b/controls-serial/README.md index bb2405a..209055d 100644 --- a/controls-serial/README.md +++ b/controls-serial/README.md @@ -1,32 +1,23 @@ # Module controls-serial - +Implementation of direct serial port communication with JSerialComm ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-serial:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-serial:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-serial:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-serial:0.2.0-dev-2") + implementation("space.kscience:controls-serial:0.2.0") } ``` diff --git a/controls-serial/build.gradle.kts b/controls-serial/build.gradle.kts index 006a7c2..a9afc41 100644 --- a/controls-serial/build.gradle.kts +++ b/controls-serial/build.gradle.kts @@ -1,9 +1,17 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` } +description = "Implementation of direct serial port communication with JSerialComm" + dependencies{ api(project(":controls-core")) implementation("com.fazecast:jSerialComm:2.10.3") +} + +readme{ + maturity = Maturity.EXPERIMENTAL } \ No newline at end of file diff --git a/controls-server/README.md b/controls-server/README.md index e2218a0..83408e8 100644 --- a/controls-server/README.md +++ b/controls-server/README.md @@ -1,32 +1,23 @@ # Module controls-server -A magix event loop server with web server for visualization. +A combined Magix event loop server with web server for visualization. ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-server:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-server:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-server:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-server:0.2.0-dev-2") + implementation("space.kscience:controls-server:0.2.0") } ``` diff --git a/controls-server/build.gradle.kts b/controls-server/build.gradle.kts index 2bf9b01..43a9d61 100644 --- a/controls-server/build.gradle.kts +++ b/controls-server/build.gradle.kts @@ -1,10 +1,12 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` } description = """ - A magix event loop server with web server for visualization. + A combined Magix event loop server with web server for visualization. """.trimIndent() val dataforgeVersion: String by rootProject.extra @@ -20,4 +22,8 @@ dependencies { implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") implementation("io.ktor:ktor-server-html-builder:$ktorVersion") implementation("io.ktor:ktor-server-status-pages:$ktorVersion") +} + +readme{ + maturity = Maturity.PROTOTYPE } \ No newline at end of file diff --git a/controls-storage/README.md b/controls-storage/README.md index a70b2e2..51cdbcb 100644 --- a/controls-storage/README.md +++ b/controls-storage/README.md @@ -1,32 +1,23 @@ # Module controls-storage - +An API for stand-alone Controls-kt device or a hub. ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-storage:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-storage:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-storage:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-storage:0.2.0-dev-2") + implementation("space.kscience:controls-storage:0.2.0") } ``` diff --git a/controls-storage/build.gradle.kts b/controls-storage/build.gradle.kts index a8c6c29..b3d8c15 100644 --- a/controls-storage/build.gradle.kts +++ b/controls-storage/build.gradle.kts @@ -5,6 +5,10 @@ plugins { val dataforgeVersion: String by rootProject.extra +description = """ + An API for stand-alone Controls-kt device or a hub. +""".trimIndent() + kscience{ jvm() js() diff --git a/controls-storage/controls-xodus/README.md b/controls-storage/controls-xodus/README.md index cb7b761..790b356 100644 --- a/controls-storage/controls-xodus/README.md +++ b/controls-storage/controls-xodus/README.md @@ -1,32 +1,23 @@ # Module controls-xodus - +An implementation of controls-storage on top of JetBrains Xodus. ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:controls-xodus:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:controls-xodus:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:controls-xodus:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:controls-xodus:0.2.0-dev-2") + implementation("space.kscience:controls-xodus:0.2.0") } ``` diff --git a/controls-storage/controls-xodus/build.gradle.kts b/controls-storage/controls-xodus/build.gradle.kts index 635f8e3..329f3ce 100644 --- a/controls-storage/controls-xodus/build.gradle.kts +++ b/controls-storage/controls-xodus/build.gradle.kts @@ -5,6 +5,10 @@ plugins { val xodusVersion: String by rootProject.extra +description = """ + An implementation of controls-storage on top of JetBrains Xodus. +""".trimIndent() + dependencies { api(projects.controlsStorage) implementation("org.jetbrains.xodus:xodus-entity-store:$xodusVersion") diff --git a/demo/many-devices/src/main/kotlin/space/kscience/controls/demo/MassDevice.kt b/demo/many-devices/src/main/kotlin/space/kscience/controls/demo/MassDevice.kt index 94ef9db..5c89c26 100644 --- a/demo/many-devices/src/main/kotlin/space/kscience/controls/demo/MassDevice.kt +++ b/demo/many-devices/src/main/kotlin/space/kscience/controls/demo/MassDevice.kt @@ -33,6 +33,7 @@ import space.kscience.plotly.server.show import space.kscince.magix.zmq.ZmqMagixFlowPlugin import kotlin.random.Random import kotlin.time.Duration +import kotlin.time.Duration.Companion.ZERO import kotlin.time.Duration.Companion.milliseconds @@ -48,7 +49,7 @@ class MassDevice(context: Context, meta: Meta) : DeviceBySpec(MassDe val value by doubleProperty { randomValue } override suspend fun MassDevice.onOpen() { - doRecurring(10.milliseconds) { + doRecurring((meta["delay"].int ?: 10).milliseconds) { read(value) } } @@ -68,6 +69,7 @@ suspend fun main() { repeat(numDevices) { context.launch(newFixedThreadPoolContext(2, "Device${it}")) { + delay(1) val deviceContext = Context("Device${it}") { plugin(DeviceManager) } @@ -89,6 +91,8 @@ suspend fun main() { plot(renderer = container) { layout { title = "Latest event" + xaxis.title = "Device number" + yaxis.title = "Maximum latency in ms" } bar { launch(Dispatchers.IO) { @@ -97,18 +101,23 @@ suspend fun main() { val mutex = Mutex() val latest = HashMap() + val max = HashMap() monitorEndpoint.subscribe(DeviceManager.magixFormat).onEach { (magixMessage, payload) -> mutex.withLock { + val delay = Clock.System.now() - payload.time!! latest[magixMessage.sourceEndpoint] = Clock.System.now() - payload.time!! + max[magixMessage.sourceEndpoint] = + maxOf(delay, max[magixMessage.sourceEndpoint] ?: ZERO) } }.launchIn(this) while (isActive) { delay(200) mutex.withLock { - val sorted = latest.mapKeys { it.key.substring(6).toInt() }.toSortedMap() + val sorted = max.mapKeys { it.key.substring(6).toInt() }.toSortedMap() latest.clear() + max.clear() x.numbers = sorted.keys y.numbers = sorted.values.map { it.inWholeMilliseconds / 1000.0 + 0.0001 } } diff --git a/gradle.properties b/gradle.properties index 5c5294c..5b956f1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,4 +10,4 @@ publishing.sonatype=false org.gradle.configureondemand=true org.gradle.jvmargs=-Xmx4096m -toolsVersion=0.14.8-kotlin-1.8.20 \ No newline at end of file +toolsVersion=0.14.10-kotlin-1.9.0 \ No newline at end of file diff --git a/magix/README.md b/magix/README.md deleted file mode 100644 index de1d7a3..0000000 --- a/magix/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# Module magix - - - diff --git a/magix/build.gradle.kts b/magix/build.gradle.kts deleted file mode 100644 index e69de29..0000000 diff --git a/magix/magix-api/README.md b/magix/magix-api/README.md index e1207ab..ee00c53 100644 --- a/magix/magix-api/README.md +++ b/magix/magix-api/README.md @@ -1,32 +1,23 @@ # Module magix-api - +A kotlin API for magix standard and some zero-dependency magix services ## Usage ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-api:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-api:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-api:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-api:0.2.0-dev-2") + implementation("space.kscience:magix-api:0.2.0") } ``` diff --git a/magix/magix-api/build.gradle.kts b/magix/magix-api/build.gradle.kts index 5f8bdf3..159989d 100644 --- a/magix/magix-api/build.gradle.kts +++ b/magix/magix-api/build.gradle.kts @@ -1,8 +1,14 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.mpp") `maven-publish` } +description = """ + A kotlin API for magix standard and some zero-dependency magix services +""".trimIndent() + kscience { jvm() js() @@ -13,3 +19,6 @@ kscience { } } +readme{ + maturity = Maturity.EXPERIMENTAL +} diff --git a/magix/magix-java-client/README.md b/magix/magix-java-client/README.md deleted file mode 100644 index a81787e..0000000 --- a/magix/magix-java-client/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# Module magix-java-client - - - -## Usage - -## Artifact: - -The Maven coordinates of this project are `space.kscience:magix-java-client:0.2.0-dev-2`. - -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-java-client:0.2.0-dev-2' -} -``` -**Gradle Kotlin DSL:** -```kotlin -repositories { - maven("https://repo.kotlin.link") - mavenCentral() -} - -dependencies { - implementation("space.kscience:magix-java-client:0.2.0-dev-2") -} -``` diff --git a/magix/magix-java-endpoint/README.md b/magix/magix-java-endpoint/README.md new file mode 100644 index 0000000..abcaa6f --- /dev/null +++ b/magix/magix-java-endpoint/README.md @@ -0,0 +1,23 @@ +# Module magix-java-endpoint + +Java API to work with magix endpoints without Kotlin + +## Usage + +## Artifact: + +The Maven coordinates of this project are `space.kscience:magix-java-endpoint:0.2.0`. + +**Gradle Kotlin DSL:** +```kotlin +repositories { + maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") + mavenCentral() +} + +dependencies { + implementation("space.kscience:magix-java-endpoint:0.2.0") +} +``` diff --git a/magix/magix-java-client/build.gradle.kts b/magix/magix-java-endpoint/build.gradle.kts similarity index 79% rename from magix/magix-java-client/build.gradle.kts rename to magix/magix-java-endpoint/build.gradle.kts index 63041b3..ff51835 100644 --- a/magix/magix-java-client/build.gradle.kts +++ b/magix/magix-java-endpoint/build.gradle.kts @@ -1,5 +1,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import space.kscience.gradle.KScienceVersions +import space.kscience.gradle.Maturity plugins { java @@ -7,6 +8,10 @@ plugins { `maven-publish` } +description = """ + Java API to work with magix endpoints without Kotlin +""".trimIndent() + dependencies { implementation(project(":magix:magix-rsocket")) implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk9:${KScienceVersions.coroutinesVersion}") @@ -23,4 +28,8 @@ tasks.withType{ kotlinOptions { freeCompilerArgs -= "-Xjdk-release=11" } +} + +readme{ + maturity = Maturity.EXPERIMENTAL } \ No newline at end of file diff --git a/magix/magix-java-client/src/main/java/space/kscience/magix/client/MagixClient.java b/magix/magix-java-endpoint/src/main/java/space/kscience/magix/client/JMagixEndpoint.java similarity index 70% rename from magix/magix-java-client/src/main/java/space/kscience/magix/client/MagixClient.java rename to magix/magix-java-endpoint/src/main/java/space/kscience/magix/client/JMagixEndpoint.java index 3270544..08d0a26 100644 --- a/magix/magix-java-client/src/main/java/space/kscience/magix/client/MagixClient.java +++ b/magix/magix-java-endpoint/src/main/java/space/kscience/magix/client/JMagixEndpoint.java @@ -11,7 +11,7 @@ import java.util.concurrent.Flow; * * @param */ -public interface MagixClient { +public interface JMagixEndpoint { void broadcast(MagixMessage msg) throws IOException; Flow.Publisher subscribe(); @@ -22,8 +22,8 @@ public interface MagixClient { * @param port port of magix server event loop * @return the client */ - static MagixClient rSocketTcp(String host, int port) { - return ControlsMagixClient.Companion.rSocketTcp(host, port); + static JMagixEndpoint rSocketTcp(String host, int port) { + return KMagixEndpoint.Companion.rSocketTcp(host, port); } /** @@ -32,7 +32,7 @@ public interface MagixClient { * @param port port of magix server event loop * @param path context path for WS connection */ - static MagixClient rSocketWs(String host, int port, String path) { - return ControlsMagixClient.Companion.rSocketWs(host, port, path); + static JMagixEndpoint rSocketWs(String host, int port, String path) { + return KMagixEndpoint.Companion.rSocketWs(host, port, path); } } diff --git a/magix/magix-java-client/src/main/kotlin/space/kscience/magix/client/ControlsMagixClient.kt b/magix/magix-java-endpoint/src/main/kotlin/space/kscience/magix/client/KMagixEndpoint.kt similarity index 81% rename from magix/magix-java-client/src/main/kotlin/space/kscience/magix/client/ControlsMagixClient.kt rename to magix/magix-java-endpoint/src/main/kotlin/space/kscience/magix/client/KMagixEndpoint.kt index 1efa746..2d20d8f 100644 --- a/magix/magix-java-client/src/main/kotlin/space/kscience/magix/client/ControlsMagixClient.kt +++ b/magix/magix-java-endpoint/src/main/kotlin/space/kscience/magix/client/KMagixEndpoint.kt @@ -9,10 +9,10 @@ import space.kscience.magix.rsocket.rSocketWithTcp import space.kscience.magix.rsocket.rSocketWithWebSockets import java.util.concurrent.Flow -internal class ControlsMagixClient( +internal class KMagixEndpoint( private val endpoint: MagixEndpoint, private val filter: MagixMessageFilter, -) : MagixClient { +) : JMagixEndpoint { override fun broadcast(msg: MagixMessage): Unit = runBlocking { endpoint.broadcast(msg) @@ -25,22 +25,22 @@ internal class ControlsMagixClient( fun rSocketTcp( host: String, port: Int, - ): ControlsMagixClient { + ): KMagixEndpoint { val endpoint = runBlocking { MagixEndpoint.rSocketWithTcp(host, port) } - return ControlsMagixClient(endpoint, MagixMessageFilter()) + return KMagixEndpoint(endpoint, MagixMessageFilter()) } fun rSocketWs( host: String, port: Int, path: String = "/rsocket" - ): ControlsMagixClient { + ): KMagixEndpoint { val endpoint = runBlocking { MagixEndpoint.rSocketWithWebSockets(host, port, path) } - return ControlsMagixClient(endpoint, MagixMessageFilter()) + return KMagixEndpoint(endpoint, MagixMessageFilter()) } } } \ No newline at end of file diff --git a/magix/magix-mqtt/README.md b/magix/magix-mqtt/README.md index 061803e..6c34fdc 100644 --- a/magix/magix-mqtt/README.md +++ b/magix/magix-mqtt/README.md @@ -6,27 +6,18 @@ MQTT client magix endpoint ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-mqtt:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-mqtt:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-mqtt:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-mqtt:0.2.0-dev-2") + implementation("space.kscience:magix-mqtt:0.2.0") } ``` diff --git a/magix/magix-rabbit/README.md b/magix/magix-rabbit/README.md index 79b0af1..7fc42ad 100644 --- a/magix/magix-rabbit/README.md +++ b/magix/magix-rabbit/README.md @@ -6,27 +6,18 @@ RabbitMQ client magix endpoint ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-rabbit:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-rabbit:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-rabbit:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-rabbit:0.2.0-dev-2") + implementation("space.kscience:magix-rabbit:0.2.0") } ``` diff --git a/magix/magix-rsocket/README.md b/magix/magix-rsocket/README.md index 1307fbe..799717d 100644 --- a/magix/magix-rsocket/README.md +++ b/magix/magix-rsocket/README.md @@ -6,27 +6,18 @@ Magix endpoint (client) based on RSocket ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-rsocket:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-rsocket:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-rsocket:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-rsocket:0.2.0-dev-2") + implementation("space.kscience:magix-rsocket:0.2.0") } ``` diff --git a/magix/magix-rsocket/build.gradle.kts b/magix/magix-rsocket/build.gradle.kts index 39aa8aa..b2046bb 100644 --- a/magix/magix-rsocket/build.gradle.kts +++ b/magix/magix-rsocket/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.mpp") `maven-publish` @@ -35,4 +37,8 @@ kotlin { } } } +} + +readme { + maturity = Maturity.EXPERIMENTAL } \ No newline at end of file diff --git a/magix/magix-server/README.md b/magix/magix-server/README.md index 0ce680b..27d97e0 100644 --- a/magix/magix-server/README.md +++ b/magix/magix-server/README.md @@ -6,27 +6,18 @@ A magix event loop implementation in Kotlin. Includes HTTP/SSE and RSocket route ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-server:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-server:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-server:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-server:0.2.0-dev-2") + implementation("space.kscience:magix-server:0.2.0") } ``` diff --git a/magix/magix-server/build.gradle.kts b/magix/magix-server/build.gradle.kts index 4a3b102..cb63049 100644 --- a/magix/magix-server/build.gradle.kts +++ b/magix/magix-server/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` @@ -28,4 +30,8 @@ dependencies{ api("io.rsocket.kotlin:rsocket-ktor-server:$rsocketVersion") api("io.rsocket.kotlin:rsocket-transport-ktor-tcp:$rsocketVersion") +} + +readme{ + maturity = Maturity.EXPERIMENTAL } \ No newline at end of file diff --git a/magix/magix-storage/README.md b/magix/magix-storage/README.md index fd9822f..fa367b4 100644 --- a/magix/magix-storage/README.md +++ b/magix/magix-storage/README.md @@ -6,27 +6,18 @@ Magix history database API ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-storage:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-storage:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-storage:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-storage:0.2.0-dev-2") + implementation("space.kscience:magix-storage:0.2.0") } ``` diff --git a/magix/magix-storage/build.gradle.kts b/magix/magix-storage/build.gradle.kts index 76bc2df..cb0bc24 100644 --- a/magix/magix-storage/build.gradle.kts +++ b/magix/magix-storage/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.mpp") `maven-publish` @@ -21,3 +23,7 @@ kscience { api(spclibs.kotlinx.datetime) } } + +readme{ + maturity = Maturity.PROTOTYPE +} diff --git a/magix/magix-storage/magix-storage-xodus/README.md b/magix/magix-storage/magix-storage-xodus/README.md index bcc8a6e..b3d871b 100644 --- a/magix/magix-storage/magix-storage-xodus/README.md +++ b/magix/magix-storage/magix-storage-xodus/README.md @@ -6,27 +6,18 @@ ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-storage-xodus:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-storage-xodus:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-storage-xodus:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-storage-xodus:0.2.0-dev-2") + implementation("space.kscience:magix-storage-xodus:0.2.0") } ``` diff --git a/magix/magix-zmq/README.md b/magix/magix-zmq/README.md index 65c4892..1338cce 100644 --- a/magix/magix-zmq/README.md +++ b/magix/magix-zmq/README.md @@ -6,27 +6,18 @@ ZMQ client endpoint for Magix ## Artifact: -The Maven coordinates of this project are `space.kscience:magix-zmq:0.2.0-dev-2`. +The Maven coordinates of this project are `space.kscience:magix-zmq:0.2.0`. -**Gradle Groovy:** -```groovy -repositories { - maven { url 'https://repo.kotlin.link' } - mavenCentral() -} - -dependencies { - implementation 'space.kscience:magix-zmq:0.2.0-dev-2' -} -``` **Gradle Kotlin DSL:** ```kotlin repositories { maven("https://repo.kotlin.link") + //uncomment to access development builds + //maven("https://maven.pkg.jetbrains.space/spc/p/sci/dev") mavenCentral() } dependencies { - implementation("space.kscience:magix-zmq:0.2.0-dev-2") + implementation("space.kscience:magix-zmq:0.2.0") } ``` diff --git a/magix/magix-zmq/build.gradle.kts b/magix/magix-zmq/build.gradle.kts index 3258e17..cf4ee9b 100644 --- a/magix/magix-zmq/build.gradle.kts +++ b/magix/magix-zmq/build.gradle.kts @@ -1,3 +1,5 @@ +import space.kscience.gradle.Maturity + plugins { id("space.kscience.gradle.jvm") `maven-publish` @@ -12,3 +14,7 @@ dependencies { api("org.slf4j:slf4j-api:2.0.6") api("org.zeromq:jeromq:0.5.2") } + +readme { + maturity = Maturity.EXPERIMENTAL +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 04874d5..20ac44e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -54,7 +54,7 @@ include( ":magix:magix-api", ":magix:magix-server", ":magix:magix-rsocket", - ":magix:magix-java-client", + ":magix:magix-java-endpoint", ":magix:magix-zmq", ":magix:magix-rabbit", ":magix:magix-mqtt",