From 16b28527167287807f44b93d4ae5c425bde4a8a2 Mon Sep 17 00:00:00 2001 From: Christian Sailer Date: Thu, 13 Feb 2020 13:26:15 +0000 Subject: [PATCH] Remove seemingly unused config parsing classes (#5917) --- .../VersionedSpecificationRegistry.kt | 30 ---- .../versioned/VersionedParsingExampleTest.kt | 131 ------------------ 2 files changed, 161 deletions(-) delete mode 100644 common/configuration-parsing/src/main/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedSpecificationRegistry.kt delete mode 100644 common/configuration-parsing/src/test/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedParsingExampleTest.kt diff --git a/common/configuration-parsing/src/main/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedSpecificationRegistry.kt b/common/configuration-parsing/src/main/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedSpecificationRegistry.kt deleted file mode 100644 index 11cff499d81..00000000000 --- a/common/configuration-parsing/src/main/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedSpecificationRegistry.kt +++ /dev/null @@ -1,30 +0,0 @@ -package net.corda.common.configuration.parsing.internal.versioned - -import com.typesafe.config.Config -import net.corda.common.configuration.parsing.internal.Configuration -import net.corda.common.configuration.parsing.internal.Valid -import net.corda.common.configuration.parsing.internal.valid -import net.corda.common.validation.internal.Validated.Companion.invalid - -class VersionedSpecificationRegistry private constructor(private val versionFromConfig: (Config) -> Valid, private val specifications: Map>) : (Config) -> Valid> { - - companion object { - - fun mapping(versionParser: Configuration.Value.Parser, specifications: Map>) = VersionedSpecificationRegistry({ config -> versionParser.parse(config) }, specifications) - - fun mapping(versionParser: Configuration.Value.Parser, vararg specifications: Pair>) = VersionedSpecificationRegistry({ config -> versionParser.parse(config) }, specifications.toMap()) - - fun mapping(versionParser: (Config) -> Valid, specifications: Map>) = VersionedSpecificationRegistry(versionParser, specifications) - - fun mapping(versionParser: (Config) -> Valid, vararg specifications: Pair>) = VersionedSpecificationRegistry(versionParser, specifications.toMap()) - } - - override fun invoke(configuration: Config): Valid> { - - return versionFromConfig.invoke(configuration).mapValid { version -> - - val value = specifications[version] - value?.let { valid(it) } ?: invalid, Configuration.Validation.Error>(Configuration.Validation.Error.UnsupportedVersion.of(version)) - } - } -} \ No newline at end of file diff --git a/common/configuration-parsing/src/test/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedParsingExampleTest.kt b/common/configuration-parsing/src/test/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedParsingExampleTest.kt deleted file mode 100644 index 59c6889b3c1..00000000000 --- a/common/configuration-parsing/src/test/kotlin/net/corda/common/configuration/parsing/internal/versioned/VersionedParsingExampleTest.kt +++ /dev/null @@ -1,131 +0,0 @@ -package net.corda.common.configuration.parsing.internal.versioned - -import com.typesafe.config.Config -import net.corda.common.configuration.parsing.internal.* -import net.corda.common.validation.internal.Validated -import net.corda.common.validation.internal.Validated.Companion.invalid -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test - -class VersionedParsingExampleTest { - - @Test(timeout=300_000) - fun correct_parsing_function_is_used_for_present_version() { - - val versionParser = Configuration.Version.Extractor.fromPath("configuration.metadata.version") - val extractVersion: (Config) -> Valid = { config -> versionParser.parseRequired(config) } - val parseConfiguration = VersionedSpecificationRegistry.mapping(extractVersion, 1 to RpcSettingsSpec.V1, 2 to RpcSettingsSpec.V2) - - val principalAddressValue = Address("localhost", 8080) - val adminAddressValue = Address("127.0.0.1", 8081) - - val configurationV1 = configObject("configuration.metadata.version" to 1, "principalHost" to principalAddressValue.host, "principalPort" to principalAddressValue.port, "adminHost" to adminAddressValue.host, "adminPort" to adminAddressValue.port).toConfig().also { println(it.serialize()) } - val rpcSettingsFromVersion1Conf = parseConfiguration.invoke(configurationV1).mapValid { it.parse(configurationV1) } - - assertResult(rpcSettingsFromVersion1Conf, principalAddressValue, adminAddressValue) - - val addressesValue = configObject("principal" to "${principalAddressValue.host}:${principalAddressValue.port}", "admin" to "${adminAddressValue.host}:${adminAddressValue.port}") - val configurationV2 = configObject("configuration.metadata.version" to 2, "configuration.value.addresses" to addressesValue).toConfig().also { println(it.serialize()) } - val rpcSettingsFromVersion2Conf = parseConfiguration.invoke(configurationV2).mapValid { it.parse(configurationV2) } - - assertResult(rpcSettingsFromVersion2Conf, principalAddressValue, adminAddressValue) - } - - @Test(timeout=300_000) - fun default_value_is_used_for_absent_version() { - - val defaultVersion = 2 - val versionParser = Configuration.Version.Extractor.fromPath("configuration.metadata.version", defaultVersion) - val extractVersion: (Config) -> Valid = { config -> versionParser.parseRequired(config) } - val parseConfiguration = VersionedSpecificationRegistry.mapping(extractVersion, 1 to RpcSettingsSpec.V1, 2 to RpcSettingsSpec.V2) - - val principalAddressValue = Address("localhost", 8080) - val adminAddressValue = Address("127.0.0.1", 8081) - - val addressesValue = configObject("principal" to "${principalAddressValue.host}:${principalAddressValue.port}", "admin" to "${adminAddressValue.host}:${adminAddressValue.port}") - val configurationV2 = configObject("configuration.value.addresses" to addressesValue).toConfig().also { println(it.serialize()) } - val rpcSettingsFromVersion2Conf = parseConfiguration.invoke(configurationV2).mapValid { it.parse(configurationV2) } - - assertResult(rpcSettingsFromVersion2Conf, principalAddressValue, adminAddressValue) - } - - private fun assertResult(result: Valid, principalAddressValue: Address, adminAddressValue: Address) { - - assertThat(result.isValid).isTrue() - assertThat(result.value()).satisfies { value -> - - assertThat(value.principal).isEqualTo(principalAddressValue) - assertThat(value.admin).isEqualTo(adminAddressValue) - } - } - - private data class RpcSettings(val principal: Address, val admin: Address) - - private object RpcSettingsSpec { - - private fun addressFor(host: String, port: Int): Valid
{ - - return try { - require(host.isNotBlank()) - require(port > 0) - Validated.valid(Address(host, port)) - } catch (e: Exception) { - return Validated.invalid(Configuration.Validation.Error.BadValue.of(host, Address::class.java.simpleName, "Value must be of format \"host(String):port(Int > 0)\" e.g., \"127.0.0.1:8080\"")) - } - } - - object V1 : Configuration.Specification("RpcSettings") { - - private val principalHost by string() - private val principalPort by int() - - private val adminHost by string() - private val adminPort by int() - - override fun parseValid(configuration: Config): Valid { - - val principalHost = configuration[principalHost] - val principalPort = configuration[principalPort] - - val adminHost = configuration[adminHost] - val adminPort = configuration[adminPort] - - val principalAddress = addressFor(principalHost, principalPort) - val adminAddress = addressFor(adminHost, adminPort) - - return if (principalAddress.isValid && adminAddress.isValid) { - return valid(RpcSettings(principalAddress.value(), adminAddress.value())) - } else { - invalid(principalAddress.errors + adminAddress.errors) - } - } - } - - object V2 : Configuration.Specification("RpcSettings", prefix = "configuration.value") { - - private object AddressesSpec : Configuration.Specification("Addresses") { - - val principal by string().mapValid(::parseAddress) - - val admin by string().mapValid(::parseAddress) - - override fun parseValid(configuration: Config) = valid(Addresses(configuration[principal],configuration[admin])) - - private fun parseAddress(rawValue: String): Valid
{ - - return Address.validFromRawValue(rawValue) { error -> Configuration.Validation.Error.BadValue.of(error) } - } - } - - private val addresses by nested(AddressesSpec) - - override fun parseValid(configuration: Config): Valid { - - val addresses = configuration[addresses] - return valid(RpcSettings(addresses.principal, addresses.admin)) - } - } - } -} - -private fun Configuration.Version.Extractor.parseRequired(config: Config, options: Configuration.Validation.Options = Configuration.Validation.Options.defaults) = parse(config, options).map { it } \ No newline at end of file