]> source.dussan.org Git - pf4j.git/commitdiff
Add RESOLVED as plugin state
authorDecebal Suiu <decebal.suiu@gmail.com>
Mon, 29 Jan 2018 19:34:34 +0000 (21:34 +0200)
committerDecebal Suiu <decebal.suiu@gmail.com>
Mon, 29 Jan 2018 19:34:34 +0000 (21:34 +0200)
pf4j/src/main/java/org/pf4j/AbstractPluginManager.java
pf4j/src/main/java/org/pf4j/PluginState.java

index ed4aef0f6f3f67dfe9c54d1a9c00ebd5d06903aa..18913d5fa14ee2b9788e90c741ca9a49e870d0fb 100644 (file)
@@ -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));
             }
         }
     }
index 2de2523cdc30c7b0f7d259b98273a47beb177d0d..def9136c0a70b75eb369ac7528752a88b4922ff2 100644 (file)
@@ -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