mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27: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()
|
GuiceFactory()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun forName(className: String) =
|
fun forName(className: String) : Class<*> {
|
||||||
if (pluginClassLoader != null) pluginClassLoader.loadClass(className)
|
fun loadClass(className: String, classLoader: ClassLoader?) : Class<*>? {
|
||||||
else if (classLoader != null) classLoader.loadClass(className)
|
try {
|
||||||
else Class.forName(className)
|
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
|
// Populate pluginInfo with what was found in Kobalt's own kobalt-plugin.xml
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue