public void addSupportedPlugins(PluginPackage pluginPackage) {

		PluginStatus activationLevel = pluginPackage.getActivationLevel();
		List<PluginDescription> pluginDescriptions = getPluginDescriptions(pluginPackage);
		List<String> pluginClasseNames = new ArrayList<>();
		for (PluginDescription pluginDescription : pluginDescriptions) {

			PluginStatus status = pluginDescription.getStatus();
			if (status.compareTo(activationLevel) > 0) {
				continue; // status is not good enough to be activated (e.g., UNSTABLE)
			}

			if (!isLoaded(pluginDescription)) {
				pluginClasseNames.add(pluginDescription.getPluginClass().getName());
			}
		}
		try {
			pluginInstaller.addPlugins(pluginClasseNames);
		}
		catch (PluginException e) {
			Msg.showError(this, null, "Error Loading Plugin(s) ", e.getMessage(), e);
		}
		initLoadedPlugins();
		listener.call();
	}
Find out all plugins that depend on a plugin and add them to the dependency set
@param plugin the plugin to check if other plugins depend on it.
@param plugins the list of all loaded plugins.
Ghidra/Framework/Project/src/main/java/ghidra/framework/plugintool/PluginConfigurationModel.java