Define Custom NetMan AMQP Scheme

Removes dependency on node and AMQPServerSerializationscheme
This commit is contained in:
Katelyn Baker 2018-05-17 21:19:05 +01:00
parent 819200ee3e
commit d91f063cbe
3 changed files with 31 additions and 3 deletions

View File

@ -61,7 +61,6 @@ task integrationTest(type: Test) {
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile project(':node')
compile project(':node-api')
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

View File

@ -0,0 +1,30 @@
package com.r3.corda.networkmanage.common.utils
import net.corda.core.cordapp.Cordapp
import net.corda.core.serialization.ClassWhitelist
import net.corda.core.serialization.SerializationContext
import net.corda.core.serialization.SerializationCustomSerializer
import net.corda.nodeapi.internal.serialization.CordaSerializationMagic
import net.corda.nodeapi.internal.serialization.amqp.AbstractAMQPSerializationScheme
import net.corda.nodeapi.internal.serialization.amqp.SerializerFactory
import net.corda.nodeapi.internal.serialization.amqp.amqpMagic
import java.util.concurrent.ConcurrentHashMap
class AMQPNetworkServicesSerializationScheme (
cordappCustomSerializers: Set<SerializationCustomSerializer<*, *>>,
serializerFactoriesForContexts: MutableMap<Pair<ClassWhitelist, ClassLoader>, SerializerFactory>
) : AbstractAMQPSerializationScheme(cordappCustomSerializers, serializerFactoriesForContexts) {
constructor() : this(emptySet(), ConcurrentHashMap())
override fun rpcClientSerializerFactory(context: SerializationContext): SerializerFactory {
throw UnsupportedOperationException()
}
override fun rpcServerSerializerFactory(context: SerializationContext): SerializerFactory {
throw UnsupportedOperationException()
}
override fun canDeserializeVersion(magic: CordaSerializationMagic, target: SerializationContext.UseCase) =
(magic == amqpMagic && target == SerializationContext.UseCase.P2P)
}

View File

@ -17,7 +17,6 @@ import net.corda.core.CordaOID
import net.corda.core.internal.CertRole
import net.corda.core.serialization.internal.SerializationEnvironmentImpl
import net.corda.core.serialization.internal.nodeSerializationEnv
import net.corda.node.serialization.amqp.AMQPServerSerializationScheme
import net.corda.nodeapi.internal.config.UnknownConfigKeysPolicy
import net.corda.nodeapi.internal.config.parseAs
import net.corda.nodeapi.internal.crypto.X509CertificateFactory
@ -60,7 +59,7 @@ fun initialiseSerialization() {
val context = AMQP_P2P_CONTEXT
nodeSerializationEnv = SerializationEnvironmentImpl(
SerializationFactoryImpl().apply {
registerScheme(AMQPServerSerializationScheme())
registerScheme(AMQPNetworkServicesSerializationScheme())
},
context)
}