diff options
author | Vlad Uspensky <v.uspenskiy@icloud.com> | 2017-11-08 22:00:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-08 22:00:49 -0800 |
commit | a996353504ffb50d352f8a0fc69681333ef695b4 (patch) | |
tree | e9b487a71cfcc17e22f3c1843a41347d0a638a2d /src/main/scala/xyz/driver/core/app/module.scala | |
parent | cd9ca017a1eb246cd0a5227fd984fa188ecd36d4 (diff) | |
parent | 9748dcd59d13d729595c1fab4fec548834705ebe (diff) | |
download | driver-core-a996353504ffb50d352f8a0fc69681333ef695b4.tar.gz driver-core-a996353504ffb50d352f8a0fc69681333ef695b4.tar.bz2 driver-core-a996353504ffb50d352f8a0fc69681333ef695b4.zip |
App initialization convenience methods
Diffstat (limited to 'src/main/scala/xyz/driver/core/app/module.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/app/module.scala | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/app/module.scala b/src/main/scala/xyz/driver/core/app/module.scala index bbb29f4..7be38eb 100644 --- a/src/main/scala/xyz/driver/core/app/module.scala +++ b/src/main/scala/xyz/driver/core/app/module.scala @@ -3,7 +3,9 @@ package xyz.driver.core.app import akka.http.scaladsl.model.StatusCodes import akka.http.scaladsl.server.Directives.complete import akka.http.scaladsl.server.{Route, RouteConcatenation} +import com.typesafe.config.Config import com.typesafe.scalalogging.Logger +import xyz.driver.core.database.Database import xyz.driver.core.rest.{DriverRoute, NoServiceDiscovery, SavingUsedServiceDiscovery, ServiceDiscovery} import scala.reflect.runtime.universe._ @@ -36,6 +38,22 @@ class SimpleModule(override val name: String, theRoute: Route, routeType: Type) override def routeTypes: Seq[Type] = Seq(routeType) } +trait SingleDatabaseModule { self: Module => + + val databaseName: String + val config: Config + + def database = Database.fromConfig(config, databaseName) + + override def deactivate(): Unit = { + try { + database.database.close() + } finally { + self.deactivate() + } + } +} + /** * Module implementation which may be used to compose multiple modules * |