com.alee.managers.plugin
Class PluginManager<T extends Plugin>

java.lang.Object
  extended by com.alee.managers.plugin.PluginManager<T>

public abstract class PluginManager<T extends Plugin>
extends java.lang.Object

Base class for any plugin manager you might want to create.

Author:
Mikle Garin
See Also:
How to use PluginManager, Plugin

Field Summary
protected  boolean allowSimilarPlugins
          Whether should allow loading multiply plugins with the same ID or not.
protected  java.util.List<T> availablePlugins
          Loaded and running plugins list.
protected  java.util.Map<java.lang.Class<? extends Plugin>,T> availablePluginsByClass
          Map of plugins cached by their classes.
protected  java.util.Map<java.lang.String,T> availablePluginsById
          Map of plugins cached by their IDs.
protected  java.lang.Object checkLock
          Plugin checks lock object.
protected  boolean checkRecursively
          Whether plugins directory subfolders should be checked recursively or not.
protected  boolean createNewClassLoader
          Whether should create exclusive class loader for each plugin or not.
protected  java.util.List<DetectedPlugin<T>> detectedPlugins
          Detected plugins list.
protected  java.util.Map<java.lang.String,DetectedPlugin<T>> detectedPluginsByPath
          Detected plugins cached by plugin file path.
protected  java.io.FileFilter fileFilter
          Plugin directory files filter.
protected  java.util.List<PluginsListener<T>> listeners
          Plugins listeners.
protected  boolean loggingEnabled
          Whether plugin manager logging is enabled or not.
protected  Filter<DetectedPlugin<T>> pluginFilter
          Special filter to filter out unwanted plugins before their initialization.
protected  java.lang.String pluginsDirectoryPath
          Plugins directory path.
protected  java.util.List<DetectedPlugin<T>> recentlyDetected
          Recently detected plugins list.
protected  java.util.List<T> recentlyInitialized
          Recently initialized plugins list.
protected  java.util.List<PluginManager> relatedManagers
          Related plugin managers list.
 
Constructor Summary
PluginManager()
          Constructs new plugin manager.
PluginManager(java.lang.String pluginsDirectoryPath)
          Constructs new plugin manager.
PluginManager(java.lang.String pluginsDirectoryPath, boolean checkRecursively)
          Constructs new plugin manager.
 
Method Summary
 void addPluginsListener(PluginsListener<T> listener)
          Adds plugins listener.
 void addRelatedManager(PluginManager manager)
          Adds plugin manager into related managers list.
protected  void applyInitializationStrategy()
          Sorting plugins according to their initialization strategies.
protected  boolean collectPluginInformation(java.io.File file)
          Tries to collect plugin information from the specified file.
protected  boolean collectPluginsInformation(java.lang.String pluginsDirectoryPath, boolean checkRecursively)
          Collects information about available plugins.
protected  void collectPluginsInformationImpl(java.io.File dir, boolean checkRecursively)
          Collects information about available plugins.
 void firePluginsCheckEnded(java.lang.String directory, boolean recursive)
          Informs about plugins check operation end.
 void firePluginsCheckStarted(java.lang.String directory, boolean recursive)
          Informs about plugins check operation start.
 void firePluginsDetected(java.util.List<DetectedPlugin<T>> plugins)
          Informs about newly detected plugins.
 void firePluginsInitialized(java.util.List<T> plugins)
          Informs about newly initialized plugins.
protected  java.lang.String getAcceptedPluginType()
          Returns accepted by this manager plugin type.
 java.util.List<T> getAvailablePlugins()
          Returns list of available loaded plugins.
 DetectedPlugin<T> getDetectedPlugin(java.io.File file)
          Returns plugin information from the specified plugin file.
 java.util.List<DetectedPlugin<T>> getDetectedPlugins()
          Returns list of detected plugins.
 int getDetectedPluginsAmount()
          Returns amount of detected plugins.
 int getFailedPluginsAmount()
          Returns amount of plugins which have failed to load.
 java.io.FileFilter getFileFilter()
          Returns plugins directory file filter.
 int getLoadedPluginsAmount()
          Returns amount of successfully loaded plugins.
<P extends T>
P
getPlugin(java.lang.Class<P> pluginClass)
          Returns available plugin instance by its class.
