From 2a961b8e2c39b2bf53d24cb97e4435aee5e37775 Mon Sep 17 00:00:00 2001 From: Chris Rankin Date: Mon, 13 Nov 2017 21:23:23 +0000 Subject: [PATCH] Separate server contexts from shared contexts. (#2044) --- .../internal/serialization/ServerContexts.kt | 22 ----------- .../internal/serialization/SharedContexts.kt | 39 +++++++++++++++++++ 2 files changed, 39 insertions(+), 22 deletions(-) create mode 100644 node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/SharedContexts.kt diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/ServerContexts.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/ServerContexts.kt index 7380cfdd0e..53595b9aa7 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/ServerContexts.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/ServerContexts.kt @@ -36,20 +36,6 @@ val KRYO_STORAGE_CONTEXT = SerializationContextImpl(KryoHeaderV0_1, true, SerializationContext.UseCase.Storage) -val KRYO_P2P_CONTEXT = SerializationContextImpl(KryoHeaderV0_1, - SerializationDefaults.javaClass.classLoader, - GlobalTransientClassWhiteList(BuiltInExceptionsWhitelist()), - emptyMap(), - true, - SerializationContext.UseCase.P2P) - -val KRYO_CHECKPOINT_CONTEXT = SerializationContextImpl(KryoHeaderV0_1, - SerializationDefaults.javaClass.classLoader, - QuasarWhitelist, - emptyMap(), - true, - SerializationContext.UseCase.Checkpoint) - val AMQP_STORAGE_CONTEXT = SerializationContextImpl(AmqpHeaderV1_0, SerializationDefaults.javaClass.classLoader, @@ -58,17 +44,9 @@ val AMQP_STORAGE_CONTEXT = SerializationContextImpl(AmqpHeaderV1_0, true, SerializationContext.UseCase.Storage) -val AMQP_P2P_CONTEXT = SerializationContextImpl(AmqpHeaderV1_0, - SerializationDefaults.javaClass.classLoader, - GlobalTransientClassWhiteList(BuiltInExceptionsWhitelist()), - emptyMap(), - true, - SerializationContext.UseCase.P2P) - val AMQP_RPC_SERVER_CONTEXT = SerializationContextImpl(AmqpHeaderV1_0, SerializationDefaults.javaClass.classLoader, GlobalTransientClassWhiteList(BuiltInExceptionsWhitelist()), emptyMap(), true, SerializationContext.UseCase.RPCServer) - diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/SharedContexts.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/SharedContexts.kt new file mode 100644 index 0000000000..20dcdd7f54 --- /dev/null +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/SharedContexts.kt @@ -0,0 +1,39 @@ +@file:JvmName("SharedContexts") + +package net.corda.nodeapi.internal.serialization + +import net.corda.core.serialization.SerializationContext +import net.corda.core.serialization.SerializationDefaults +import net.corda.nodeapi.internal.serialization.amqp.AmqpHeaderV1_0 +import net.corda.nodeapi.internal.serialization.kryo.KryoHeaderV0_1 + +/* + * Serialisation contexts shared by the server and client. + * + * NOTE: The [KRYO_STORAGE_CONTEXT] and [AMQP_STORAGE_CONTEXT] + * CANNOT always be instantiated outside of the server and so + * MUST be kept separate from these ones! + */ + +val KRYO_P2P_CONTEXT = SerializationContextImpl(KryoHeaderV0_1, + SerializationDefaults.javaClass.classLoader, + GlobalTransientClassWhiteList(BuiltInExceptionsWhitelist()), + emptyMap(), + true, + SerializationContext.UseCase.P2P) + +val KRYO_CHECKPOINT_CONTEXT = SerializationContextImpl(KryoHeaderV0_1, + SerializationDefaults.javaClass.classLoader, + QuasarWhitelist, + emptyMap(), + true, + SerializationContext.UseCase.Checkpoint) + +val AMQP_P2P_CONTEXT = SerializationContextImpl(AmqpHeaderV1_0, + SerializationDefaults.javaClass.classLoader, + GlobalTransientClassWhiteList(BuiltInExceptionsWhitelist()), + emptyMap(), + true, + SerializationContext.UseCase.P2P) + +