Thanks for your contribution!tags/release-3.4.0
@@ -235,6 +235,17 @@ public abstract class AbstractPluginManager implements PluginManager { | |||
} | |||
} | |||
/** | |||
* Unload all plugins | |||
*/ | |||
@Override | |||
public void unloadPlugins() { | |||
// wrap resolvedPlugins in new list because of concurrent modification | |||
for (PluginWrapper pluginWrapper : new ArrayList<>(resolvedPlugins)) { | |||
unloadPlugin(pluginWrapper.getPluginId()); | |||
} | |||
} | |||
/** | |||
* Unload the specified plugin and it's dependents. | |||
*/ |
@@ -100,6 +100,11 @@ public interface PluginManager { | |||
*/ | |||
PluginState stopPlugin(String pluginId); | |||
/** | |||
* Unload all plugins | |||
*/ | |||
void unloadPlugins(); | |||
/** | |||
* Unload a plugin. | |||
* |
@@ -53,6 +53,8 @@ public class JarPluginManagerTest { | |||
@AfterEach | |||
public void tearDown() { | |||
pluginManager.unloadPlugins(); | |||
pluginJar = null; | |||
pluginManager = null; | |||
} |