aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/app/module.scala
diff options
context:
space:
mode:
authorVlad Uspensky <v.uspenskiy@icloud.com>2017-11-08 22:00:49 -0800
committerGitHub <noreply@github.com>2017-11-08 22:00:49 -0800
commita996353504ffb50d352f8a0fc69681333ef695b4 (patch)
treee9b487a71cfcc17e22f3c1843a41347d0a638a2d /src/main/scala/xyz/driver/core/app/module.scala
parentcd9ca017a1eb246cd0a5227fd984fa188ecd36d4 (diff)
parent9748dcd59d13d729595c1fab4fec548834705ebe (diff)
downloaddriver-core-1.6.4.tar.gz
driver-core-1.6.4.tar.bz2
driver-core-1.6.4.zip
Merge pull request #89 from drivergroup/initv1.6.5v1.6.4v1.6.3
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.scala18
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
*