From 3ab280a12bd0f7d3e1f1629347e9945287430573 Mon Sep 17 00:00:00 2001 From: Chris Stewart Date: Wed, 26 Aug 2020 16:24:38 -0500 Subject: [PATCH] Remove AppConfig.initialize() in favor of AppConfig.start() (#1907) * Remove AppConfig.initialize() in favor of AppConfig.start() * Fix docs --- .../scala/org/bitcoins/server/BitcoinSAppConfig.scala | 4 +--- .../bitcoins/chain/config/ChainAppConfigTest.scala | 6 +++--- .../org/bitcoins/chain/config/ChainAppConfig.scala | 9 +++------ .../src/main/scala/org/bitcoins/db/AppConfig.scala | 11 ++++------- docs/chain/chain.md | 2 +- docs/node/node.md | 2 +- docs/wallet/wallet.md | 4 ++-- node/src/main/scala/org/bitcoins/node/Node.scala | 1 - .../org/bitcoins/node/config/NodeAppConfig.scala | 5 +---- .../scala/org/bitcoins/testkit/db/DbTestUtil.scala | 6 +----- .../org/bitcoins/testkit/db/TestDAOFixture.scala | 2 +- .../bitcoins/testkit/fixtures/NodeDAOFixture.scala | 2 +- .../bitcoins/testkit/wallet/BitcoinSWalletTest.scala | 4 ++-- .../src/main/scala/org/bitcoins/wallet/Wallet.scala | 2 +- .../org/bitcoins/wallet/config/WalletAppConfig.scala | 4 +--- 15 files changed, 23 insertions(+), 41 deletions(-) diff --git a/app/server/src/main/scala/org/bitcoins/server/BitcoinSAppConfig.scala b/app/server/src/main/scala/org/bitcoins/server/BitcoinSAppConfig.scala index c0a6cb644e..698c3103ed 100644 --- a/app/server/src/main/scala/org/bitcoins/server/BitcoinSAppConfig.scala +++ b/app/server/src/main/scala/org/bitcoins/server/BitcoinSAppConfig.scala @@ -32,9 +32,7 @@ case class BitcoinSAppConfig( /** Initializes the wallet, node and chain projects */ override def start(): Future[Unit] = { - val futures = List(walletConf.initialize(), - nodeConf.initialize(), - chainConf.initialize()) + val futures = List(walletConf.start(), nodeConf.start(), chainConf.start()) Future.sequence(futures).map(_ => ()) } diff --git a/chain-test/src/test/scala/org/bitcoins/chain/config/ChainAppConfigTest.scala b/chain-test/src/test/scala/org/bitcoins/chain/config/ChainAppConfigTest.scala index 22b827f6c5..af5f4e68b0 100644 --- a/chain-test/src/test/scala/org/bitcoins/chain/config/ChainAppConfigTest.scala +++ b/chain-test/src/test/scala/org/bitcoins/chain/config/ChainAppConfigTest.scala @@ -27,13 +27,13 @@ class ChainAppConfigTest extends ChainUnitTest { withChainFixture(test) it must "initialize our chain project" in { _ => - val isInitF = chainAppConfig.isInitialized() + val isInitF = chainAppConfig.isStarted() for { isInit <- isInitF _ = assert(!isInit) - _ <- chainAppConfig.initialize() - isInitAgain <- chainAppConfig.isInitialized() + _ <- chainAppConfig.start() + isInitAgain <- chainAppConfig.isStarted() } yield assert(isInitAgain) } diff --git a/chain/src/main/scala/org/bitcoins/chain/config/ChainAppConfig.scala b/chain/src/main/scala/org/bitcoins/chain/config/ChainAppConfig.scala index ec12799a61..ad9cae6745 100644 --- a/chain/src/main/scala/org/bitcoins/chain/config/ChainAppConfig.scala +++ b/chain/src/main/scala/org/bitcoins/chain/config/ChainAppConfig.scala @@ -39,7 +39,7 @@ case class ChainAppConfig( * trying to read the genesis block header from our block * header table */ - def isInitialized()(implicit ec: ExecutionContext): Future[Boolean] = { + def isStarted(): Future[Boolean] = { val bhDAO = BlockHeaderDAO()(ec, appConfig) val isDefinedOptF = { bhDAO.read(chain.genesisBlock.blockHeader.hashBE).map(_.isDefined) @@ -58,12 +58,12 @@ case class ChainAppConfig( * This creates the necessary tables for the chain project * and inserts preliminary data like the genesis block header */ - override def initialize()(implicit ec: ExecutionContext): Future[Unit] = { + override def start(): Future[Unit] = { val numMigrations = migrate() logger.info(s"Applied ${numMigrations} to chain project") - val isInitF = isInitialized() + val isInitF = isStarted() isInitF.flatMap { isInit => if (isInit) { FutureUtil.unit @@ -101,9 +101,6 @@ case class ChainAppConfig( lazy val forceRecalcChainWork: Boolean = config.getBooleanOrElse(s"$moduleName.force-recalc-chainwork", default = false) - - /** Starts the associated application */ - override def start(): Future[Unit] = FutureUtil.unit } object ChainAppConfig extends AppConfigFactory[ChainAppConfig] { diff --git a/db-commons/src/main/scala/org/bitcoins/db/AppConfig.scala b/db-commons/src/main/scala/org/bitcoins/db/AppConfig.scala index db4a717959..75918cbcad 100644 --- a/db-commons/src/main/scala/org/bitcoins/db/AppConfig.scala +++ b/db-commons/src/main/scala/org/bitcoins/db/AppConfig.scala @@ -10,7 +10,7 @@ import org.bitcoins.core.util.{BitcoinSLogger, StartStopAsync} import slick.basic.DatabaseConfig import slick.jdbc.JdbcProfile -import scala.concurrent.{ExecutionContext, Future} +import scala.concurrent.{Future} import scala.util.matching.Regex import scala.util.{Failure, Properties, Success, Try} @@ -26,17 +26,14 @@ abstract class AppConfig extends LoggerConfig with StartStopAsync[Unit] { private val logger = BitcoinSLogger.logger /** - * Initializes this project. + * Starts this project. * After this future resolves, all operations should be * able to be performed correctly. * - * Initializing may include creating database tables, - * making directories or files needed latern or + * Starting may include creating database tables, + * making directories or files needed later or * something else entirely. */ - def initialize()(implicit ec: ExecutionContext): Future[Unit] - - /** Starts the associated application */ override def start(): Future[Unit] /** Releases the thread pool associated with this AppConfig's DB */ diff --git a/docs/chain/chain.md b/docs/chain/chain.md index 30f9a25f52..942d0622fe 100644 --- a/docs/chain/chain.md +++ b/docs/chain/chain.md @@ -63,7 +63,7 @@ val config = ConfigFactory.parseString { implicit val chainConfig = ChainAppConfig(datadir, config) // Initialize the needed database tables if they don't exist: -val chainProjectInitF = chainConfig.initialize() +val chainProjectInitF = chainConfig.start() val blockHeaderDAO = BlockHeaderDAO() val compactFilterHeaderDAO = CompactFilterHeaderDAO() val compactFilterDAO = CompactFilterDAO() diff --git a/docs/node/node.md b/docs/node/node.md index 6e310a2c5a..ca3e0af5a8 100644 --- a/docs/node/node.md +++ b/docs/node/node.md @@ -91,7 +91,7 @@ implicit val appConfig = BitcoinSAppConfig(datadir, config) implicit val chainConfig = appConfig.chainConf implicit val nodeConfig = appConfig.nodeConf -val initNodeF = nodeConfig.initialize() +val initNodeF = nodeConfig.start() //the node requires a chainHandler to store block information //use a helper method in our testkit to create the chain project diff --git a/docs/wallet/wallet.md b/docs/wallet/wallet.md index 723fbeb209..c03a33c1bf 100644 --- a/docs/wallet/wallet.md +++ b/docs/wallet/wallet.md @@ -97,8 +97,8 @@ implicit val chainConfig = ChainAppConfig(datadir, config) // databases for managing both chain state // and wallet state val configF: Future[Unit] = for { - _ <- walletConfig.initialize() - _ <- chainConfig.initialize() + _ <- walletConfig.start() + _ <- chainConfig.start() } yield () val bitcoindInstance = BitcoindInstance.fromDatadir() diff --git a/node/src/main/scala/org/bitcoins/node/Node.scala b/node/src/main/scala/org/bitcoins/node/Node.scala index 2e464463f4..5b8b5124d1 100644 --- a/node/src/main/scala/org/bitcoins/node/Node.scala +++ b/node/src/main/scala/org/bitcoins/node/Node.scala @@ -114,7 +114,6 @@ trait Node extends NodeApi with ChainQueryApi with P2PLogger { val start = System.currentTimeMillis() for { - _ <- nodeAppConfig.initialize() _ <- nodeAppConfig.start() // get chainApi so we don't need to call chainApiFromDb on every call chainApi <- chainApiFromDb diff --git a/node/src/main/scala/org/bitcoins/node/config/NodeAppConfig.scala b/node/src/main/scala/org/bitcoins/node/config/NodeAppConfig.scala index 67b9669762..5f781aa85e 100644 --- a/node/src/main/scala/org/bitcoins/node/config/NodeAppConfig.scala +++ b/node/src/main/scala/org/bitcoins/node/config/NodeAppConfig.scala @@ -47,7 +47,7 @@ case class NodeAppConfig( * Ensures correct tables and other required information is in * place for our node. */ - override def initialize()(implicit ec: ExecutionContext): Future[Unit] = { + override def start(): Future[Unit] = { logger.debug(s"Initializing node setup") val numMigrations = migrate() @@ -70,9 +70,6 @@ case class NodeAppConfig( strs.map(_.replace("localhost", "127.0.0.1")) } - /** Starts the associated application */ - override def start(): Future[Unit] = FutureUtil.unit - /** Creates either a neutrino node or a spv node based on the [[NodeAppConfig]] given */ def createNode(peer: Peer)( chainConf: ChainAppConfig, diff --git a/testkit/src/main/scala/org/bitcoins/testkit/db/DbTestUtil.scala b/testkit/src/main/scala/org/bitcoins/testkit/db/DbTestUtil.scala index 65623d1626..461df1d3d2 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/db/DbTestUtil.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/db/DbTestUtil.scala @@ -4,7 +4,6 @@ import java.nio.file.{Files, Path} import akka.actor.ActorSystem import com.typesafe.config.Config -import org.bitcoins.core.util.FutureUtil import org.bitcoins.db._ import scodec.bits.ByteVector import slick.lifted.ProvenShape @@ -59,7 +58,7 @@ case class TestAppConfig( override def appConfig: TestAppConfig = this - override def initialize()(implicit ec: ExecutionContext): Future[Unit] = { + override def start(): Future[Unit] = { logger.debug(s"Initializing test setup") if (Files.notExists(datadir)) { @@ -68,9 +67,6 @@ case class TestAppConfig( createTable(TestDAO()(ec, this).table) } - - /** Starts the associated application */ - override def start(): Future[Unit] = FutureUtil.unit } case class TestDb(pk: String, data: ByteVector) diff --git a/testkit/src/main/scala/org/bitcoins/testkit/db/TestDAOFixture.scala b/testkit/src/main/scala/org/bitcoins/testkit/db/TestDAOFixture.scala index 12bf9aea3e..d6228c2ae8 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/db/TestDAOFixture.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/db/TestDAOFixture.scala @@ -35,7 +35,7 @@ sealed trait TestDAOFixture def withFixture(test: OneArgAsyncTest): FutureOutcome = { makeFixture( - build = () => testConfig.initialize().map(_ => TestDAO()), + build = () => testConfig.start().map(_ => TestDAO()), destroy = () => dropAll() )(test) } diff --git a/testkit/src/main/scala/org/bitcoins/testkit/fixtures/NodeDAOFixture.scala b/testkit/src/main/scala/org/bitcoins/testkit/fixtures/NodeDAOFixture.scala index cfaf82c794..e495a27376 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/fixtures/NodeDAOFixture.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/fixtures/NodeDAOFixture.scala @@ -22,7 +22,7 @@ trait NodeDAOFixture extends NodeUnitTest { def withFixture(test: OneArgAsyncTest): FutureOutcome = { makeFixture(build = () => { nodeConfig - .initialize() + .start() .map(_ => daos) }, destroy = () => destroyAppConfig(nodeConfig))(test) diff --git a/testkit/src/main/scala/org/bitcoins/testkit/wallet/BitcoinSWalletTest.scala b/testkit/src/main/scala/org/bitcoins/testkit/wallet/BitcoinSWalletTest.scala index bc42be96a1..c6f6093380 100644 --- a/testkit/src/main/scala/org/bitcoins/testkit/wallet/BitcoinSWalletTest.scala +++ b/testkit/src/main/scala/org/bitcoins/testkit/wallet/BitcoinSWalletTest.scala @@ -296,7 +296,7 @@ trait BitcoinSWalletTest def withWalletConfig(test: OneArgAsyncTest): FutureOutcome = { val builder: () => Future[WalletAppConfig] = () => { val walletConf = config.walletConf - walletConf.initialize().map(_ => walletConf) + walletConf.start().map(_ => walletConf) } val destroy: WalletAppConfig => Future[Unit] = walletAppConfig => { @@ -411,7 +411,7 @@ object BitcoinSWalletTest extends WalletLogger { // any user data AppConfig.throwIfDefaultDatadir(walletConfig) - walletConfig.initialize().flatMap { _ => + walletConfig.start().flatMap { _ => val wallet = Wallet(keyManager, nodeApi, diff --git a/wallet/src/main/scala/org/bitcoins/wallet/Wallet.scala b/wallet/src/main/scala/org/bitcoins/wallet/Wallet.scala index a965ed56dd..a395dc3b15 100644 --- a/wallet/src/main/scala/org/bitcoins/wallet/Wallet.scala +++ b/wallet/src/main/scala/org/bitcoins/wallet/Wallet.scala @@ -655,7 +655,7 @@ object Wallet extends WalletLogger { // and still have their wallet work def createAccountFutures = for { - _ <- walletAppConfig.initialize() + _ <- walletAppConfig.start() accounts = HDPurposes.all.map { purpose => //we need to create key manager params for each purpose //and then initialize a key manager to derive the correct xpub diff --git a/wallet/src/main/scala/org/bitcoins/wallet/config/WalletAppConfig.scala b/wallet/src/main/scala/org/bitcoins/wallet/config/WalletAppConfig.scala index 6612267432..4b7ca99fe0 100644 --- a/wallet/src/main/scala/org/bitcoins/wallet/config/WalletAppConfig.scala +++ b/wallet/src/main/scala/org/bitcoins/wallet/config/WalletAppConfig.scala @@ -94,7 +94,7 @@ case class WalletAppConfig( requiredConfirmations >= 1, s"requiredConfirmations cannot be less than 1, got: $requiredConfirmations") - override def initialize()(implicit ec: ExecutionContext): Future[Unit] = { + override def start(): Future[Unit] = { logger.debug(s"Initializing wallet setup") if (Files.notExists(datadir)) { @@ -181,8 +181,6 @@ case class WalletAppConfig( bip39PasswordOpt = bip39PasswordOpt)(this, ec) } - /** Starts the associated application */ - override def start(): Future[Unit] = FutureUtil.unit } object WalletAppConfig