From 8c5a60d98cbae3a895dc5c75dd4d03813c2d84c6 Mon Sep 17 00:00:00 2001 From: Katarzyna Streich Date: Wed, 28 Nov 2018 11:09:06 +0000 Subject: [PATCH] Fix RpcWorkerServiceHub and FlowWorkerServiceHub --- .../net/corda/flowworker/FlowWorkerServiceHub.kt | 10 +++++----- .../kotlin/net/corda/rpcWorker/RpcWorkerServiceHub.kt | 9 +++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/experimental/flow-worker/src/main/kotlin/net/corda/flowworker/FlowWorkerServiceHub.kt b/experimental/flow-worker/src/main/kotlin/net/corda/flowworker/FlowWorkerServiceHub.kt index 1e818e8c8f..389b2f0383 100644 --- a/experimental/flow-worker/src/main/kotlin/net/corda/flowworker/FlowWorkerServiceHub.kt +++ b/experimental/flow-worker/src/main/kotlin/net/corda/flowworker/FlowWorkerServiceHub.kt @@ -88,7 +88,6 @@ class FlowWorkerServiceHub(override val configuration: NodeConfiguration, private val ourKeyPair: KeyPair, private val trustRoot: X509Certificate, private val nodeCa: X509Certificate, - override val networkParametersStorage: DBNetworkParametersStorage, private val signedNetworkParameters: NetworkParametersReader.NetworkParametersAndSigned) : ServiceHubInternal, SingletonSerializeAsToken() { override val networkParameters: NetworkParameters = signedNetworkParameters.networkParameters @@ -148,14 +147,15 @@ class FlowWorkerServiceHub(override val configuration: NodeConfiguration, override val cordappProvider = CordappProviderImpl(cordappLoader, CordappConfigFileProvider(emptyList()), attachments).tokenize() @Suppress("LeakingThis") override val keyManagementService = PersistentKeyManagementService(cacheFactory, identityService, database).tokenize() - private val servicesForResolution = ServicesForResolutionImpl(identityService, attachments, cordappProvider, networkParametersStorage, validatedTransactions) - @Suppress("LeakingThis") - override val vaultService = NodeVaultService(clock, keyManagementService, servicesForResolution, database, schemaService, cacheFactory).tokenize() override val nodeProperties = NodePropertiesPersistentStore(StubbedNodeUniqueIdProvider::value, database, cacheFactory) val flowLogicRefFactory = FlowLogicRefFactoryImpl(cordappLoader.appClassLoader) override val monitoringService = MonitoringService(metricRegistry).tokenize() private val networkMapClient: NetworkMapClient? = configuration.networkServices?.let { NetworkMapClient(it.networkMapURL, versionInfo) } + override val networkParametersStorage = DBNetworkParametersStorage(cacheFactory, database, networkMapClient).tokenize() + private val servicesForResolution = ServicesForResolutionImpl(identityService, attachments, cordappProvider, networkParametersStorage, validatedTransactions) + @Suppress("LeakingThis") + override val vaultService = NodeVaultService(clock, keyManagementService, servicesForResolution, database, schemaService, cacheFactory).tokenize() override val networkMapUpdater= NetworkMapUpdater( networkMapCache, NodeInfoWatcher( @@ -403,7 +403,7 @@ class FlowWorkerServiceHub(override val configuration: NodeConfiguration, database.startHikariPool(configuration.dataSourceProperties, configuration.database, schemas) identityService.start(trustRoot, listOf(myInfo.legalIdentitiesAndCerts.first().certificate, nodeCa)) - + networkParametersStorage.start(signedNetworkParameters.signed, trustRoot) database.transaction { networkMapCache.start(networkParameters.notaries) } diff --git a/experimental/rpc-worker/src/main/kotlin/net/corda/rpcWorker/RpcWorkerServiceHub.kt b/experimental/rpc-worker/src/main/kotlin/net/corda/rpcWorker/RpcWorkerServiceHub.kt index 8102b19b1c..f2c974d6d7 100644 --- a/experimental/rpc-worker/src/main/kotlin/net/corda/rpcWorker/RpcWorkerServiceHub.kt +++ b/experimental/rpc-worker/src/main/kotlin/net/corda/rpcWorker/RpcWorkerServiceHub.kt @@ -50,7 +50,6 @@ import net.corda.node.utilities.EnterpriseNamedCacheFactory import net.corda.node.utilities.profiling.getTracingConfig import net.corda.nodeapi.internal.NodeInfoAndSigned import net.corda.nodeapi.internal.persistence.CordaPersistence -import net.corda.nodeapi.internal.persistence.contextTransaction import net.corda.nodeapi.internal.persistence.isH2Database import net.corda.serialization.internal.* import org.slf4j.Logger @@ -112,7 +111,8 @@ class RpcWorkerServiceHub(override val configuration: NodeConfiguration, @Suppress("LeakingThis") override val keyManagementService = PersistentKeyManagementService(cacheFactory, identityService, database) - private val servicesForResolution = ServicesForResolutionImpl(identityService, attachments, cordappProvider, validatedTransactions) + override val networkParametersStorage = DBNetworkParametersStorage(cacheFactory, database, networkMapClient) + private val servicesForResolution = ServicesForResolutionImpl(identityService, attachments, cordappProvider, networkParametersStorage, validatedTransactions) @Suppress("LeakingThis") override val vaultService = NodeVaultService(clock, keyManagementService, servicesForResolution, database, schemaService, cacheFactory) override val nodeProperties = NodePropertiesPersistentStore(StubbedNodeUniqueIdProvider::value, database, cacheFactory) @@ -127,7 +127,8 @@ class RpcWorkerServiceHub(override val configuration: NodeConfiguration, ), networkMapClient, configuration.baseDirectory, - configuration.extraNetworkMapKeys + configuration.extraNetworkMapKeys, + networkParametersStorage ).closeOnStop() override val networkParameters = signedNetworkParameters.networkParameters @@ -234,7 +235,7 @@ class RpcWorkerServiceHub(override val configuration: NodeConfiguration, networkMapClient?.start(trustRoot) - servicesForResolution.start(networkParameters) + networkParametersStorage.start(signedNetworkParameters.signed, trustRoot) val isH2Database = isH2Database(configuration.dataSourceProperties.getProperty("dataSource.url", "")) val schemas = if (isH2Database) schemaService.internalSchemas() else schemaService.schemaOptions.keys