mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 22:45:51 +01:00
Add comment
This commit is contained in:
@@ -2,6 +2,10 @@ package plugin
|
|||||||
|
|
||||||
import util.Version
|
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 {
|
trait Plugin {
|
||||||
|
|
||||||
val pluginId: String
|
val pluginId: String
|
||||||
@@ -9,8 +13,16 @@ trait Plugin {
|
|||||||
val description: String
|
val description: String
|
||||||
val versions: Seq[Version]
|
val versions: Seq[Version]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is invoked in initialization of plugin system.
|
||||||
|
* Register plugin functionality to PluginRegistry.
|
||||||
|
*/
|
||||||
def initialize(registry: PluginRegistry): Unit
|
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
|
def shutdown(registry: PluginRegistry): Unit
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,14 +73,23 @@ class PluginRegistry {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides entry point to PluginRegistry.
|
||||||
|
*/
|
||||||
object PluginRegistry {
|
object PluginRegistry {
|
||||||
|
|
||||||
private val logger = LoggerFactory.getLogger(classOf[PluginRegistry])
|
private val logger = LoggerFactory.getLogger(classOf[PluginRegistry])
|
||||||
|
|
||||||
private val instance = new PluginRegistry()
|
private val instance = new PluginRegistry()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the PluginRegistry singleton instance.
|
||||||
|
*/
|
||||||
def apply(): PluginRegistry = instance
|
def apply(): PluginRegistry = instance
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes all installed plugins.
|
||||||
|
*/
|
||||||
def initialize(conn: java.sql.Connection): Unit = {
|
def initialize(conn: java.sql.Connection): Unit = {
|
||||||
val pluginDir = new File(PluginHome)
|
val pluginDir = new File(PluginHome)
|
||||||
if(pluginDir.exists && pluginDir.isDirectory){
|
if(pluginDir.exists && pluginDir.isDirectory){
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ package plugin
|
|||||||
|
|
||||||
import play.twirl.api.Html
|
import play.twirl.api.Html
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines result case classes returned by plugin controller.
|
||||||
|
*/
|
||||||
object Results {
|
object Results {
|
||||||
case class Redirect(path: String)
|
case class Redirect(path: String)
|
||||||
case class Fragment(html: Html)
|
case class Fragment(html: Html)
|
||||||
|
|||||||
Reference in New Issue
Block a user