Browse Source

Fix the problem of not being able to disable plugins correctly (#577)

#576
John Niang 8 months ago committed by GitHub
parent
commit
f563b9168b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
  2. 13
      pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java

2
pf4j/src/main/java/org/pf4j/AbstractPluginManager.java

@ -537,7 +537,7 @@ public abstract class AbstractPluginManager implements PluginManager {
log.debug("Already disabled plugin '{}'", getPluginLabel(pluginDescriptor));
return true;
} else if (PluginState.STARTED == pluginState) {
if (PluginState.STOPPED == stopPlugin(pluginId)) {
if (PluginState.STOPPED != stopPlugin(pluginId)) {
log.error("Failed to stop plugin '{}' on disable", getPluginLabel(pluginDescriptor));
return false;
}

13
pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java

@ -166,6 +166,19 @@ public class DefaultPluginManagerTest {
assertSame(PluginState.DISABLED, plugin.getPluginState());
}
@Test
void shouldDisablePluginAfterStarting() throws IOException {
new PluginZip.Builder(pluginsPath.resolve("my-plugin-1.2.3.zip"), "myPlugin")
.pluginVersion("1.2.3")
.build();
pluginManager.loadPlugins();
pluginManager.startPlugins();
assertEquals(PluginState.STARTED, pluginManager.getPlugin("myPlugin").getPluginState());
pluginManager.disablePlugin("myPlugin");
assertEquals(PluginState.DISABLED, pluginManager.getPlugin("myPlugin").getPluginState());
}
@Test
public void deleteZipPlugin() throws Exception {
PluginZip pluginZip = new PluginZip.Builder(pluginsPath.resolve("my-plugin-1.2.3.zip"), "myPlugin")

Loading…
Cancel
Save