You are viewing the documentation for the 2.2.x release series. 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 by following these steps:
- Implement
play.Plugin
(see this for an 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 access it like:
import static play.api.Play.*;
import static play.libs.Scala.*;
public Myplugin plugin() {
return orNull(unsafeApplication().plugin(MyPlugin.class)).api();
}
which will return an instance or subclass of MyPlugin
fully initialized or null
.
- 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.
Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.