<P extends T>
P
getPlugin(java.lang.String pluginId)
          Returns available plugin instance by its ID.
protected  java.lang.String getPluginDescriptorFile()
          Returns name of the plugin descriptor file.
 Filter<DetectedPlugin<T>> getPluginFilter()
          Returns special filter that filters out unwanted plugins before their initialization.
protected  DetectedPlugin<T> getPluginInformation(java.io.File file)
          Returns plugin information from the specified plugin file.
protected  java.lang.String getPluginLogoFile()
          Returns name of the plugin logo file.
 java.lang.String getPluginsDirectoryPath()
          Returns plugins directory path.
protected  void initializeDetectedPlugins()
          Initializes earlier detected plugins.
protected  void initializeDetectedPluginsImpl()
          Initializes earlier detected plugins.
 boolean isAllowSimilarPlugins()
          Returns whether should allow loading multiply plugins with the same ID or not.
 boolean isCheckRecursively()
          Returns whether plugins directory subfolders should be checked recursively or not.
 boolean isCreateNewClassLoader()
          Returns whether should create new class loader for each loaded plugin or not.
 boolean isDeprecatedVersion(DetectedPlugin<T> plugin)
          Returns whether the list of detected plugins contain a newer version of the specified plugin or not.
 boolean isDeprecatedVersion(DetectedPlugin<T> plugin, java.util.List<DetectedPlugin<T>> detectedPlugins)
          Returns whether the list of detected plugins contain a newer version of the specified plugin or not.
 boolean isLoggingEnabled()
          Returns whether plugin manager logging is enabled or not.
 boolean isPluginAvailable(java.lang.String pluginId)
          Returns whether plugin is available or not.
protected  boolean isSameVersionAlreadyLoaded(DetectedPlugin<T> plugin, java.util.List<DetectedPlugin<T>> detectedPlugins)
          Returns whether the list of detected plugins contain the same version of the specified plugin or not.
 PluginsAdapter<T> onPluginsDetection(DetectedPluginsRunnable<T> runnable)
          Adds plugins detection event action.
 PluginsAdapter<T> onPluginsInitialization(PluginsRunnable<T> runnable)
          Adds plugins initialization end event action.
 PluginsAdapter<T> onPluginsScanEnd(DirectoryRunnable runnable)
          Adds plugins scan end event action.
 PluginsAdapter<T> onPluginsScanStart(DirectoryRunnable runnable)
          Adds plugins scan start event action.
 void registerPlugin(T plugin)
          Registers programmatically loaded plugin within this PluginManager.
 void registerPlugin(T plugin, PluginInformation information, javax.swing.ImageIcon logo)
          Registers programmatically loaded plugin within this PluginManager.
 void removePluginsListener(PluginsListener<T> listener)
          Removes plugins listener.
 void removeRelatedManager(PluginManager manager)
          Removes plugin manager from related managers list.
 void scanPlugin(java.io.File pluginFile)
          Tries to load plugin from the specified file.
 void scanPlugin(java.lang.String pluginFile)
          Tries to load plugin from the specified file.
 void scanPlugin(java.net.URL pluginFileURL)
          Downloads plugin from the specified URL and tries to load it.
 void scanPluginsDirectory()
          Performs plugins search within the specified plugins directory.
 void scanPluginsDirectory(boolean checkRecursively)
          Performs plugins search within the specified plugins directory.
 void scanPluginsDirectory(java.lang.String pluginsDirectoryPath)
          Performs plugins search within the specified plugins directory.
 void scanPluginsDirectory(java.lang.String pluginsDirectoryPath, boolean checkRecursively)
          Performs plugins search within the specified plugins directory.
 void setAllowSimilarPlugins(boolean allow)
          Sets whether should allow loading multiply plugins with the same ID or not.
 void setCheckRecursively(boolean checkRecursively)
          Sets whether plugins directory subfolders should be checked recursively or not.
 void setCreateNewClassLoader(boolean createNewClassLoader)
          Sets whether should create new class loader for each loaded plugin or not.
 void setFileFilter(java.io.FileFilter filter)
          Sets plugins directory file filter.
 void setLoggingEnabled(boolean loggingEnabled)
          Sets whether plugin manager logging is enabled or not.
 void setPluginFilter(Filter<DetectedPlugin<T>> pluginFilter)
          Sets special filter that filters out unwanted plugins before their initialization.
 void setPluginsDirectoryPath(java.lang.String path)
          Sets plugins directory path.
