From 457f95f1881dc5894c48addf8e00376def42642c Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Tue, 3 Oct 2017 09:38:12 +0100 Subject: [PATCH] Removed the network map service type as it's no longer needed. The absence or presence of the networkMapService config is what determines if a node is the network map or not. --- .../kotlin/net/corda/core/flows/AttachmentTests.kt | 5 ++--- .../serialization/AttachmentSerializationTest.kt | 5 ++--- .../kotlin/net/corda/docs/CustomVaultQueryTest.kt | 7 +++---- .../corda/docs/FxTransactionBuildTutorialTest.kt | 3 +-- .../docs/WorkflowTransactionBuildTutorialTest.kt | 3 +-- .../net/corda/nodeapi/internal/ServiceType.kt | 1 - .../corda/node/services/BFTNotaryServiceTests.kt | 3 +-- .../kotlin/net/corda/node/internal/AbstractNode.kt | 5 +---- .../kotlin/net/corda/node/internal/NodeStartup.kt | 14 ++++++-------- .../node/services/config/NodeConfiguration.kt | 13 +++++++------ .../node/services/network/NetworkMapService.kt | 3 --- .../kotlin/net/corda/node/CordaRPCOpsImplTest.kt | 9 ++++----- .../corda/node/messaging/InMemoryMessagingTests.kt | 10 ++++------ .../net/corda/node/services/NotaryChangeTests.kt | 3 +-- .../node/services/events/ScheduledFlowTests.kt | 3 +-- .../network/AbstractNetworkMapServiceTest.kt | 11 +++-------- .../node/services/network/NetworkMapCacheTest.kt | 6 ++---- .../services/statemachine/FlowFrameworkTests.kt | 3 +-- .../services/transactions/NotaryServiceTests.kt | 4 +--- .../transactions/ValidatingNotaryServiceTests.kt | 9 +++------ .../net/corda/netmap/simulation/Simulation.kt | 12 +++++------- .../net/corda/testing/FlowStackSnapshotTest.kt | 3 +-- .../main/kotlin/net/corda/testing/driver/Driver.kt | 4 +--- .../main/kotlin/net/corda/testing/node/MockNode.kt | 2 +- .../kotlin/net/corda/testing/node/NodeBasedTest.kt | 7 +++---- .../net/corda/demobench/model/InstallFactory.kt | 4 +--- .../net/corda/demobench/model/NodeController.kt | 3 --- 27 files changed, 56 insertions(+), 99 deletions(-) diff --git a/core/src/test/kotlin/net/corda/core/flows/AttachmentTests.kt b/core/src/test/kotlin/net/corda/core/flows/AttachmentTests.kt index dd5f1e6783..bf5c6af06f 100644 --- a/core/src/test/kotlin/net/corda/core/flows/AttachmentTests.kt +++ b/core/src/test/kotlin/net/corda/core/flows/AttachmentTests.kt @@ -11,7 +11,6 @@ import net.corda.core.messaging.SingleMessageRecipient import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode import net.corda.node.services.config.NodeConfiguration -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.persistence.NodeAttachmentService import net.corda.node.services.transactions.SimpleNotaryService import net.corda.node.utilities.DatabaseTransactionManager @@ -45,7 +44,7 @@ class AttachmentTests { mockNet.stopNodes() } - fun fakeAttachment(): ByteArray { + private fun fakeAttachment(): ByteArray { val bs = ByteArrayOutputStream() val js = JarOutputStream(bs) js.putNextEntry(ZipEntry("file1.txt")) @@ -127,7 +126,7 @@ class AttachmentTests { override fun start() = super.start().apply { attachments.checkAttachmentsOnLoad = false } } } - }, advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type))) + }, advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type))) val bobNode = mockNet.createNode(aliceNode.network.myAddress, legalName = BOB.name) // Ensure that registration was successful before progressing any further diff --git a/core/src/test/kotlin/net/corda/core/serialization/AttachmentSerializationTest.kt b/core/src/test/kotlin/net/corda/core/serialization/AttachmentSerializationTest.kt index 5692f69722..37183b1fd8 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/AttachmentSerializationTest.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/AttachmentSerializationTest.kt @@ -14,11 +14,10 @@ import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.unwrap import net.corda.node.internal.InitiatedFlowFactory import net.corda.node.internal.StartedNode -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.config.NodeConfiguration -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.persistence.NodeAttachmentService import net.corda.node.utilities.DatabaseTransactionManager +import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.chooseIdentity import net.corda.testing.node.MockNetwork import org.junit.After @@ -70,7 +69,7 @@ class AttachmentSerializationTest { @Before fun setUp() { mockNet = MockNetwork() - server = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + server = mockNet.createNode() client = mockNet.createNode(server.network.myAddress) client.internals.disableDBCloseOnStop() // Otherwise the in-memory database may disappear (taking the checkpoint with it) while we reboot the client. mockNet.runNetwork() diff --git a/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt b/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt index c8a8c89fc6..3105f151cb 100644 --- a/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt +++ b/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt @@ -7,11 +7,10 @@ import net.corda.core.utilities.getOrThrow import net.corda.finance.* import net.corda.finance.contracts.getCashBalances import net.corda.finance.flows.CashIssueFlow -import net.corda.node.internal.StartedNode import net.corda.finance.schemas.CashSchemaV1 -import net.corda.nodeapi.internal.ServiceInfo -import net.corda.node.services.network.NetworkMapService +import net.corda.node.internal.StartedNode import net.corda.node.services.transactions.ValidatingNotaryService +import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* import net.corda.testing.node.MockNetwork import org.junit.After @@ -36,7 +35,7 @@ class CustomVaultQueryTest { notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY), - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService)) + advertisedServices = *arrayOf(notaryService)) nodeA = mockNet.createPartyNode(notaryNode.network.myAddress) nodeB = mockNet.createPartyNode(notaryNode.network.myAddress) diff --git a/docs/source/example-code/src/test/kotlin/net/corda/docs/FxTransactionBuildTutorialTest.kt b/docs/source/example-code/src/test/kotlin/net/corda/docs/FxTransactionBuildTutorialTest.kt index 15c16c32b1..4548af15a3 100644 --- a/docs/source/example-code/src/test/kotlin/net/corda/docs/FxTransactionBuildTutorialTest.kt +++ b/docs/source/example-code/src/test/kotlin/net/corda/docs/FxTransactionBuildTutorialTest.kt @@ -9,7 +9,6 @@ import net.corda.finance.contracts.getCashBalances import net.corda.finance.flows.CashIssueFlow import net.corda.finance.schemas.CashSchemaV1 import net.corda.node.internal.StartedNode -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* @@ -34,7 +33,7 @@ class FxTransactionBuildTutorialTest { notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY), - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService)) + advertisedServices = *arrayOf(notaryService)) nodeA = mockNet.createPartyNode(notaryNode.network.myAddress) nodeB = mockNet.createPartyNode(notaryNode.network.myAddress) nodeA.internals.registerCustomSchemas(setOf(CashSchemaV1)) diff --git a/docs/source/example-code/src/test/kotlin/net/corda/docs/WorkflowTransactionBuildTutorialTest.kt b/docs/source/example-code/src/test/kotlin/net/corda/docs/WorkflowTransactionBuildTutorialTest.kt index 831e8db3fb..4242dd79e3 100644 --- a/docs/source/example-code/src/test/kotlin/net/corda/docs/WorkflowTransactionBuildTutorialTest.kt +++ b/docs/source/example-code/src/test/kotlin/net/corda/docs/WorkflowTransactionBuildTutorialTest.kt @@ -9,7 +9,6 @@ import net.corda.core.node.services.vault.QueryCriteria import net.corda.core.toFuture import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* @@ -39,7 +38,7 @@ class WorkflowTransactionBuildTutorialTest { notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, overrideServices = mapOf(Pair(notaryService, DUMMY_NOTARY_KEY)), - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService)) + advertisedServices = *arrayOf(notaryService)) nodeA = mockNet.createPartyNode(notaryNode.network.myAddress) nodeB = mockNet.createPartyNode(notaryNode.network.myAddress) nodeA.internals.registerInitiatedFlow(RecordCompletionFlow::class.java) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/ServiceType.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/ServiceType.kt index 65cdf86820..7ec0a1ce8f 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/ServiceType.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/ServiceType.kt @@ -27,7 +27,6 @@ class ServiceType private constructor(val id: String) { } val notary: ServiceType = corda.getSubType("notary") - val networkMap: ServiceType = corda.getSubType("network_map") fun parse(id: String): ServiceType = ServiceType(id) diff --git a/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt index a28f1e3a9c..97859a5cdb 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt @@ -18,7 +18,6 @@ import net.corda.core.utilities.Try import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode import net.corda.node.services.config.BFTSMaRtConfiguration -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.BFTNonValidatingNotaryService import net.corda.node.services.transactions.minClusterSize import net.corda.node.services.transactions.minCorrectReplicas @@ -42,7 +41,7 @@ class BFTNotaryServiceTests { } private val mockNet = MockNetwork() - private val node = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + private val node = mockNet.createNode() @After fun stopNodes() { diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index 9aacb16a83..3e9ef56ae4 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -484,7 +484,7 @@ abstract class AbstractNode(open val configuration: NodeConfiguration, private fun makeNetworkServices(tokenizableServices: MutableList) { val serviceTypes = advertisedServices.map { it.type } - inNodeNetworkMapService = if (NetworkMapService.type in serviceTypes) makeNetworkMapService() else NullNetworkMapService + inNodeNetworkMapService = if (configuration.networkMapService == null) makeNetworkMapService() else NullNetworkMapService val notaryServiceType = serviceTypes.singleOrNull { it.isNotary() } if (notaryServiceType != null) { val service = makeCoreNotaryService(notaryServiceType) @@ -526,9 +526,6 @@ abstract class AbstractNode(open val configuration: NodeConfiguration, * updates) if one has been supplied. */ protected open fun registerWithNetworkMap(): CordaFuture { - require(networkMapAddress != null || NetworkMapService.type in advertisedServices.map { it.type }) { - "Initial network map address must indicate a node that provides a network map service" - } val address: SingleMessageRecipient = networkMapAddress ?: network.getAddressOfParty(PartyInfo.SingleNode(services.myInfo.legalIdentitiesAndCerts.first().party, info.addresses)) as SingleMessageRecipient // Register for updates, even if we're the one running the network map. diff --git a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt index d180abaa41..51cc7b454b 100644 --- a/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt +++ b/node/src/main/kotlin/net/corda/node/internal/NodeStartup.kt @@ -73,7 +73,7 @@ open class NodeStartup(val args: Array) { cmdlineOptions.baseDirectory.createDirectories() startNode(conf, versionInfo, startTime, cmdlineOptions) } catch (e: Exception) { - if (e.message?.startsWith("Unknown named curve:") ?: false) { + if (e.message?.startsWith("Unknown named curve:") == true) { logger.error("Exception during node startup - ${e.message}. " + "This is a known OpenJDK issue on some Linux distributions, please use OpenJDK from zulu.org or Oracle JDK.") } else @@ -150,13 +150,12 @@ open class NodeStartup(val args: Array) { } open protected fun loadConfigFile(cmdlineOptions: CmdLineOptions): FullNodeConfiguration { - val conf = try { - cmdlineOptions.loadConfig() + try { + return cmdlineOptions.loadConfig() } catch (e: ConfigException) { println("Unable to load the configuration file: ${e.rootCause.message}") exitProcess(2) } - return conf } open protected fun banJavaSerialisation(conf: FullNodeConfiguration) { @@ -167,13 +166,12 @@ open class NodeStartup(val args: Array) { // Manifest properties are only available if running from the corda jar fun manifestValue(name: String): String? = if (Manifests.exists(name)) Manifests.read(name) else null - val versionInfo = VersionInfo( + return VersionInfo( manifestValue("Corda-Platform-Version")?.toInt() ?: 1, manifestValue("Corda-Release-Version") ?: "Unknown", manifestValue("Corda-Revision") ?: "Unknown", manifestValue("Corda-Vendor") ?: "Unknown" ) - return versionInfo } private fun enforceSingleNodeIsRunning(baseDirectory: Path) { @@ -260,10 +258,10 @@ open class NodeStartup(val args: Array) { } private fun printPluginsAndServices(node: Node) { - node.configuration.extraAdvertisedServiceIds.filter { it.startsWith("corda.notary.") || it.startsWith("corda.network_map") }.let { + node.configuration.extraAdvertisedServiceIds.filter { it.startsWith("corda.notary.") }.let { if (it.isNotEmpty()) Node.printBasicNodeInfo("Providing additional services", it.joinToString()) } - Node.printBasicNodeInfo("Loaded CorDapps", node.cordappProvider.cordapps.map { it.name }.joinToString()) + Node.printBasicNodeInfo("Loaded CorDapps", node.cordappProvider.cordapps.joinToString { it.name }) } open fun drawBanner(versionInfo: VersionInfo) { diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt index 7d500b2202..cbaa194aad 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfiguration.kt @@ -3,12 +3,11 @@ package net.corda.node.services.config import net.corda.core.identity.CordaX500Name import net.corda.core.utilities.NetworkHostAndPort import net.corda.node.internal.NetworkMapInfo -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.messaging.CertificateChainCheckPolicy -import net.corda.node.services.network.NetworkMapService import net.corda.nodeapi.User import net.corda.nodeapi.config.NodeSSLConfiguration import net.corda.nodeapi.config.OldConfig +import net.corda.nodeapi.internal.ServiceInfo import java.net.URL import java.nio.file.Path import java.util.* @@ -22,6 +21,10 @@ interface NodeConfiguration : NodeSSLConfiguration { // myLegalName should be only used in the initial network registration, we should use the name from the certificate instead of this. // TODO: Remove this so we don't accidentally use this identity in the code? val myLegalName: CordaX500Name + /** + * If null then configure the node to run as the netwok map service, otherwise use this to connect to the network map + * service. + */ val networkMapService: NetworkMapInfo? val minimumPlatformVersion: Int val emailAddress: String @@ -93,12 +96,10 @@ data class FullNodeConfiguration( } fun calculateServices(): Set { - val advertisedServices = extraAdvertisedServiceIds + return extraAdvertisedServiceIds .filter(String::isNotBlank) .map { ServiceInfo.parse(it) } - .toMutableSet() - if (networkMapService == null) advertisedServices += ServiceInfo(NetworkMapService.type) - return advertisedServices + .toSet() } } diff --git a/node/src/main/kotlin/net/corda/node/services/network/NetworkMapService.kt b/node/src/main/kotlin/net/corda/node/services/network/NetworkMapService.kt index 3e9d3984ae..966d537954 100644 --- a/node/src/main/kotlin/net/corda/node/services/network/NetworkMapService.kt +++ b/node/src/main/kotlin/net/corda/node/services/network/NetworkMapService.kt @@ -19,7 +19,6 @@ import net.corda.core.serialization.deserialize import net.corda.core.serialization.serialize import net.corda.core.utilities.debug import net.corda.core.utilities.loggerFor -import net.corda.nodeapi.internal.ServiceType import net.corda.node.services.api.AbstractNodeService import net.corda.node.services.api.ServiceHubInternal import net.corda.node.services.messaging.MessageHandlerRegistration @@ -72,8 +71,6 @@ interface NetworkMapService { const val PUSH_TOPIC = "platform.network_map.push" // Base topic for messages acknowledging pushed updates const val PUSH_ACK_TOPIC = "platform.network_map.push_ack" - - val type = ServiceType.networkMap } data class FetchMapRequest(val subscribe: Boolean, diff --git a/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt b/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt index ecd2e604d0..8fae3f60cc 100644 --- a/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt +++ b/node/src/test/kotlin/net/corda/node/CordaRPCOpsImplTest.kt @@ -1,6 +1,7 @@ package net.corda.node import co.paralleluniverse.fibers.Suspendable +import net.corda.client.rpc.PermissionException import net.corda.core.contracts.Amount import net.corda.core.contracts.ContractState import net.corda.core.contracts.Issued @@ -24,14 +25,12 @@ import net.corda.finance.flows.CashIssueFlow import net.corda.finance.flows.CashPaymentFlow import net.corda.node.internal.CordaRPCOpsImpl import net.corda.node.internal.StartedNode +import net.corda.node.services.FlowPermissions.Companion.startFlowPermission import net.corda.node.services.messaging.CURRENT_RPC_CONTEXT import net.corda.node.services.messaging.RpcContext -import net.corda.node.services.network.NetworkMapService -import net.corda.node.services.FlowPermissions.Companion.startFlowPermission -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.transactions.SimpleNotaryService -import net.corda.client.rpc.PermissionException import net.corda.nodeapi.User +import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* import net.corda.testing.node.MockNetwork import net.corda.testing.node.MockNetwork.MockNode @@ -68,7 +67,7 @@ class CordaRPCOpsImplTest { setCordappPackages("net.corda.finance.contracts.asset") mockNet = MockNetwork() - val networkMap = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + val networkMap = mockNet.createNode() aliceNode = mockNet.createNode(networkMapAddress = networkMap.network.myAddress) notaryNode = mockNet.createNode(advertisedServices = ServiceInfo(SimpleNotaryService.type), networkMapAddress = networkMap.network.myAddress) rpc = CordaRPCOpsImpl(aliceNode.services, aliceNode.smm, aliceNode.database) diff --git a/node/src/test/kotlin/net/corda/node/messaging/InMemoryMessagingTests.kt b/node/src/test/kotlin/net/corda/node/messaging/InMemoryMessagingTests.kt index 95c26319c2..e949ca11d2 100644 --- a/node/src/test/kotlin/net/corda/node/messaging/InMemoryMessagingTests.kt +++ b/node/src/test/kotlin/net/corda/node/messaging/InMemoryMessagingTests.kt @@ -1,10 +1,8 @@ package net.corda.node.messaging -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.messaging.Message import net.corda.node.services.messaging.TopicStringValidator import net.corda.node.services.messaging.createMessage -import net.corda.node.services.network.NetworkMapService import net.corda.testing.node.MockNetwork import net.corda.testing.resetTestSerialization import org.junit.After @@ -49,7 +47,7 @@ class InMemoryMessagingTests { @Test fun basics() { - val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + val node1 = mockNet.createNode() val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress) val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress) @@ -78,7 +76,7 @@ class InMemoryMessagingTests { @Test fun broadcast() { - val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + val node1 = mockNet.createNode() val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress) val node3 = mockNet.createNode(networkMapAddress = node1.network.myAddress) @@ -97,9 +95,9 @@ class InMemoryMessagingTests { */ @Test fun `skip unhandled messages`() { - val node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + val node1 = mockNet.createNode() val node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress) - var received: Int = 0 + var received = 0 node1.network.addMessageHandler("valid_message") { _, _ -> received++ diff --git a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt index 024445b343..e1a560c1ca 100644 --- a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt @@ -12,7 +12,6 @@ import net.corda.core.transactions.WireTransaction import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.seconds import net.corda.node.internal.StartedNode -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* @@ -42,7 +41,7 @@ class NotaryChangeTests { mockNet = MockNetwork() oldNotaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type))) + advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type))) clientNodeA = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress) clientNodeB = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress) newNotaryNode = mockNet.createNode(networkMapAddress = oldNotaryNode.network.myAddress, advertisedServices = ServiceInfo(ValidatingNotaryService.type)) diff --git a/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt b/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt index 072fd74a05..9e4215a814 100644 --- a/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt @@ -15,7 +15,6 @@ import net.corda.core.node.services.vault.SortAttribute import net.corda.core.transactions.TransactionBuilder import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.statemachine.StateMachineManager import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.internal.ServiceInfo @@ -98,7 +97,7 @@ class ScheduledFlowTests { mockNet = MockNetwork(threadPerNode = true) notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type))) + advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type))) val a = mockNet.createUnstartedNode(notaryNode.network.myAddress) val b = mockNet.createUnstartedNode(notaryNode.network.myAddress) diff --git a/node/src/test/kotlin/net/corda/node/services/network/AbstractNetworkMapServiceTest.kt b/node/src/test/kotlin/net/corda/node/services/network/AbstractNetworkMapServiceTest.kt index 7b133c965f..403a149183 100644 --- a/node/src/test/kotlin/net/corda/node/services/network/AbstractNetworkMapServiceTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/network/AbstractNetworkMapServiceTest.kt @@ -7,7 +7,6 @@ import net.corda.core.node.NodeInfo import net.corda.core.serialization.deserialize import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.config.NodeConfiguration import net.corda.node.services.messaging.MessagingService import net.corda.node.services.messaging.send @@ -25,12 +24,8 @@ import net.corda.node.services.transactions.SimpleNotaryService import net.corda.node.utilities.AddOrRemove import net.corda.node.utilities.AddOrRemove.ADD import net.corda.node.utilities.AddOrRemove.REMOVE -import net.corda.testing.ALICE -import net.corda.testing.BOB -import net.corda.testing.CHARLIE -import net.corda.testing.DUMMY_MAP -import net.corda.testing.chooseIdentity -import net.corda.testing.chooseIdentityAndCert +import net.corda.nodeapi.internal.ServiceInfo +import net.corda.testing.* import net.corda.testing.node.MockNetwork import net.corda.testing.node.MockNetwork.MockNode import org.assertj.core.api.Assertions.assertThat @@ -58,7 +53,7 @@ abstract class AbstractNetworkMapServiceTest mapServiceNode = mockNet.createNode( nodeFactory = nodeFactory, legalName = DUMMY_MAP.name, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type))) + advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type))) alice = mockNet.createNode(mapServiceNode.network.myAddress, nodeFactory = nodeFactory, legalName = ALICE.name) mockNet.runNetwork() lastSerial = System.currentTimeMillis() diff --git a/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt b/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt index 01a65de71e..2baba6ff3c 100644 --- a/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/network/NetworkMapCacheTest.kt @@ -2,10 +2,8 @@ package net.corda.node.services.network import net.corda.core.node.services.NetworkMapCache import net.corda.core.utilities.getOrThrow -import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.ALICE import net.corda.testing.BOB -import net.corda.testing.DUMMY_NOTARY import net.corda.testing.chooseIdentity import net.corda.testing.node.MockNetwork import org.assertj.core.api.Assertions.assertThat @@ -40,8 +38,8 @@ class NetworkMapCacheTest { @Test fun `key collision`() { val entropy = BigInteger.valueOf(24012017L) - val aliceNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = ALICE.name, entropyRoot = entropy, advertisedServices = ServiceInfo(NetworkMapService.type)) - val bobNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = BOB.name, entropyRoot = entropy, advertisedServices = ServiceInfo(NetworkMapService.type)) + val aliceNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = ALICE.name, entropyRoot = entropy) + val bobNode = mockNet.createNode(nodeFactory = MockNetwork.DefaultFactory, legalName = BOB.name, entropyRoot = entropy) assertEquals(aliceNode.info.chooseIdentity(), bobNode.info.chooseIdentity()) mockNet.runNetwork() diff --git a/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt b/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt index a08230d9ff..0d832f164a 100644 --- a/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt @@ -31,7 +31,6 @@ import net.corda.finance.flows.CashIssueFlow import net.corda.finance.flows.CashPaymentFlow import net.corda.node.internal.InitiatedFlowFactory import net.corda.node.internal.StartedNode -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.persistence.checkpoints import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.internal.ServiceInfo @@ -79,7 +78,7 @@ class FlowFrameworkTests { fun start() { setCordappPackages("net.corda.finance.contracts", "net.corda.testing.contracts") mockNet = MockNetwork(servicePeerAllocationStrategy = RoundRobin()) - node1 = mockNet.createNode(advertisedServices = ServiceInfo(NetworkMapService.type)) + node1 = mockNet.createNode() node2 = mockNet.createNode(networkMapAddress = node1.network.myAddress) mockNet.runNetwork() diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt index 7e4781ba30..eac332f7f6 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt @@ -14,10 +14,8 @@ import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.seconds import net.corda.node.internal.StartedNode import net.corda.nodeapi.internal.ServiceInfo -import net.corda.node.services.network.NetworkMapService import net.corda.testing.* import net.corda.testing.contracts.DummyContract -import net.corda.testing.getDefaultNotary import net.corda.testing.node.MockNetwork import org.assertj.core.api.Assertions.assertThat import org.junit.After @@ -40,7 +38,7 @@ class NotaryServiceTests { mockNet = MockNetwork() notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(SimpleNotaryService.type))) + advertisedServices = *arrayOf(ServiceInfo(SimpleNotaryService.type))) clientNode = mockNet.createNode(notaryNode.network.myAddress) mockNet.runNetwork() // Clear network map registration messages notaryNode.internals.ensureRegistered() diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt index 52a2165960..4de1dfba75 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt @@ -10,16 +10,13 @@ import net.corda.core.flows.NotaryException import net.corda.core.flows.NotaryFlow import net.corda.core.identity.Party import net.corda.core.transactions.SignedTransaction -import net.corda.core.utilities.getOrThrow import net.corda.core.transactions.TransactionBuilder +import net.corda.core.utilities.getOrThrow import net.corda.node.internal.StartedNode -import net.corda.nodeapi.internal.ServiceInfo import net.corda.node.services.issueInvalidState -import net.corda.node.services.network.NetworkMapService +import net.corda.nodeapi.internal.ServiceInfo import net.corda.testing.* import net.corda.testing.contracts.DummyContract -import net.corda.testing.dummyCommand -import net.corda.testing.getDefaultNotary import net.corda.testing.node.MockNetwork import org.assertj.core.api.Assertions.assertThat import org.junit.After @@ -41,7 +38,7 @@ class ValidatingNotaryServiceTests { mockNet = MockNetwork() notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type)) + advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type)) ) clientNode = mockNet.createNode(notaryNode.network.myAddress) mockNet.runNetwork() // Clear network map registration messages diff --git a/samples/network-visualiser/src/main/kotlin/net/corda/netmap/simulation/Simulation.kt b/samples/network-visualiser/src/main/kotlin/net/corda/netmap/simulation/Simulation.kt index 6ba3f19e18..faec432e7b 100644 --- a/samples/network-visualiser/src/main/kotlin/net/corda/netmap/simulation/Simulation.kt +++ b/samples/network-visualiser/src/main/kotlin/net/corda/netmap/simulation/Simulation.kt @@ -2,19 +2,18 @@ package net.corda.netmap.simulation import net.corda.core.flows.FlowLogic import net.corda.core.identity.CordaX500Name -import net.corda.finance.utils.CityDatabase -import net.corda.finance.utils.WorldMapLocation import net.corda.core.internal.uncheckedCast import net.corda.core.messaging.SingleMessageRecipient import net.corda.core.utilities.ProgressTracker +import net.corda.finance.utils.CityDatabase +import net.corda.finance.utils.WorldMapLocation import net.corda.irs.api.NodeInterestRates import net.corda.node.internal.StartedNode -import net.corda.nodeapi.internal.ServiceInfo -import net.corda.nodeapi.internal.ServiceType import net.corda.node.services.config.NodeConfiguration -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.statemachine.StateMachineManager import net.corda.node.services.transactions.SimpleNotaryService +import net.corda.nodeapi.internal.ServiceInfo +import net.corda.nodeapi.internal.ServiceType import net.corda.testing.DUMMY_MAP import net.corda.testing.DUMMY_NOTARY import net.corda.testing.DUMMY_REGULATOR @@ -92,7 +91,6 @@ abstract class Simulation(val networkSendManuallyPumped: Boolean, override fun create(config: NodeConfiguration, network: MockNetwork, networkMapAddr: SingleMessageRecipient?, advertisedServices: Set, id: Int, overrideServices: Map?, entropyRoot: BigInteger): SimulatedNode { - require(advertisedServices.containsType(NetworkMapService.type)) val cfg = testNodeConfiguration( baseDirectory = config.baseDirectory, myLegalName = DUMMY_MAP.name) @@ -153,7 +151,7 @@ abstract class Simulation(val networkSendManuallyPumped: Boolean, val mockNet = MockNetwork(networkSendManuallyPumped, runAsync) // This one must come first. - val networkMap = mockNet.createNode(nodeFactory = NetworkMapNodeFactory, advertisedServices = ServiceInfo(NetworkMapService.type)) + val networkMap = mockNet.createNode(nodeFactory = NetworkMapNodeFactory) val notary = mockNet.createNode(networkMap.network.myAddress, nodeFactory = NotaryNodeFactory, advertisedServices = ServiceInfo(SimpleNotaryService.type)) val regulators = listOf(mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RegulatorFactory)) val ratesOracle = mockNet.createUnstartedNode(networkMap.network.myAddress, nodeFactory = RatesOracleFactory) diff --git a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt index 33d682f2b4..15c8fb4c77 100644 --- a/testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt +++ b/testing/node-driver/src/integration-test/kotlin/net/corda/testing/FlowStackSnapshotTest.kt @@ -9,7 +9,6 @@ import net.corda.core.internal.read import net.corda.core.messaging.startFlow import net.corda.core.serialization.CordaSerializable import net.corda.node.services.FlowPermissions.Companion.startFlowPermission -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.User import net.corda.nodeapi.internal.ServiceInfo @@ -297,7 +296,7 @@ class FlowStackSnapshotTest { val notaryNode = mockNet.createNode( legalName = DUMMY_NOTARY.name, overrideServices = mapOf(notaryService to DUMMY_NOTARY_KEY), - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), notaryService)) + advertisedServices = *arrayOf(notaryService)) val node = mockNet.createPartyNode(notaryNode.network.myAddress) node.internals.registerInitiatedFlow(DummyFlow::class.java) node.services.startFlow(FlowStackSnapshotSerializationTestingFlow()).resultFuture.get() diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt index 64645569a4..15fd43b655 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/driver/Driver.kt @@ -830,9 +830,7 @@ class DriverDSL( "rpcAddress" to rpcAddress.toString(), "rpcUsers" to defaultRpcUserList, "p2pAddress" to dedicatedNetworkMapAddress.toString(), - "useTestClock" to useTestClock, - "extraAdvertisedServiceIds" to listOf(ServiceInfo(NetworkMapService.type).toString()) - ) + "useTestClock" to useTestClock) ) return startNodeInternal(config, webAddress, startInProcess, maximumHeapSize) } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt index 446c4dc09d..ea351fe8f1 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt @@ -400,7 +400,7 @@ class MockNetwork(private val networkSendManuallyPumped: Boolean = false, overrideServices: Map? = null, serviceName: CordaX500Name? = null): StartedNode { return createNode(networkMapAddress, legalName = legalName, overrideServices = overrideServices, - advertisedServices = *arrayOf(ServiceInfo(NetworkMapService.type), ServiceInfo(ValidatingNotaryService.type, serviceName))) + advertisedServices = *arrayOf(ServiceInfo(ValidatingNotaryService.type, serviceName))) } // Convenience method for Java diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt index ce703de814..2a126e5d21 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt @@ -8,17 +8,16 @@ import net.corda.core.internal.div import net.corda.core.utilities.getOrThrow import net.corda.node.internal.Node import net.corda.node.internal.StartedNode -import net.corda.nodeapi.internal.ServiceInfo -import net.corda.nodeapi.internal.ServiceType import net.corda.node.services.config.ConfigHelper import net.corda.node.services.config.FullNodeConfiguration import net.corda.node.services.config.configOf import net.corda.node.services.config.plus -import net.corda.node.services.network.NetworkMapService import net.corda.node.services.transactions.RaftValidatingNotaryService import net.corda.node.utilities.ServiceIdentityGenerator import net.corda.nodeapi.User import net.corda.nodeapi.config.parseAs +import net.corda.nodeapi.internal.ServiceInfo +import net.corda.nodeapi.internal.ServiceType import net.corda.testing.DUMMY_MAP import net.corda.testing.TestDependencyInjectionBase import net.corda.testing.driver.addressMustNotBeBoundFuture @@ -91,7 +90,7 @@ abstract class NodeBasedTest : TestDependencyInjectionBase() { rpcUsers: List = emptyList(), configOverrides: Map = emptyMap()): StartedNode { check(_networkMapNode == null || _networkMapNode!!.info.legalIdentitiesAndCerts.first().name == legalName) - return startNodeInternal(legalName, platformVersion, advertisedServices + ServiceInfo(NetworkMapService.type), rpcUsers, configOverrides).apply { + return startNodeInternal(legalName, platformVersion, advertisedServices, rpcUsers, configOverrides).apply { _networkMapNode = this } } diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/model/InstallFactory.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/model/InstallFactory.kt index ef4e59d91a..4d8876b2ed 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/model/InstallFactory.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/model/InstallFactory.kt @@ -3,8 +3,6 @@ package net.corda.demobench.model import com.typesafe.config.Config import net.corda.core.identity.CordaX500Name import net.corda.core.utilities.NetworkHostAndPort -import net.corda.nodeapi.internal.ServiceInfo -import net.corda.nodeapi.internal.ServiceType import tornadofx.* import java.io.IOException import java.nio.file.Files @@ -54,7 +52,7 @@ class InstallFactory : Controller() { } private fun Config.parseExtraServices(path: String): MutableList { - val services = serviceController.services.values.toSortedSet() + ServiceInfo(ServiceType.networkMap).toString() + val services = serviceController.services.values.toSortedSet() return this.getStringList(path) .filter { !it.isNullOrEmpty() } .map { svc -> diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeController.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeController.kt index f6479308c2..367f04b847 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeController.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeController.kt @@ -3,8 +3,6 @@ package net.corda.demobench.model import net.corda.core.identity.CordaX500Name import net.corda.demobench.plugin.PluginController import net.corda.demobench.pty.R3Pty -import net.corda.nodeapi.internal.ServiceInfo -import net.corda.nodeapi.internal.ServiceType import tornadofx.* import java.io.IOException import java.lang.management.ManagementFactory @@ -100,7 +98,6 @@ class NodeController(check: atRuntime = ::checkExists) : Controller() { if (hasNetworkMap()) { config.networkMap = networkMapConfig } else { - config.extraServices.add(ServiceInfo(ServiceType.networkMap).toString()) networkMapConfig = config log.info("Network map provided by: ${config.legalName}") }