def main()

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()
    }
  }