[CORDA-1408]: Fixed some Demobench bugs. (#3288)

This commit is contained in:
Michele Sollecito 2018-06-04 09:35:38 +01:00 committed by GitHub
parent fc020bca4b
commit 7350cd9d1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 14 deletions

View File

@ -408,7 +408,7 @@ class NodeVaultService(
@Throws(VaultQueryException::class)
private fun <T : ContractState> _queryBy(criteria: QueryCriteria, paging: PageSpecification, sorting: Sort, contractStateType: Class<out T>, skipPagingChecks: Boolean): Vault.Page<T> {
log.info("Vault Query for contract type: $contractStateType, criteria: $criteria, pagination: $paging, sorting: $sorting")
log.debug { "Vault Query for contract type: $contractStateType, criteria: $criteria, pagination: $paging, sorting: $sorting" }
return database.transaction {
// calculate total results where a page specification has been defined
var totalStates = -1L

View File

@ -4,6 +4,7 @@ import com.typesafe.config.Config
import net.corda.core.internal.deleteRecursively
import net.corda.core.internal.div
import net.corda.core.utilities.NetworkHostAndPort
import net.corda.nodeapi.internal.config.UnknownConfigKeysPolicy
import net.corda.nodeapi.internal.config.parseAs
import tornadofx.*
import java.io.IOException
@ -19,7 +20,7 @@ class InstallFactory : Controller() {
require(nodeController.isPortValid(port)) { "Invalid port $port" }
}
val nodeConfig = config.parseAs<NodeConfig>()
val nodeConfig = config.parseAs<NodeConfig>(UnknownConfigKeysPolicy.IGNORE::handle)
nodeConfig.p2pAddress.checkPort()
nodeConfig.rpcAddress.checkPort()
nodeConfig.webAddress.checkPort()

View File

@ -33,7 +33,10 @@ data class NodeConfig(
val issuableCurrencies: List<String> = emptyList(),
/** Pass-through for generating node.conf with external DB */
val dataSourceProperties: Properties? = null,
val database: Properties? = null
val database: Properties? = null,
private val devMode: Boolean = true,
private val detectPublicIp: Boolean = false,
private val useTestClock: Boolean = true
) {
companion object {
val renderOptions: ConfigRenderOptions = ConfigRenderOptions.defaults().setOriginComments(false)
@ -41,14 +44,9 @@ data class NodeConfig(
const val cordappDirName = "cordapps"
}
@Suppress("unused")
private val detectPublicIp = false
@Suppress("unused")
private val useTestClock = true
fun nodeConf(): Config {
val basic = NodeConfigurationData(myLegalName, p2pAddress, rpcAddress, notary, h2port, rpcUsers, useTestClock, detectPublicIp).toConfig()
val basic = NodeConfigurationData(myLegalName, p2pAddress, rpcAddress, notary, h2port, rpcUsers, useTestClock, detectPublicIp, devMode).toConfig()
val rpcSettings = empty()
.withValue("address", ConfigValueFactory.fromAnyRef(rpcAddress.toString()))
.withValue("adminAddress", ConfigValueFactory.fromAnyRef(rpcAdminAddress.toString()))
@ -78,7 +76,8 @@ private data class NodeConfigurationData(
val h2port: Int,
val rpcUsers: List<User> = listOf(NodeConfig.defaultUser),
val useTestClock: Boolean,
val detectPublicIp: Boolean
val detectPublicIp: Boolean,
val devMode: Boolean
)
private data class WebServerConfigurationData(

View File

@ -13,6 +13,7 @@ import javafx.scene.layout.HBox
import javafx.scene.layout.StackPane
import javafx.scene.layout.VBox
import javafx.util.Duration
import net.corda.client.rpc.RPCException
import net.corda.core.concurrent.match
import net.corda.core.contracts.ContractState
import net.corda.core.messaging.CordaRPCOps
@ -201,13 +202,25 @@ class NodeTerminalView : Fragment() {
}
val fxScheduler = Schedulers.from(Platform::runLater)
subscriptions.add(txNext.observeOn(fxScheduler).subscribe {
subscriptions.add(txNext.observeOn(fxScheduler).subscribe({
transactions.value = (++txCount).toString()
})
subscriptions.add(stateNext.observeOn(fxScheduler).subscribe {
}, { error ->
if (error is RPCException && error.message?.contains("Connection failure detected") == true) {
// Ignore this ^^^, it only happens when we shutdown a node in Demobench.
} else {
throw error
}
}))
subscriptions.add(stateNext.observeOn(fxScheduler).subscribe({
stateCount += (it.produced.size - it.consumed.size)
states.value = stateCount.toString()
})
}, { error ->
if (error is RPCException && error.message?.contains("Connection failure detected") == true) {
// Ignore this ^^^, it only happens when we shutdown a node in Demobench.
} else {
throw error
}
}))
} catch (e: Exception) {
log.log(Level.WARNING, "RPC failed: ${e.message}", e)
}