You are viewing the documentation for the 2.2.3 release in the 2.2.x series of releases. The latest stable release series is 3.0.x.
§Writing Plugins
Play comes with a few plugins predefined for all applications, these plugins are the following:
DBPlugin
-> providing a JDBC datasourceEvolutionPlugin
-> provides migration (only available if db was configured)EbeanPlugin
-> provides Ebean support (only available if db was configured)MessagesPlugin
- > provides i18n supportBasicCachePlugin
-> provides in-memory cachingGlobalPlugin
-> executes application’s settings
However, one can easily add a new plugin to an application.
- first step is to implement play.api.Plugin trait which has three methods: onStart, onStop and enabled - for example)
- this plugin should be available in the application either through pulling in it from a maven repository and referencing it
as an app dependency or the plugin code can be part of a play application - you can use it directly like
app.plugin[MyPlugin].map(_.api.mymethod).getOrElse(throwMyerror)
(whereapp
is a reference to the current application which can be obtain by importing play.api.Play.current) however, it’s recommended to wrap it for convenience (for example, see this) - in your app create a file:
conf/play.plugins
and add a reference to your plugin:5000:com.example.MyPlugin
The number represents the plugin loading order, by setting it to > 10000 we can make sure it’s loaded after the global plugins.
Tip: If you are a scala developer but you want to share your plugin with java developers, you will need make sure your API is wrapped for Java users (see this and this for an example)