Abspielen! 2.0 Scala - Zugriff auf globales Objekt

Ich habe ein Objekt deklariert, das beim Start der Anwendung instanziiert wird. Ich möchte in einem Controller darauf zugreifen, der Teil eines Plugins ist. Ich möchte in der Lage sein, dieses Plugin zu verwenden, aber ich komme anscheinend nicht über den ersten Teil hinaus - das Finden des PluginsMyWebsocketConnection Objekt. Keines der Beispiele zeigt, wie das geht. Ich möchte nicht in den Controller injizieren, weil ich ein Plugin schreibe (ich habe statische Beispiele dafür gesehen, wie man das irgendwo macht).

Global.scala, Plugin-Anwendung \ app \ Global.scala

object Global extends GlobalSettings {

  object MyWebsocketConnection {
    val logger = // return something that gets instantiated once, like websocket object for logging to ui
  }

  class MyWebsocketConnection {
    import MyWebsocketConnection.logger
  }

  override def onStart(app: Application) {
    Logger.info("Application has started...");
  }

}

Mein benutzerdefinierter Protokollierungs-Plug-in-Controller:

MyLogger.Scala, Plugin-Anwendung \ app \ controller \ MyLogger.scala

object MyLogger {

  def info(message: String) = {
    // THIS CAN'T BE FOUND ?
    // MyWebsocketConnection.logger.send(message)
  }

}

Also, aus dem Stück! 2.0-App, die auf das Plugin verweist, würde ich (wahrscheinlich) so etwas wie das Folgende tun, aber ich kann den Teil vorher nicht einmal hinter mich bringen:

MyFutureController.scala, noch ein Stück! application \ app \ controller \ MyFutureController.scala

object MyFutureController extends Controller {
  def someRandomMethod = Action {
    // Custom logging
    MyLogger.info("Here's my log message!");
    Ok("This documentation stinks!")
  }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage