in newswires/app/AppLoader.scala [14:54]
def load(context: Context): Application = {
LoggerConfigurator(context.environment.classLoader).foreach {
_.configure(context.environment, context.initialConfiguration, Map.empty)
}
// Ensure JVM uses UTC to prevent unexpected timezone conversions in database queries
System.setProperty("user.timezone", "UTC")
TimeZone.setDefault(TimeZone.getTimeZone("UTC"))
val discoveredIdentity = Identity.discover(context)
val loadedConfig = for {
identity <- discoveredIdentity
config <- Try(ConfigurationLoader.load(identity) {
case identity: AwsIdentity =>
SSMConfigurationLocation.default(identity)
})
stage <- discoveredIdentity.map({
case id: AwsIdentity => id.stage
case _ => "dev"
})
configWithStage = Configuration
.from(Map("stage" -> stage))
.withFallback(Configuration(config))
} yield configWithStage
loadedConfig.fold(
err => {
logger.error(s"Failed to start application due to $err", err)
throw err
},
config => {
val configuration = config
.withFallback(context.initialConfiguration)
val newContext = context.copy(initialConfiguration = configuration)
new AppComponents(newContext).application
}
)
}