protected  void sortRecentlyDetectedPluginsByDependencies()
          Tries to sort recently detected plugins list by known plugin dependencies.
protected  boolean wasDetected(java.lang.String pluginFolder, java.lang.String pluginFile)
          Returns whether this plugin file was already detected before or not.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

listeners

protected java.util.List<PluginsListener<T extends Plugin>> listeners
Plugins listeners.


checkLock

protected final java.lang.Object checkLock
Plugin checks lock object.


relatedManagers

protected final java.util.List<PluginManager> relatedManagers
Related plugin managers list. These managers are used to check dependencies load state and some other information later on.


detectedPlugins

protected java.util.List<DetectedPlugin<T extends Plugin>> detectedPlugins
Detected plugins list. All plugins with available descriptions will get into this list.


detectedPluginsByPath

protected java.util.Map<java.lang.String,DetectedPlugin<T extends Plugin>> detectedPluginsByPath
Detected plugins cached by plugin file path.


recentlyDetected

protected java.util.List<DetectedPlugin<T extends Plugin>> recentlyDetected
Recently detected plugins list. Contains plugins detected while last plugins check.


pluginFilter

protected Filter<DetectedPlugin<T extends Plugin>> pluginFilter
Special filter to filter out unwanted plugins before their initialization. It is up to developer to specify this filter and its conditions.


allowSimilarPlugins

protected boolean allowSimilarPlugins
Whether should allow loading multiply plugins with the same ID or not. In case this is set to false only the newest version of the same plugin will be loaded if more than one provided.


loggingEnabled

protected boolean loggingEnabled
Whether plugin manager logging is enabled or not.


availablePlugins

protected java.util.List<T extends Plugin> availablePlugins
Loaded and running plugins list. This might be less than list of detected plugins in the end due to lots of different reasons. Only those plugins which are actually loaded successfully are getting added here.


availablePluginsById

protected java.util.Map<java.lang.String,T extends Plugin> availablePluginsById
Map of plugins cached by their IDs.


availablePluginsByClass

protected java.util.Map<java.lang.Class<? extends Plugin>,T extends Plugin> availablePluginsByClass
Map of plugins cached by their classes.


recentlyInitialized

protected java.util.List<T extends Plugin> recentlyInitialized
Recently initialized plugins list. Contains plugins initialized while last plugins check.


pluginsDirectoryPath

protected java.lang.String pluginsDirectoryPath
Plugins directory path. It is either absolute path or relative to working directory path.


checkRecursively

protected boolean checkRecursively
Whether plugins directory subfolders should be checked recursively or not.


fileFilter

protected java.io.FileFilter fileFilter
Plugin directory files filter. By defauly "*.jar" and "*.plugin" files are accepted.


createNewClassLoader

protected boolean createNewClassLoader
Whether should create exclusive class loader for each plugin or not. Be aware that you might experience various classpath issues with exclusive class loaders unless you know what you are doing.

Constructor Detail

PluginManager

public PluginManager()
Constructs new plugin manager.


PluginManager

public PluginManager(java.lang.String pluginsDirectoryPath)
Constructs new plugin manager.

Parameters:
pluginsDirectoryPath - plugins directory path

PluginManager

public PluginManager(java.lang.String pluginsDirectoryPath,
                     boolean checkRecursively)
Constructs new plugin manager.

Parameters:
pluginsDirectoryPath - plugins directory path
checkRecursively - whether plugins directory subfolders should be checked recursively or not
Method Detail

getPluginDescriptorFile

protected java.lang.String getPluginDescriptorFile()
Returns name of the plugin descriptor file. This file should contain serialized PluginInformation.

Returns:
name of the plugin descriptor file

getPluginLogoFile

protected java.lang.String getPluginLogoFile()
Returns name of the plugin logo file. Logo should be placed near the plugin descriptor file.

Returns:
name of the plugin logo file

getAcceptedPluginType

protected java.lang.String getAcceptedPluginType()
Returns accepted by this manager plugin type. In case null is returned this manager accepts any plugin type.

Returns:
accepted by this manager plugin type

addRelatedManager

public void addRelatedManager(PluginManager manager)
Adds plugin manager into related managers list. These managers are used to check dependencies load state and some other information later on.

