A plugin should never, ever, ever define a Global
, that's for the app.
Define a filter instead, and have the app include that in its filters:
object MyFilter extends EssentialFilter {
def apply(next: RequestHeader => EssentialAction) = EssentialAction { request =>
Play.application.plugin(classOf[MyPlugin]) match {
case Some(plugin) if plugin.enabled() {
MyController.action(request)
case _ =>
next(request)
}
}
}