Stop using reference.conf from corda node in doorman

This commit is contained in:
Patrick Kuo 2017-03-07 15:07:59 +00:00
parent d394a30471
commit df74024b22
2 changed files with 9 additions and 7 deletions

View File

@ -2,17 +2,18 @@ package com.r3.corda.doorman
import com.r3.corda.doorman.OptionParserHelper.toConfigWithOptions import com.r3.corda.doorman.OptionParserHelper.toConfigWithOptions
import com.typesafe.config.Config import com.typesafe.config.Config
import com.typesafe.config.ConfigFactory
import com.typesafe.config.ConfigParseOptions
import net.corda.core.div import net.corda.core.div
import net.corda.node.services.config.ConfigHelper
import net.corda.node.services.config.getOrElse import net.corda.node.services.config.getOrElse
import net.corda.node.services.config.getValue import net.corda.node.services.config.getValue
import java.nio.file.Path import java.nio.file.Path
import java.nio.file.Paths
import java.util.* import java.util.*
class DoormanParameters(args: Array<String>) { class DoormanParameters(args: Array<String>) {
private val argConfig = args.toConfigWithOptions { private val argConfig = args.toConfigWithOptions {
accepts("basedir", "Overriding configuration filepath, default to current directory.").withRequiredArg().describedAs("filepath") accepts("basedir", "Overriding configuration filepath, default to current directory.").withRequiredArg().defaultsTo(".").describedAs("filepath")
accepts("configFile", "Overriding configuration file, default to <<current directory>>/node.conf.").withRequiredArg().describedAs("filepath")
accepts("keygen", "Generate CA keypair and certificate using provide Root CA key.").withOptionalArg() accepts("keygen", "Generate CA keypair and certificate using provide Root CA key.").withOptionalArg()
accepts("rootKeygen", "Generate Root CA keypair and certificate.").withOptionalArg() accepts("rootKeygen", "Generate Root CA keypair and certificate.").withOptionalArg()
accepts("keystorePath", "CA keystore filepath, default to [basedir]/certificates/caKeystore.jks.").withRequiredArg().describedAs("filepath") accepts("keystorePath", "CA keystore filepath, default to [basedir]/certificates/caKeystore.jks.").withRequiredArg().describedAs("filepath")
@ -24,8 +25,9 @@ class DoormanParameters(args: Array<String>) {
accepts("host", "Doorman web service host override").withRequiredArg().describedAs("hostname") accepts("host", "Doorman web service host override").withRequiredArg().describedAs("hostname")
accepts("port", "Doorman web service port override").withRequiredArg().ofType(Int::class.java).describedAs("port number") accepts("port", "Doorman web service port override").withRequiredArg().ofType(Int::class.java).describedAs("port number")
} }
private val basedir by argConfig.getOrElse { Paths.get(".") } private val basedir: Path by argConfig
private val config = argConfig.withFallback(ConfigHelper.loadConfig(basedir, allowMissingConfig = true)) private val configFile by argConfig.getOrElse { basedir / "node.conf" }
private val config = argConfig.withFallback(ConfigFactory.parseFile(configFile.toFile(), ConfigParseOptions.defaults().setAllowMissing(true))).resolve()
val keystorePath: Path by config.getOrElse { basedir / "certificates" / "caKeystore.jks" } val keystorePath: Path by config.getOrElse { basedir / "certificates" / "caKeystore.jks" }
val rootStorePath: Path by config.getOrElse { basedir / "certificates" / "rootCAKeystore.jks" } val rootStorePath: Path by config.getOrElse { basedir / "certificates" / "rootCAKeystore.jks" }
val keystorePassword: String? by config.getOrElse { null } val keystorePassword: String? by config.getOrElse { null }

View File

@ -3,7 +3,6 @@ package com.r3.corda.doorman
import org.junit.Test import org.junit.Test
import java.io.File import java.io.File
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertTrue
class DoormanParametersTest { class DoormanParametersTest {
@ -11,7 +10,8 @@ class DoormanParametersTest {
@Test @Test
fun `parse arg correctly`() { fun `parse arg correctly`() {
val params = DoormanParameters(arrayOf("--keygen", "--keystorePath", testDummyPath)) val ref = javaClass.getResource("/reference.conf")
val params = DoormanParameters(arrayOf("--keygen", "--keystorePath", testDummyPath, "--configFile", ref.path))
assertEquals(DoormanParameters.Mode.CA_KEYGEN, params.mode) assertEquals(DoormanParameters.Mode.CA_KEYGEN, params.mode)
assertEquals(testDummyPath, params.keystorePath.toString()) assertEquals(testDummyPath, params.keystorePath.toString())
assertEquals(0, params.port) assertEquals(0, params.port)