Parameters:
manager - plugin manager to add into related managers list

removeRelatedManager

public void removeRelatedManager(PluginManager manager)
Removes plugin manager from related managers list. These managers are used to check dependencies load state and some other information later on.

Parameters:
manager - plugin manager to add into related managers list

registerPlugin

public void registerPlugin(T plugin)
Registers programmatically loaded plugin within this PluginManager. This call will add the specified plugin into available plugins list. It will also create a custom DetectedPlugin data based on provided information.

Parameters:
plugin - plugin to register

registerPlugin

public void registerPlugin(T plugin,
                           PluginInformation information,
                           javax.swing.ImageIcon logo)
Registers programmatically loaded plugin within this PluginManager. This call will add the specified plugin into available plugins list. It will also create a custom DetectedPlugin data based on provided information.

Parameters:
plugin - plugin to register
information - about this plugin
logo - plugin logo

scanPlugin

public void scanPlugin(java.net.URL pluginFileURL)
Downloads plugin from the specified URL and tries to load it. In case the file is not a plugin it will simply be ignored. Plugins added this way will also be filtered and checked for other means.

Parameters:
pluginFileURL - plugin file URL

scanPlugin

public void scanPlugin(java.lang.String pluginFile)
Tries to load plugin from the specified file. In case the file is not a plugin it will simply be ignored. Plugins added this way will also be filtered and checked for other means.

Parameters:
pluginFile - plugin file path

scanPlugin

public void scanPlugin(java.io.File pluginFile)
Tries to load plugin from the specified file. In case the file is not a plugin it will simply be ignored. Plugins added this way will also be filtered and checked for other means.

Parameters:
pluginFile - plugin file

scanPluginsDirectory

public void scanPluginsDirectory()
Performs plugins search within the specified plugins directory. This call might be performed as many times as you like. It will simply ignore plugins detected before and will process newly found plugins appropriately.


scanPluginsDirectory

public void scanPluginsDirectory(boolean checkRecursively)
Performs plugins search within the specified plugins directory. This call might be performed as many times as you like. It will simply ignore plugins detected before and will process newly found plugins appropriately.

Parameters:
checkRecursively - whether plugins directory subfolders should be checked recursively or not

scanPluginsDirectory

public void scanPluginsDirectory(java.lang.String pluginsDirectoryPath)
Performs plugins search within the specified plugins directory. This call might be performed as many times as you like. It will simply ignore plugins detected before and will process newly found plugins appropriately.

Parameters:
pluginsDirectoryPath - plugins directory path

scanPluginsDirectory

public void scanPluginsDirectory(java.lang.String pluginsDirectoryPath,
                                 boolean checkRecursively)
Performs plugins search within the specified plugins directory. This call might be performed as many times as you like. It will simply ignore plugins detected before and will process newly found plugins appropriately.

Parameters:
pluginsDirectoryPath - plugins directory path
checkRecursively - whether plugins directory subfolders should be checked recursively or not

collectPluginsInformation

protected boolean collectPluginsInformation(java.lang.String pluginsDirectoryPath,
                                            boolean checkRecursively)
Collects information about available plugins.

Returns:
true if operation succeeded, false otherwise

collectPluginsInformationImpl

protected void collectPluginsInformationImpl(java.io.File dir,
                                             boolean checkRecursively)
Collects information about available plugins.

Parameters:
dir - plugins directory

collectPluginInformation

protected boolean collectPluginInformation(java.io.File file)
Tries to collect plugin information from the specified file. This call will simply be ignored if this is not a plugin file or if something goes wrong.

Parameters:
file - plugin file to process
Returns:
true if operation succeeded, false otherwise

sortRecentlyDetectedPluginsByDependencies

protected void sortRecentlyDetectedPluginsByDependencies()
Tries to sort recently detected plugins list by known plugin dependencies. This sorting will have effect only if dependencies are pointing at plugins of the same type.

In case you setup dependencies on other type of plugin you will have to manually check whether those are loaded or not. That can be done by setting plugin filter into this manager and checking dependencies there.


getPluginInformation

protected DetectedPlugin<T> getPluginInformation(java.io.File file)
Returns plugin information from the specified plugin file. Returns null in case plugin file cannot be read or if it is incorrect.

Parameters:
file - plugin file to process
Returns:
plugin information from the specified plugin file or null

