aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/app/module.scala
diff options
context:
space:
mode:
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
*