Working on merging changes to NodeConfigurationImpl.

This commit is contained in:
Michele Sollecito 2018-11-08 17:17:26 +00:00
parent 1671f7da31
commit 92ab3ab025
4 changed files with 27 additions and 4 deletions

View File

@ -312,4 +312,8 @@ data class RelayConfiguration(val relayHost: String,
val username: String,
val privateKeyFile: Path,
val publicKeyFile: Path,
val sshPort: Int = 22)
val sshPort: Int = Defaults.sshPort) {
internal object Defaults {
val sshPort = 22
}
}

View File

@ -165,7 +165,6 @@ data class NodeConfigurationImpl(
dataSourceProperties["transactionIsolation"] = database.transactionIsolationLevel.jdbcString
}
// TODO sollecitom check if you need to add these to validation
// enforce that SQLServer does not get sent all strings as Unicode - hibernate handles this "cleverly"
val dataSourceUrl = dataSourceProperties.getProperty(CordaPersistence.DataSourceConfigTag.DATA_SOURCE_URL, "")
if (dataSourceUrl.contains(":sqlserver:") && !dataSourceUrl.contains("sendStringParametersAsUnicode", true)) {
@ -174,6 +173,7 @@ data class NodeConfigurationImpl(
// Adjust connection pool size depending on N=flow thread pool size.
// If there is no configured pool size set it to N + 1, otherwise check that it's greater than N.
// TODO sollecitom add these to validation
val flowThreadPoolSize = enterpriseConfiguration.tuning.flowThreadPoolSize
val maxConnectionPoolSize = dataSourceProperties.getProperty("maximumPoolSize")
if (maxConnectionPoolSize == null) {

View File

@ -25,6 +25,7 @@ import net.corda.node.services.config.NodeH2Settings
import net.corda.node.services.config.NodeRpcSettings
import net.corda.node.services.config.NotaryConfig
import net.corda.node.services.config.PasswordEncryption
import net.corda.node.services.config.RelayConfiguration
import net.corda.node.services.config.SecurityConfiguration
import net.corda.node.services.config.SecurityConfiguration.AuthService.Companion.defaultAuthServiceId
import net.corda.node.services.config.Valid
@ -204,9 +205,12 @@ internal object DatabaseConfigSpec : Configuration.Specification<DatabaseConfig>
private val transactionIsolationLevel by enum(TransactionIsolationLevel::class).optional().withDefaultValue(DatabaseConfig.Defaults.transactionIsolationLevel)
private val exportHibernateJMXStatistics by boolean().optional().withDefaultValue(DatabaseConfig.Defaults.exportHibernateJMXStatistics)
private val mappedSchemaCacheSize by long().optional().withDefaultValue(DatabaseConfig.Defaults.mappedSchemaCacheSize)
private val runMigration by boolean().optional().withDefaultValue(DatabaseConfig.Defaults.runMigration)
private val hibernateDialect by string().optional()
private val schema by string().optional()
override fun parseValid(configuration: Config): Valid<DatabaseConfig> {
return valid(DatabaseConfig(configuration[initialiseSchema], configuration[transactionIsolationLevel], configuration[exportHibernateJMXStatistics], configuration[mappedSchemaCacheSize]))
return valid(DatabaseConfig(configuration[runMigration], configuration[initialiseSchema], configuration[transactionIsolationLevel], configuration[schema], configuration[exportHibernateJMXStatistics], configuration[hibernateDialect], configuration[mappedSchemaCacheSize]))
}
}
@ -233,4 +237,17 @@ internal object FlowOverridesConfigSpec : Configuration.Specification<FlowOverri
override fun parseValid(configuration: Config): Valid<FlowOverrideConfig> {
return valid(FlowOverrideConfig(configuration[overrides]))
}
}
internal object RelayConfigurationSpec : Configuration.Specification<RelayConfiguration>("RelayConfiguration") {
private val relayHost by string()
private val remoteInboundPort by int()
private val username by string()
private val privateKeyFile by string().mapValid(::toPath)
private val publicKeyFile by string().mapValid(::toPath)
private val sshPort by int().optional().withDefaultValue(RelayConfiguration.Defaults.sshPort)
override fun parseValid(configuration: Config): Valid<RelayConfiguration> {
return valid(RelayConfiguration(configuration[relayHost], configuration[remoteInboundPort], configuration[username], configuration[privateKeyFile], configuration[publicKeyFile], configuration[sshPort]))
}
}

View File

@ -78,6 +78,7 @@ internal object V1NodeConfigurationSpec : Configuration.Specification<NodeConfig
private val cryptoServiceConf by string().optional()
@Suppress("unused")
private val custom by nestedObject().optional()
private val relay by nested(RelayConfigurationSpec).optional()
override fun parseValid(configuration: Config): Valid<NodeConfiguration> {
@ -133,7 +134,8 @@ internal object V1NodeConfigurationSpec : Configuration.Specification<NodeConfig
cordappDirectories = cordappDirectories,
cordappSignerKeyFingerprintBlacklist = configuration[cordappSignerKeyFingerprintBlacklist],
cryptoServiceName = configuration[cryptoServiceName],
cryptoServiceConf = configuration[cryptoServiceConf]
cryptoServiceConf = configuration[cryptoServiceConf],
relay = configuration[relay]
))
} catch (e: Exception) {
return when (e) {