diff --git a/src/main/scala/de/hsaugsburg/smas/node/SmasNode.scala b/src/main/scala/de/hsaugsburg/smas/node/SmasNode.scala index c0ac676..7ee710e 100644 --- a/src/main/scala/de/hsaugsburg/smas/node/SmasNode.scala +++ b/src/main/scala/de/hsaugsburg/smas/node/SmasNode.scala @@ -120,9 +120,29 @@ abstract class SmasNode extends Serializable me.getId } + def getAllRegisteredPlugins = pluginManager.getAllRegisteredPluginNames + def registerPlugin(pluginName: String, plugin: SmasPlugin) = { pluginManager.registerPlugin(plugin, pluginName) + var result = true + + plugin.setSurroundingNode(node) + + if(pluginManager.registerPlugin(pluginName, plugin)){ + result = false + } + + /* Should registered plugin start automatically? + * + + if(!plugin.start) + { + log.warn("Plugin was not started: {}", plugin) + result = false + } + */ + result } def unregisterPlugin(plugin: String) = diff --git a/src/main/scala/de/hsaugsburg/smas/plugin/base/PluginManager.scala b/src/main/scala/de/hsaugsburg/smas/plugin/base/PluginManager.scala index 1cc3576..99f1477 100644 --- a/src/main/scala/de/hsaugsburg/smas/plugin/base/PluginManager.scala +++ b/src/main/scala/de/hsaugsburg/smas/plugin/base/PluginManager.scala @@ -28,6 +28,7 @@ trait PluginManager extends Serializable def registerPlugin(plugin: SmasPlugin, pluginName: String): Boolean def registerPlugin(pluginName: String, plugin: SmasPlugin): Boolean def unRegisterPlugin(pluginName: String): Boolean + def getAllRegisteredPluginNames: List[String] def getAmountOfPlugins: Int = pluginList.size def getAddressForPluginName(name: String): AddressBookEntry def startAllPlugins: Boolean