From 92ab3ab025d2dc867e2988dc992ea5bd3155a5fa Mon Sep 17 00:00:00 2001 From: Michele Sollecito Date: Thu, 8 Nov 2018 17:17:26 +0000 Subject: [PATCH] Working on merging changes to NodeConfigurationImpl. --- .../node/services/config/NodeConfiguration.kt | 6 +++++- .../services/config/NodeConfigurationImpl.kt | 2 +- .../config/schema/v1/ConfigSections.kt | 19 ++++++++++++++++++- .../schema/v1/V1NodeConfigurationSpec.kt | 4 +++- 4 files changed, 27 insertions(+), 4 deletions(-) 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 f7d229e311..ae6be20d61 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 @@ -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 + } +} diff --git a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt index 263062698f..cf2bd48ea0 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/NodeConfigurationImpl.kt @@ -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) { diff --git a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/ConfigSections.kt b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/ConfigSections.kt index 314f435b14..8ad3fe4357 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/ConfigSections.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/ConfigSections.kt @@ -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 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 { - 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 { return valid(FlowOverrideConfig(configuration[overrides])) } +} + +internal object RelayConfigurationSpec : Configuration.Specification("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 { + return valid(RelayConfiguration(configuration[relayHost], configuration[remoteInboundPort], configuration[username], configuration[privateKeyFile], configuration[publicKeyFile], configuration[sshPort])) + } } \ No newline at end of file diff --git a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt index dc51187a10..5f7c2ffbeb 100644 --- a/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt +++ b/node/src/main/kotlin/net/corda/node/services/config/schema/v1/V1NodeConfigurationSpec.kt @@ -78,6 +78,7 @@ internal object V1NodeConfigurationSpec : Configuration.Specification { @@ -133,7 +134,8 @@ internal object V1NodeConfigurationSpec : Configuration.Specification