Add comment

This commit is contained in:
Naoki Takezoe
2015-02-14 23:28:21 +09:00
parent 0b15ecbacd
commit b10839a5c2
3 changed files with 24 additions and 0 deletions

View File

@@ -2,6 +2,10 @@ package plugin
import util.Version
/**
* Trait for define plugin interface.
* To provide plugin, put Plugin class which mixed in this trait into the package root.
*/
trait Plugin {
val pluginId: String
@@ -9,8 +13,16 @@ trait Plugin {
val description: String
val versions: Seq[Version]
/**
* This method is invoked in initialization of plugin system.
* Register plugin functionality to PluginRegistry.
*/
def initialize(registry: PluginRegistry): Unit
/**
* This method is invoked in shutdown of plugin system.
* If the plugin has any resources, release them in this method.
*/
def shutdown(registry: PluginRegistry): Unit
}

View File

@@ -73,14 +73,23 @@ class PluginRegistry {
}
/**
* Provides entry point to PluginRegistry.
*/
object PluginRegistry {
private val logger = LoggerFactory.getLogger(classOf[PluginRegistry])
private val instance = new PluginRegistry()
/**
* Returns the PluginRegistry singleton instance.
*/
def apply(): PluginRegistry = instance
/**
* Initializes all installed plugins.
*/
def initialize(conn: java.sql.Connection): Unit = {
val pluginDir = new File(PluginHome)
if(pluginDir.exists && pluginDir.isDirectory){

View File

@@ -2,6 +2,9 @@ package plugin
import play.twirl.api.Html
/**
* Defines result case classes returned by plugin controller.
*/
object Results {
case class Redirect(path: String)
case class Fragment(html: Html)