Browse Source

fix an issue that occurs when the plugin developer put the pf4j jar in the plugin's lib folder (or not declare the pf4j dependency with scope provided in pom.xml)

pull/22/head
Decebal Suiu 11 years ago
parent
commit
f508484004
  1. 18
      pf4j/src/main/java/ro/fortsoft/pf4j/PluginClassLoader.java

18
pf4j/src/main/java/ro/fortsoft/pf4j/PluginClassLoader.java

@ -60,6 +60,15 @@ public class PluginClassLoader extends URLClassLoader {
} }
*/ */
// if the class it's a part of the plugin engine use parent class loader
if (className.startsWith(PLUGIN_PACKAGE_PREFIX)) {
try {
return PluginClassLoader.class.getClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
// try next step
}
}
// second check whether it's already been loaded // second check whether it's already been loaded
Class<?> loadedClass = findLoadedClass(className); Class<?> loadedClass = findLoadedClass(className);
if (loadedClass != null) { if (loadedClass != null) {
@ -73,15 +82,6 @@ public class PluginClassLoader extends URLClassLoader {
// try next step // try next step
} }
// if the class it's a part of the plugin engine use parent class loader
if (className.startsWith(PLUGIN_PACKAGE_PREFIX)) {
try {
return PluginClassLoader.class.getClassLoader().loadClass(className);
} catch (ClassNotFoundException e) {
// try next step
}
}
// look in dependencies // look in dependencies
List<PluginDependency> dependencies = pluginDescriptor.getDependencies(); List<PluginDependency> dependencies = pluginDescriptor.getDependencies();
for (PluginDependency dependency : dependencies) { for (PluginDependency dependency : dependencies) {

Loading…
Cancel
Save