Skip to content

Commit

Permalink
feat: add jackson module
Browse files Browse the repository at this point in the history
  • Loading branch information
manosbatsis authored Dec 28, 2023
1 parent 6af3e1e commit 536c24b
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 2 deletions.
2 changes: 1 addition & 1 deletion integration-junit5/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-reflect")

implementation(platform("net.corda:corda-api:$cordaApiVersion"))
implementation("net.corda:corda-base")
implementation("net.corda:corda-serialization")
implementation("org.junit.jupiter:junit-jupiter-api:$junitVersion")

implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.github.manosbatsis.corda5.testutils.integration.junit5.jackson

import com.fasterxml.jackson.databind.module.SimpleDeserializers
import com.fasterxml.jackson.databind.module.SimpleModule
import com.fasterxml.jackson.databind.module.SimpleSerializers
import net.corda.v5.base.types.MemberX500Name

class Corda5Module : SimpleModule() {
override fun getModuleName(): String = this.javaClass.simpleName

override fun setupModule(context: SetupContext) {
val serializers = SimpleSerializers()
serializers.addSerializer(MemberX500Name::class.java, MemberX500NameSerializer())
context.addSerializers(serializers)

val deserializers = SimpleDeserializers()
deserializers.addDeserializer(MemberX500Name::class.java, MemberX500NameDeserializer())
context.addDeserializers(deserializers)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.github.manosbatsis.corda5.testutils.integration.junit5.jackson

import com.fasterxml.jackson.core.JsonGenerator
import com.fasterxml.jackson.core.JsonParser
import com.fasterxml.jackson.databind.DeserializationContext
import com.fasterxml.jackson.databind.SerializerProvider
import com.fasterxml.jackson.databind.deser.std.StdDeserializer
import com.fasterxml.jackson.databind.ser.std.StdSerializer
import net.corda.v5.base.types.MemberX500Name

open class MemberX500NameSerializer : StdSerializer<MemberX500Name>(MemberX500Name::class.java) {

override fun serialize(
memberX500Name: MemberX500Name,
jsonGenerator: JsonGenerator,
serializerProvider: SerializerProvider
) {
jsonGenerator.writeString(memberX500Name.toString())
}
}

open class MemberX500NameDeserializer : StdDeserializer<MemberX500Name>(MemberX500Name::class.java) {
override fun deserialize(jsonParser: JsonParser, obj: DeserializationContext): MemberX500Name {
val value: String = jsonParser.codec.readValue(jsonParser, String::class.java)

return MemberX500Name.parse(value)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import com.fasterxml.jackson.module.kotlin.kotlinModule
import com.github.manosbatsis.corda5.testutils.integration.junit5.CombinedWorkerMode
import com.github.manosbatsis.corda5.testutils.integration.junit5.Corda5NodesConfig
import com.github.manosbatsis.corda5.testutils.rest.client.*
import com.github.manosbatsis.corda5.testutils.integration.junit5.jackson.Corda5Module
import com.github.manosbatsis.corda5.testutils.rest.client.model.VirtualNodeInfo
import feign.Feign
import feign.auth.BasicAuthRequestInterceptor
Expand All @@ -21,7 +22,7 @@ class NodeHandlesHelper(

companion object {
private val logger = loggerFor(NodeHandlesHelper::class.java)
private val objectMapper = ObjectMapper().registerModules(JavaTimeModule(), kotlinModule())
private val objectMapper = ObjectMapper().registerModules(JavaTimeModule(), kotlinModule(), Corda5Module())

var nodeHandlesCache: NodeHandles? = null
}
Expand Down

0 comments on commit 536c24b

Please sign in to comment.