getDetectedPlugin

public DetectedPlugin<T> getDetectedPlugin(java.io.File file)
Returns plugin information from the specified plugin file.

Parameters:
file - plugin file to process
Returns:
plugin information from the specified plugin file

wasDetected

protected boolean wasDetected(java.lang.String pluginFolder,
                              java.lang.String pluginFile)
Returns whether this plugin file was already detected before or not.

Parameters:
pluginFolder - plugin directory
pluginFile - plugin file
Returns:
true if this plugin file was already detected before, false otherwise

initializeDetectedPlugins

protected void initializeDetectedPlugins()
Initializes earlier detected plugins. Also informs listeners about appropriate events.


initializeDetectedPluginsImpl

protected void initializeDetectedPluginsImpl()
Initializes earlier detected plugins.


isDeprecatedVersion

public boolean isDeprecatedVersion(DetectedPlugin<T> plugin)
Returns whether the list of detected plugins contain a newer version of the specified plugin or not.

Parameters:
plugin - plugin to compare with other detected plugins
Returns:
true if the list of detected plugins contain a newer version of the specified plugin, false otherwise

isDeprecatedVersion

public boolean isDeprecatedVersion(DetectedPlugin<T> plugin,
                                   java.util.List<DetectedPlugin<T>> detectedPlugins)
Returns whether the list of detected plugins contain a newer version of the specified plugin or not.

Parameters:
plugin - plugin to compare with other detected plugins
detectedPlugins - list of detected plugins
Returns:
true if the list of detected plugins contain a newer version of the specified plugin, false otherwise

isSameVersionAlreadyLoaded

protected boolean isSameVersionAlreadyLoaded(DetectedPlugin<T> plugin,
                                             java.util.List<DetectedPlugin<T>> detectedPlugins)
Returns whether the list of detected plugins contain the same version of the specified plugin or not.

Parameters:
plugin - plugin to compare with other detected plugins
detectedPlugins - list of detected plugins
Returns:
true if the list of detected plugins contain the same version of the specified plugin, false otherwise

applyInitializationStrategy

protected void applyInitializationStrategy()
Sorting plugins according to their initialization strategies.


getDetectedPlugins

public java.util.List<DetectedPlugin<T>> getDetectedPlugins()
Returns list of detected plugins.

Returns:
list of detected plugins

getAvailablePlugins

public java.util.List<T> getAvailablePlugins()
Returns list of available loaded plugins.

Returns:
list of available loaded plugins

getPlugin

public <P extends T> P getPlugin(java.lang.String pluginId)
Returns available plugin instance by its ID.

Parameters:
pluginId - plugin ID
Returns:
available plugin instance by its ID

isPluginAvailable

public boolean isPluginAvailable(java.lang.String pluginId)
Returns whether plugin is available or not.

Parameters:
pluginId - plugin ID
Returns:
true if plugin is available, false otherwise

getPlugin

public <P extends T> P getPlugin(java.lang.Class<P> pluginClass)
Returns available plugin instance by its class.

Parameters:
pluginClass - plugin class
Returns:
available plugin instance by its class

getDetectedPluginsAmount

public int getDetectedPluginsAmount()
Returns amount of detected plugins.

Returns:
amount of detected loaded plugins

getLoadedPluginsAmount

public int getLoadedPluginsAmount()
Returns amount of successfully loaded plugins.

Returns:
amount of successfully loaded plugins

getFailedPluginsAmount

public int getFailedPluginsAmount()
Returns amount of plugins which have failed to load. There might be a lot of reasons why they failed to load - exception, broken JAR, missing libraries etc. Simply check the log or retrieve failure cause from DetectedPlugin to understand what happened.

Returns:
amount of plugins which have failed to load

getPluginsDirectoryPath

public java.lang.String getPluginsDirectoryPath()
Returns plugins directory path.

Returns:
plugins directory path

setPluginsDirectoryPath

public void setPluginsDirectoryPath(java.lang.String path)
Sets plugins directory path.

Parameters:
path - new plugins directory path

isCheckRecursively

public boolean isCheckRecursively()
Returns whether plugins directory subfolders should be checked recursively or not.

Returns:
true if plugins directory subfolders should be checked recursively, false otherwise

setCheckRecursively

