aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/app/init.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/core/app/init.scala')
-rw-r--r--src/main/scala/xyz/driver/core/app/init.scala26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/main/scala/xyz/driver/core/app/init.scala b/src/main/scala/xyz/driver/core/app/init.scala
index 119c91a..f1e80b9 100644
--- a/src/main/scala/xyz/driver/core/app/init.scala
+++ b/src/main/scala/xyz/driver/core/app/init.scala
@@ -1,6 +1,7 @@
package xyz.driver.core.app
import java.nio.file.{Files, Paths}
+import java.time.Clock
import java.util.concurrent.{Executor, Executors}
import akka.actor.ActorSystem
@@ -9,7 +10,7 @@ import com.typesafe.config.{Config, ConfigFactory}
import com.typesafe.scalalogging.Logger
import org.slf4j.LoggerFactory
import xyz.driver.core.logging.MdcExecutionContext
-import xyz.driver.core.time.provider.{SystemTimeProvider, TimeProvider}
+import xyz.driver.core.time.provider.TimeProvider
import xyz.driver.tracing.{GoogleTracer, NoTracer, Tracer}
import scala.concurrent.ExecutionContext
@@ -23,7 +24,9 @@ object init {
val gitHeadCommit: scala.Option[String]
}
- case class ApplicationContext(config: Config, time: TimeProvider, log: Logger)
+ case class ApplicationContext(config: Config, clock: Clock, log: Logger) {
+ val time: TimeProvider = clock
+ }
/** NOTE: This needs to be the first that is run when application starts.
* Otherwise if another command causes the logger to be instantiated,
@@ -68,9 +71,9 @@ object init {
val actorSystem =
ActorSystem(s"$serviceName-actors", Option(config), Option.empty[ClassLoader], Option(executionContext))
- Runtime.getRuntime.addShutdownHook(new Thread() {
- override def run(): Unit = Try(actorSystem.terminate())
- })
+ sys.addShutdownHook {
+ Try(actorSystem.terminate())
+ }
actorSystem
}
@@ -81,14 +84,11 @@ object init {
def newFixedMdcExecutionContext(capacity: Int): MdcExecutionContext =
toMdcExecutionContext(Executors.newFixedThreadPool(capacity))
- def defaultApplicationContext(): ApplicationContext = {
- val config = getEnvironmentSpecificConfig()
-
- val time = new SystemTimeProvider()
- val log = Logger(LoggerFactory.getLogger(classOf[DriverApp]))
-
- ApplicationContext(config, time, log)
- }
+ def defaultApplicationContext(): ApplicationContext =
+ ApplicationContext(
+ config = getEnvironmentSpecificConfig(),
+ clock = Clock.systemUTC(),
+ log = Logger(LoggerFactory.getLogger(classOf[DriverApp])))
def createDefaultApplication(
modules: Seq[Module],