diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/explorer/Explorer.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/explorer/Explorer.kt index 3c4aaebe84..b718b5de0f 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/explorer/Explorer.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/explorer/Explorer.kt @@ -41,7 +41,7 @@ class Explorer internal constructor(private val explorerController: ExplorerCont val user = config.nodeConfig.rpcUsers[0] val p = explorerController.process( "--host=localhost", - "--port=${config.nodeConfig.rpcAddress.port}", + "--port=${config.nodeConfig.rpcSettings.address.port}", "--username=${user.username}", "--password=${user.password}") .directory(explorerDir.toFile()) 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 2626eb882d..77c22230f1 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 @@ -20,7 +20,7 @@ class InstallFactory : Controller() { val nodeConfig = config.parseAs() nodeConfig.p2pAddress.checkPort() - nodeConfig.rpcAddress.checkPort() + nodeConfig.rpcSettings.address.checkPort() nodeConfig.webAddress.checkPort() val tempDir = Files.createTempDirectory(baseDir, ".node") diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeConfig.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeConfig.kt index b251955d5c..5cd06a62a5 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeConfig.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeConfig.kt @@ -21,8 +21,7 @@ import java.nio.file.StandardCopyOption data class NodeConfig( val myLegalName: CordaX500Name, val p2pAddress: NetworkHostAndPort, - val rpcAddress: NetworkHostAndPort, - val rpcAdminAddress: NetworkHostAndPort, + val rpcSettings: NodeRpcSettings, /** This is not used by the node but by the webserver which looks at node.conf. */ val webAddress: NetworkHostAndPort, val notary: NotaryService?, @@ -46,8 +45,8 @@ data class NodeConfig( val config = toConfig() val rpcSettings = empty() - .withValue("address", ConfigValueFactory.fromAnyRef(rpcAddress.toString())) - .withValue("adminAddress", ConfigValueFactory.fromAnyRef(rpcAdminAddress.toString())) + .withValue("address", ConfigValueFactory.fromAnyRef(rpcSettings.address.toString())) + .withValue("adminAddress", ConfigValueFactory.fromAnyRef(rpcSettings.adminAddress.toString())) .root() return config.withoutPath("rpcAddress").withoutPath("rpcAdminAddress").withValue("rpcSettings", rpcSettings) } 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 e96c4b847d..04076a8971 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 @@ -74,8 +74,10 @@ class NodeController(check: atRuntime = ::checkExists) : Controller() { country = location.countryCode ), p2pAddress = nodeData.p2pPort.toLocalAddress(), - rpcAddress = nodeData.rpcPort.toLocalAddress(), - rpcAdminAddress = nodeData.rpcAdminPort.toLocalAddress(), + rpcSettings = NodeRpcSettings( + address = nodeData.rpcPort.toLocalAddress(), + adminAddress = nodeData.rpcAdminPort.toLocalAddress() + ), webAddress = nodeData.webPort.toLocalAddress(), notary = notary, h2port = nodeData.h2Port.value, @@ -204,7 +206,7 @@ class NodeController(check: atRuntime = ::checkExists) : Controller() { } private fun updatePort(config: NodeConfig) { - val nextPort = 1 + arrayOf(config.p2pAddress.port, config.rpcAddress.port, config.webAddress.port, config.h2port).max() as Int + val nextPort = 1 + arrayOf(config.p2pAddress.port, config.rpcSettings.address.port, config.webAddress.port, config.h2port).max() as Int port.getAndUpdate { Math.max(nextPort, it) } } diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeRpcSettings.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeRpcSettings.kt new file mode 100644 index 0000000000..04d093a318 --- /dev/null +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/model/NodeRpcSettings.kt @@ -0,0 +1,8 @@ +package net.corda.demobench.model + +import net.corda.core.utilities.NetworkHostAndPort + +data class NodeRpcSettings( + val address: NetworkHostAndPort, + val adminAddress: NetworkHostAndPort +) \ No newline at end of file diff --git a/tools/demobench/src/main/kotlin/net/corda/demobench/rpc/NodeRPC.kt b/tools/demobench/src/main/kotlin/net/corda/demobench/rpc/NodeRPC.kt index c07dd6cef6..a2c3d56cd1 100644 --- a/tools/demobench/src/main/kotlin/net/corda/demobench/rpc/NodeRPC.kt +++ b/tools/demobench/src/main/kotlin/net/corda/demobench/rpc/NodeRPC.kt @@ -15,7 +15,7 @@ class NodeRPC(config: NodeConfigWrapper, start: (NodeConfigWrapper, CordaRPCOps) val oneSecond = SECONDS.toMillis(1) } - private val rpcClient = CordaRPCClient(NetworkHostAndPort("localhost", config.nodeConfig.rpcAddress.port)) + private val rpcClient = CordaRPCClient(NetworkHostAndPort("localhost", config.nodeConfig.rpcSettings.address.port)) private var rpcConnection: CordaRPCConnection? = null private val timer = Timer() diff --git a/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeConfigTest.kt b/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeConfigTest.kt index cbe6f54a18..cbad38d415 100644 --- a/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeConfigTest.kt +++ b/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeConfigTest.kt @@ -88,8 +88,10 @@ class NodeConfigTest { return NodeConfig( myLegalName = legalName, p2pAddress = localPort(p2pPort), - rpcAddress = localPort(rpcPort), - rpcAdminAddress = localPort(rpcAdminPort), + rpcSettings = NodeRpcSettings( + address = localPort(rpcPort), + adminAddress = localPort(rpcAdminPort) + ), webAddress = localPort(webPort), h2port = h2port, notary = notary, diff --git a/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeControllerTest.kt b/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeControllerTest.kt index e6b5454144..46bbde3dfb 100644 --- a/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeControllerTest.kt +++ b/tools/demobench/src/test/kotlin/net/corda/demobench/model/NodeControllerTest.kt @@ -163,8 +163,10 @@ class NodeControllerTest { country = "US" ), p2pAddress = localPort(p2pPort), - rpcAddress = localPort(rpcPort), - rpcAdminAddress = localPort(rpcAdminPort), + rpcSettings = NodeRpcSettings( + address = localPort(rpcPort), + adminAddress = localPort(rpcAdminPort) + ), webAddress = localPort(webPort), h2port = h2port, notary = notary,