From c4e5635212aef4a01a81006405dcb0cf5d4920a2 Mon Sep 17 00:00:00 2001 From: Decebal Suiu Date: Mon, 29 Jan 2018 21:34:34 +0200 Subject: [PATCH] Add RESOLVED as plugin state --- .../java/org/pf4j/AbstractPluginManager.java | 5 ++++ pf4j/src/main/java/org/pf4j/PluginState.java | 27 ++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java index ed4aef0..18913d5 100644 --- a/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java +++ b/pf4j/src/main/java/org/pf4j/AbstractPluginManager.java @@ -787,8 +787,13 @@ public abstract class AbstractPluginManager implements PluginManager { for (String pluginId : sortedPlugins) { PluginWrapper pluginWrapper = plugins.get(pluginId); if (unresolvedPlugins.remove(pluginWrapper)) { + PluginState pluginState = pluginWrapper.getPluginState(); + pluginWrapper.setPluginState(PluginState.RESOLVED); + resolvedPlugins.add(pluginWrapper); log.info("Plugin '{}' resolved", getPluginLabel(pluginWrapper.getDescriptor())); + + firePluginStateEvent(new PluginStateEvent(this, pluginWrapper, pluginState)); } } } diff --git a/pf4j/src/main/java/org/pf4j/PluginState.java b/pf4j/src/main/java/org/pf4j/PluginState.java index 2de2523..def9136 100644 --- a/pf4j/src/main/java/org/pf4j/PluginState.java +++ b/pf4j/src/main/java/org/pf4j/PluginState.java @@ -20,10 +20,31 @@ package org.pf4j; */ public class PluginState { + /** + * The runtime knows the plugin is there. It knows about the plugin path, the plugin descriptor. + */ public static final PluginState CREATED = new PluginState("CREATED"); + + /** + * The plugin cannot be used. + */ public static final PluginState DISABLED = new PluginState("DISABLED"); + + /** + * The plugin is created. All the dependencies are created and resolved. + * The plugin is ready to be started. + */ + public static final PluginState RESOLVED = new PluginState("RESOLVED"); + + /** + * The {@link Plugin#start()} has executed. A started plugin may contribute extensions. + */ public static final PluginState STARTED = new PluginState("STARTED"); - public static final PluginState STOPPED = new PluginState("STOPPED"); + + /** + * The {@link Plugin#stop()} has executed. + */ + public static final PluginState STOPPED = new PluginState("STOPPED"); private String status; @@ -38,9 +59,7 @@ public class PluginState { PluginState that = (PluginState) o; - if (!status.equals(that.status)) return false; - - return true; + return status.equals(that.status); } @Override -- 2.39.5