diff options
author | Sergey Nastich <nastich@users.noreply.github.com> | 2018-08-24 13:41:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-24 13:41:27 -0400 |
commit | df1a2f7fcbdd85ac84162cf8eae8cdb6bb25cbb5 (patch) | |
tree | cdfb528e1d4569bfc973b784e6a763b02108442c /src/main/scala/xyz/driver/core/app | |
parent | 46306f0c8f7e88e55a3b18df8ab212e9ea5e01f1 (diff) | |
download | driver-core-df1a2f7fcbdd85ac84162cf8eae8cdb6bb25cbb5.tar.gz driver-core-df1a2f7fcbdd85ac84162cf8eae8cdb6bb25cbb5.tar.bz2 driver-core-df1a2f7fcbdd85ac84162cf8eae8cdb6bb25cbb5.zip |
Migration to `java.time.Instant` and `java.time.LocalDate`: Part 1 (#200)v1.13.0
* Add semi-backwards-compatible JSON formats and path matchers for java.time.Instant and java.time.LocalDate
* Use `Clock` in `ApplicationContext` instead of `TimeProvider`, deprecate `TimeProvider`
* Add `ChangeableClock` in time package for tests
* Add generators for instants and LocalDates
Diffstat (limited to 'src/main/scala/xyz/driver/core/app')
-rw-r--r-- | src/main/scala/xyz/driver/core/app/init.scala | 26 |
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], |