mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-25 16:07:12 -07:00
Better plugin class loading.
This commit is contained in:
parent
744f2ab052
commit
995706c8b7
1 changed files with 16 additions and 4 deletions
|
@ -156,10 +156,22 @@ class PluginInfo(val xml: KobaltPluginXml, val pluginClassLoader: ClassLoader?,
|
|||
GuiceFactory()
|
||||
}
|
||||
|
||||
fun forName(className: String) =
|
||||
if (pluginClassLoader != null) pluginClassLoader.loadClass(className)
|
||||
else if (classLoader != null) classLoader.loadClass(className)
|
||||
else Class.forName(className)
|
||||
fun forName(className: String) : Class<*> {
|
||||
fun loadClass(className: String, classLoader: ClassLoader?) : Class<*>? {
|
||||
try {
|
||||
return classLoader?.loadClass(className)
|
||||
} catch(ex: ClassNotFoundException) {
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
val result = loadClass(className, classLoader)
|
||||
?: Class.forName(className)
|
||||
?: loadClass(className, pluginClassLoader)
|
||||
?: throw ClassNotFoundException(className)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
//
|
||||
// Populate pluginInfo with what was found in Kobalt's own kobalt-plugin.xml
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue