in inject/inject-app/src/main/scala/com/twitter/inject/app/App.scala [141:174]
def main(): Unit = {
observe(PostInjectorStartup) {
installedModules = loadModules()
installedModules.postInjectorStartup()
postInjectorStartup()
}
observe(Warmup) {
info("Warming up.")
warmup()
}
observe(BeforePostWarmup) {
beforePostWarmup()
}
observe(PostWarmup) {
postWarmup()
}
observe(AfterPostWarmup) {
afterPostWarmup()
installedModules.postWarmupComplete()
}
/* Register close and shutdown of InstalledModules */
registerInstalledModulesExits()
info(s"$name started.")
val consoleWriter = injector.instance[ConsoleWriter]
consoleWriter.let { // use our installed output streams for this application
/* Execute callback for further configuration or to start long-running background processes */
startApplication()
}
}