Skip to content

Commit e1b735a

Browse files
committed
Kotlinx serialization
1 parent 21bd00e commit e1b735a

5 files changed

Lines changed: 11 additions & 26 deletions

File tree

cinema-api/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ description = "Cinema API"
22

33
plugins {
44
kotlin("jvm")
5+
kotlin("plugin.serialization")
56
id("io.github.ermadmi78.kobby") version "4.0.0"
67
}
78

@@ -10,8 +11,8 @@ kotlin {
1011
}
1112

1213
dependencies {
13-
// Add this dependency to enable Jackson annotation generation in DTO classes
14-
compileOnly("com.fasterxml.jackson.core:jackson-annotations:2.15.4")
14+
// Add this dependency to enable Kotlinx Serialization
15+
compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
1516

1617
// Add this dependency to enable default Ktor adapters generation
1718
compileOnly("io.ktor:ktor-client-cio:2.3.9")

cinema-client/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ dependencies {
1616
implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES))
1717
implementation("org.springframework.boot:spring-boot-starter")
1818

19-
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4")
20-
implementation("com.fasterxml.jackson.module:jackson-module-parameter-names:2.15.4")
19+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
2120

2221
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0")
2322

cinema-client/src/main/kotlin/io/github/ermadmi78/kobby/cinema/client/application.kt

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package io.github.ermadmi78.kobby.cinema.client
22

3-
import com.fasterxml.jackson.annotation.JsonCreator
4-
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
5-
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule
63
import io.github.ermadmi78.kobby.cinema.api.kobby.kotlin.*
74
import io.github.ermadmi78.kobby.cinema.api.kobby.kotlin.adapter.ktor.CinemaCompositeKtorAdapter
85
import io.ktor.client.*
@@ -15,7 +12,6 @@ import kotlinx.coroutines.runBlocking
1512
import org.springframework.boot.CommandLineRunner
1613
import org.springframework.boot.autoconfigure.SpringBootApplication
1714
import org.springframework.boot.runApplication
18-
import kotlin.reflect.KClass
1915

2016
/**
2117
* Created on 16.10.2021
@@ -216,31 +212,19 @@ class Application : CommandLineRunner {
216212
private fun createKtorAdapter(): CinemaAdapter {
217213
// Create Ktor http client
218214
val client = HttpClient(CIO) {
215+
expectSuccess = true
219216
install(WebSockets)
220217
}
221218

222-
// Create Jackson object mapper
223-
val mapper = jacksonObjectMapper()
224-
.registerModule(ParameterNamesModule(JsonCreator.Mode.PROPERTIES))
225-
226-
// Create default implementation of CinemaAdapter
227-
// Note, you can write your own implementation
219+
// Default implementation of CinemaAdapter.
220+
// Note, you can write your own implementation.
228221
return CinemaCompositeKtorAdapter(
229222
client,
230223
"http://localhost:8080/graphql",
231-
"ws://localhost:8080/graphql",
232-
object : CinemaMapper {
233-
override fun serialize(value: Any): String =
234-
mapper.writeValueAsString(value)
235-
236-
override fun <T : Any> deserialize(content: String, contentType: KClass<T>): T =
237-
mapper.readValue(content, contentType.java)
238-
}
224+
"ws://localhost:8080/graphql"
239225
) {
240226
println(">> ${it.query}")
241-
if (!it.variables.isNullOrEmpty()) {
242-
println(">> ${it.variables}")
243-
}
227+
println(">> ${it.variables}")
244228
}
245229
}
246230
}

cinema-server/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies {
2020
implementation("org.springframework.boot:spring-boot-starter-webflux")
2121
implementation("org.springframework.data:spring-data-commons")
2222

23-
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4")
23+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
2424

2525
implementation(kotlin("stdlib"))
2626
implementation(kotlin("reflect"))

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ pluginManagement {
44
val kotlinVersion: String by settings
55
plugins {
66
kotlin("jvm") version kotlinVersion
7+
kotlin("plugin.serialization") version kotlinVersion
78
id("org.jetbrains.kotlin.plugin.spring") version kotlinVersion
89
}
910
}

0 commit comments

Comments
 (0)