public void setCheckRecursively(boolean checkRecursively)
Sets whether plugins directory subfolders should be checked recursively or not.

Parameters:
checkRecursively - whether plugins directory subfolders should be checked recursively or not

getFileFilter

public java.io.FileFilter getFileFilter()
Returns plugins directory file filter.

Returns:
plugins directory file filter

setFileFilter

public void setFileFilter(java.io.FileFilter filter)
Sets plugins directory file filter. Note that setting this filter will not have any effect on plugins which are already initialized.

Parameters:
filter - plugins directory file filter

isCreateNewClassLoader

public boolean isCreateNewClassLoader()
Returns whether should create new class loader for each loaded plugin or not.

Returns:
true if should create new class loader for each loaded plugin, false otherwise

setCreateNewClassLoader

public void setCreateNewClassLoader(boolean createNewClassLoader)
Sets whether should create new class loader for each loaded plugin or not.

Parameters:
createNewClassLoader - whether should create new class loader for each loaded plugin or not

getPluginFilter

public Filter<DetectedPlugin<T>> getPluginFilter()
Returns special filter that filters out unwanted plugins before their initialization.

Returns:
special filter that filters out unwanted plugins before their initialization

setPluginFilter

public void setPluginFilter(Filter<DetectedPlugin<T>> pluginFilter)
Sets special filter that filters out unwanted plugins before their initialization.

Parameters:
pluginFilter - special filter that filters out unwanted plugins before their initialization

isAllowSimilarPlugins

public boolean isAllowSimilarPlugins()
Returns whether should allow loading multiply plugins with the same ID or not.

Returns:
true if should allow loading multiply plugins with the same ID, false otherwise

setAllowSimilarPlugins

public void setAllowSimilarPlugins(boolean allow)
Sets whether should allow loading multiply plugins with the same ID or not.

Parameters:
allow - whether should allow loading multiply plugins with the same ID or not

isLoggingEnabled

public boolean isLoggingEnabled()
Returns whether plugin manager logging is enabled or not.

Returns:
true if plugin manager logging is enabled, false otherwise

setLoggingEnabled

public void setLoggingEnabled(boolean loggingEnabled)
Sets whether plugin manager logging is enabled or not.

Parameters:
loggingEnabled - whether plugin manager logging is enabled or not

addPluginsListener

public void addPluginsListener(PluginsListener<T> listener)
Adds plugins listener.

Parameters:
listener - new plugins listener

onPluginsScanStart

public PluginsAdapter<T> onPluginsScanStart(DirectoryRunnable runnable)
Adds plugins scan start event action.

Parameters:
runnable - action to perform
Returns:
added plugins listener

onPluginsScanEnd

public PluginsAdapter<T> onPluginsScanEnd(DirectoryRunnable runnable)
Adds plugins scan end event action.

Parameters:
runnable - action to perform
Returns:
added plugins listener

onPluginsDetection

public PluginsAdapter<T> onPluginsDetection(DetectedPluginsRunnable<T> runnable)
Adds plugins detection event action.

Parameters:
runnable - action to perform
Returns:
added plugins listener

onPluginsInitialization

public PluginsAdapter<T> onPluginsInitialization(PluginsRunnable<T> runnable)
Adds plugins initialization end event action.

Parameters:
runnable - action to perform
Returns:
added plugins listener

removePluginsListener

public void removePluginsListener(PluginsListener<T> listener)
Removes plugins listener.

Parameters:
listener - plugins listener to remove

firePluginsCheckStarted

public void firePluginsCheckStarted(java.lang.String directory,
                                    boolean recursive)
Informs about plugins check operation start.

Parameters:
directory - checked plugins directory path
recursive - whether plugins directory subfolders are checked recursively or not

firePluginsCheckEnded

public void firePluginsCheckEnded(java.lang.String directory,
                                  boolean recursive)
Informs about plugins check operation end.

Parameters:
directory - checked plugins directory path
recursive - whether plugins directory subfolders are checked recursively or not

firePluginsDetected

public void firePluginsDetected(java.util.List<DetectedPlugin<T>> plugins)
Informs about newly detected plugins.

Parameters:
plugins - newly detected plugins list

firePluginsInitialized

public void firePluginsInitialized(java.util.List<T> plugins)
Informs about newly initialized plugins.

Parameters:
plugins - newly initialized plugins list