From e1b735a0a595d562d634cbc1fa9dcd26d185408a Mon Sep 17 00:00:00 2001 From: dermakov Date: Tue, 9 Apr 2024 20:19:17 +0300 Subject: [PATCH 1/8] Kotlinx serialization --- cinema-api/build.gradle.kts | 5 ++-- cinema-client/build.gradle.kts | 3 +-- .../kobby/cinema/client/application.kt | 26 ++++--------------- cinema-server/build.gradle.kts | 2 +- settings.gradle.kts | 1 + 5 files changed, 11 insertions(+), 26 deletions(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 80b9f12..39e7e2e 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -2,6 +2,7 @@ description = "Cinema API" plugins { kotlin("jvm") + kotlin("plugin.serialization") id("io.github.ermadmi78.kobby") version "4.0.0" } @@ -10,8 +11,8 @@ kotlin { } dependencies { - // Add this dependency to enable Jackson annotation generation in DTO classes - compileOnly("com.fasterxml.jackson.core:jackson-annotations:2.15.4") + // Add this dependency to enable Kotlinx Serialization + compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") // Add this dependency to enable default Ktor adapters generation compileOnly("io.ktor:ktor-client-cio:2.3.9") diff --git a/cinema-client/build.gradle.kts b/cinema-client/build.gradle.kts index c1357bd..d795664 100644 --- a/cinema-client/build.gradle.kts +++ b/cinema-client/build.gradle.kts @@ -16,8 +16,7 @@ dependencies { implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)) implementation("org.springframework.boot:spring-boot-starter") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4") - implementation("com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.4") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") diff --git a/cinema-client/src/main/kotlin/io/github/ermadmi78/kobby/cinema/client/application.kt b/cinema-client/src/main/kotlin/io/github/ermadmi78/kobby/cinema/client/application.kt index ffa525b..ce43d75 100644 --- a/cinema-client/src/main/kotlin/io/github/ermadmi78/kobby/cinema/client/application.kt +++ b/cinema-client/src/main/kotlin/io/github/ermadmi78/kobby/cinema/client/application.kt @@ -1,8 +1,5 @@ package io.github.ermadmi78.kobby.cinema.client -import com.fasterxml.jackson.annotation.JsonCreator -import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper -import com.fasterxml.jackson.module.paramnames.ParameterNamesModule import io.github.ermadmi78.kobby.cinema.api.kobby.kotlin.* import io.github.ermadmi78.kobby.cinema.api.kobby.kotlin.adapter.ktor.CinemaCompositeKtorAdapter import io.ktor.client.* @@ -15,7 +12,6 @@ import kotlinx.coroutines.runBlocking import org.springframework.boot.CommandLineRunner import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.runApplication -import kotlin.reflect.KClass /** * Created on 16.10.2021 @@ -216,31 +212,19 @@ class Application : CommandLineRunner { private fun createKtorAdapter(): CinemaAdapter { // Create Ktor http client val client = HttpClient(CIO) { + expectSuccess = true install(WebSockets) } - // Create Jackson object mapper - val mapper = jacksonObjectMapper() - .registerModule(ParameterNamesModule(JsonCreator.Mode.PROPERTIES)) - - // Create default implementation of CinemaAdapter - // Note, you can write your own implementation + // Default implementation of CinemaAdapter. + // Note, you can write your own implementation. return CinemaCompositeKtorAdapter( client, "http://localhost:8080/graphql", - "ws://localhost:8080/graphql", - object : CinemaMapper { - override fun serialize(value: Any): String = - mapper.writeValueAsString(value) - - override fun deserialize(content: String, contentType: KClass): T = - mapper.readValue(content, contentType.java) - } + "ws://localhost:8080/graphql" ) { println(">> ${it.query}") - if (!it.variables.isNullOrEmpty()) { - println(">> ${it.variables}") - } + println(">> ${it.variables}") } } } \ No newline at end of file diff --git a/cinema-server/build.gradle.kts b/cinema-server/build.gradle.kts index 21f383e..1fb6b41 100644 --- a/cinema-server/build.gradle.kts +++ b/cinema-server/build.gradle.kts @@ -20,7 +20,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-webflux") implementation("org.springframework.data:spring-data-commons") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") implementation(kotlin("stdlib")) implementation(kotlin("reflect")) diff --git a/settings.gradle.kts b/settings.gradle.kts index f34c7e7..f252c34 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,6 +4,7 @@ pluginManagement { val kotlinVersion: String by settings plugins { kotlin("jvm") version kotlinVersion + kotlin("plugin.serialization") version kotlinVersion id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion } } From d085b2a2e045ce7385df33d717260f7e2c566eb0 Mon Sep 17 00:00:00 2001 From: dermakov Date: Sun, 26 May 2024 15:05:30 +0300 Subject: [PATCH 2/8] Kobby release 4.0.1 --- cinema-api/build.gradle.kts | 2 +- gradle.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 39e7e2e..79939ca 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "4.0.0" + id("io.github.ermadmi78.kobby") version "4.0.1" } kotlin { diff --git a/gradle.properties b/gradle.properties index daa9cfe..daf2154 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # suppress inspection "UnusedProperty" for whole file kotlin.code.style=official -kotlin.version=1.9.23 -kotlinVersion=1.9.23 +kotlin.version=1.9.24 +kotlinVersion=1.9.24 group=io.github.ermadmi78 version=0.0.0-SNAPSHOT From 83364a81bd11c9f1704ce493d8f23f9e24ac5c5e Mon Sep 17 00:00:00 2001 From: dermakov Date: Wed, 17 Jul 2024 01:25:03 +0300 Subject: [PATCH 3/8] Kobby release 4.0.3 --- cinema-api/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 79939ca..cfc627c 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "4.0.1" + id("io.github.ermadmi78.kobby") version "4.0.3" } kotlin { From 83b129bd8cea1760cea3c2b37b7f368c17436539 Mon Sep 17 00:00:00 2001 From: dermakov Date: Mon, 27 Jan 2025 14:43:57 +0300 Subject: [PATCH 4/8] Kobby release 4.1.1 --- cinema-api/build.gradle.kts | 4 ++-- cinema-client/build.gradle.kts | 6 +++--- cinema-server/build.gradle.kts | 4 ++-- gradle.properties | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index cfc627c..3fc3305 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "4.0.3" + id("io.github.ermadmi78.kobby") version "4.1.1" } kotlin { @@ -15,5 +15,5 @@ dependencies { compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") // Add this dependency to enable default Ktor adapters generation - compileOnly("io.ktor:ktor-client-cio:2.3.9") + compileOnly("io.ktor:ktor-client-cio:2.3.13") } \ No newline at end of file diff --git a/cinema-client/build.gradle.kts b/cinema-client/build.gradle.kts index d795664..6ff14f5 100644 --- a/cinema-client/build.gradle.kts +++ b/cinema-client/build.gradle.kts @@ -18,10 +18,10 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1") - implementation("io.ktor:ktor-client-cio:2.3.9") - implementation("io.ktor:ktor-client-websockets:2.3.9") + implementation("io.ktor:ktor-client-cio:2.3.13") + implementation("io.ktor:ktor-client-websockets:2.3.13") implementation(kotlin("stdlib")) implementation(kotlin("reflect")) diff --git a/cinema-server/build.gradle.kts b/cinema-server/build.gradle.kts index 1fb6b41..aaf7b56 100644 --- a/cinema-server/build.gradle.kts +++ b/cinema-server/build.gradle.kts @@ -25,6 +25,6 @@ dependencies { implementation(kotlin("stdlib")) implementation(kotlin("reflect")) - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.8.0") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.8.1") } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index daf2154..5b7f049 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ # suppress inspection "UnusedProperty" for whole file kotlin.code.style=official -kotlin.version=1.9.24 -kotlinVersion=1.9.24 +kotlin.version=1.9.25 +kotlinVersion=1.9.25 group=io.github.ermadmi78 version=0.0.0-SNAPSHOT From aabff203b9e0965fcb8bcaa35d6e566d2a74ab8b Mon Sep 17 00:00:00 2001 From: dermakov Date: Thu, 8 May 2025 15:26:43 +0300 Subject: [PATCH 5/8] Kobby release 5.0.0-beta.01 --- cinema-api/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 3fc3305..2967b31 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "4.1.1" + id("io.github.ermadmi78.kobby") version "5.0.0-beta.01" } kotlin { From 088037c5ca21f3831643017335a3acd11641e599 Mon Sep 17 00:00:00 2001 From: dermakov Date: Sun, 11 May 2025 22:21:09 +0300 Subject: [PATCH 6/8] Kobby release 5.0.0 --- cinema-api/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 2967b31..75ac9b5 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "5.0.0-beta.01" + id("io.github.ermadmi78.kobby") version "5.0.0" } kotlin { From 3f1015a25e6548ea516017f567d62ac7b3960565 Mon Sep 17 00:00:00 2001 From: dermakov Date: Sat, 14 Jun 2025 13:35:09 +0300 Subject: [PATCH 7/8] Kobby release 5.2.3 --- cinema-api/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index 75ac9b5..ae2618b 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "5.0.0" + id("io.github.ermadmi78.kobby") version "5.2.3" } kotlin { From 96d41b74ac9a26512dc12a201535d71d89defd02 Mon Sep 17 00:00:00 2001 From: dermakov Date: Sat, 17 Jan 2026 13:32:34 +0300 Subject: [PATCH 8/8] Upgrade to Spring Boot 3.5.9 --- cinema-api/build.gradle.kts | 2 +- cinema-client/build.gradle.kts | 2 +- cinema-server/build.gradle.kts | 2 +- .../src/main/resources/graphiql/index.html | 79 +++++++++++++++++++ 4 files changed, 82 insertions(+), 3 deletions(-) create mode 100644 cinema-server/src/main/resources/graphiql/index.html diff --git a/cinema-api/build.gradle.kts b/cinema-api/build.gradle.kts index ae2618b..0f1051e 100644 --- a/cinema-api/build.gradle.kts +++ b/cinema-api/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema API" plugins { kotlin("jvm") kotlin("plugin.serialization") - id("io.github.ermadmi78.kobby") version "5.2.3" + id("io.github.ermadmi78.kobby") version "5.3.1" } kotlin { diff --git a/cinema-client/build.gradle.kts b/cinema-client/build.gradle.kts index 6ff14f5..4a3843d 100644 --- a/cinema-client/build.gradle.kts +++ b/cinema-client/build.gradle.kts @@ -3,7 +3,7 @@ description = "Cinema Client" plugins { kotlin("jvm") id("org.jetbrains.kotlin.plugin.spring") - id("org.springframework.boot") version "3.2.4" + id("org.springframework.boot") version "3.5.9" } kotlin { diff --git a/cinema-server/build.gradle.kts b/cinema-server/build.gradle.kts index aaf7b56..0ddc35c 100644 --- a/cinema-server/build.gradle.kts +++ b/cinema-server/build.gradle.kts @@ -5,7 +5,7 @@ description = "Cinema Server" plugins { kotlin("jvm") id("org.jetbrains.kotlin.plugin.spring") - id("org.springframework.boot") version "3.2.4" + id("org.springframework.boot") version "3.5.9" } kotlin { diff --git a/cinema-server/src/main/resources/graphiql/index.html b/cinema-server/src/main/resources/graphiql/index.html new file mode 100644 index 0000000..a3a4671 --- /dev/null +++ b/cinema-server/src/main/resources/graphiql/index.html @@ -0,0 +1,79 @@ + + + + + + GraphiQL + + + + + + + +
Loading...
+ +