in kernel/src/main/scala/org/apache/toree/boot/layer/ComponentInitialization.scala [204:232]
private def initializePlugins(
config: Config,
pluginManager: PluginManager
) = {
val magicUrlArray = config.getStringList("magic_urls").asScala
.map(s => new java.net.URL(s)).toArray
if (magicUrlArray.isEmpty)
logger.warn("No external magics provided to PluginManager!")
else
logger.info("Using magics from the following locations: " +
magicUrlArray.map(_.getPath).mkString(","))
// Load internal plugins under kernel module
logger.debug("Loading internal plugins")
val internalPlugins = pluginManager.initialize()
logger.info(internalPlugins.size + " internal plugins loaded")
// Load external plugins if provided
logger.debug("Loading external plugins")
val externalPlugins = if (magicUrlArray.nonEmpty) {
val externalPlugins = pluginManager.loadPlugins(
magicUrlArray.map(_.getFile).map(new File(_)): _*
)
pluginManager.initializePlugins(externalPlugins)
externalPlugins
} else Nil
logger.info(externalPlugins.size + " external plugins loaded")
}