implemented optional dependencies

Plugin authors could now define optional dependencies to other plugins in their pom.
Extensions which are using classes from optional dependencies must specify this
with the "requires" attribute of the extension annotation.
Extensions with "requires" attribute are not installed if one of the specified plugins,
is not installed.
This commit is contained in:
Sebastian Sdorra
2020-01-08 14:27:11 +01:00
parent 3244e552a9
commit c1aa4af6e0
14 changed files with 262 additions and 86 deletions

View File

@@ -99,7 +99,7 @@ public class DefaultPluginLoader implements PluginLoader
modules = getInstalled(parent, context, PATH_MODULECONFIG);
collector = new ExtensionCollector(Iterables.concat(modules, unwrap()));
collector = new ExtensionCollector(parent, modules, installedPlugins);
extensionProcessor = new DefaultExtensionProcessor(collector);
}
catch (IOException | JAXBException ex)
@@ -170,19 +170,6 @@ public class DefaultPluginLoader implements PluginLoader
return uberWebResourceLoader;
}
//~--- methods --------------------------------------------------------------
/**
* Method description
*
*
* @return
*/
private Iterable<InstalledPluginDescriptor> unwrap()
{
return PluginsInternal.unwrap(installedPlugins);
}
//~--- get methods ----------------------------------------------------------
/**