in app/AppLoader.scala [14:49]
override def load(context: Context): Application = {
new LogbackLoggerConfigurator().configure(context.environment)
val credentialsProvider = DefaultCredentialsProvider.create()
val isDev = context.environment.mode == Mode.Dev
val configAndIdentity = for {
identity <-
if (isDev) Success(DevIdentity("amigo"))
else AppIdentity.whoAmI(defaultAppName = "amigo", credentialsProvider)
config <- Try(ConfigurationLoader.load(identity) {
case identity: AwsIdentity => SSMConfigurationLocation.default(identity)
})
} yield (config, identity)
configAndIdentity.fold(
err => {
log.error(s"Failed to start application due to $err")
throw err
},
configAndIdentity => {
val (config, identity) = configAndIdentity
val newContext = context.copy(initialConfiguration =
Configuration(config).withFallback(context.initialConfiguration)
)
val components = new AppComponents(newContext, identity)
log.info("Starting the scheduler")
components.quartzScheduler.start()
components.applicationLifecycle.addStopHook { () =>
log.info("Shutting down scheduler")
Future.successful(components.quartzScheduler.shutdown())
}
components.application
}
)
}