Browse Source

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

master
John Niang 1 month ago
parent
commit
f563b9168b
No account linked to committer's email address

+ 1
- 1
pf4j/src/main/java/org/pf4j/AbstractPluginManager.java View File

@@ -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
- 0
pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java View File

@@ -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