
org.meridor.stecker.PluginRegistry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stecker-plugin-loader Show documentation
Show all versions of stecker-plugin-loader Show documentation
This is a plugin loading library. Its main purpose is to load extension point implementations from
provided plugins.
package org.meridor.stecker;
import org.meridor.stecker.interfaces.ClassLoaderAware;
import org.meridor.stecker.interfaces.ImplementationsAware;
import org.meridor.stecker.interfaces.PluginsAware;
import org.meridor.stecker.interfaces.ResourcesAware;
import java.nio.file.Path;
import java.util.List;
/**
* Stores all information about loaded plugins
*/
public interface PluginRegistry extends PluginsAware, ImplementationsAware, ResourcesAware, ClassLoaderAware {
/**
* Add extension point implementations to registry
*
* @param pluginMetadata plugin metadata object
* @param extensionPoint extension point class
* @param implementationClasses a list of implementation classes
*/
void addImplementations(PluginMetadata pluginMetadata, Class extensionPoint, List implementationClasses);
/**
* Adds information about new plugin
*
* @param pluginMetadata plugin metadata object
* @throws PluginException when another plugin provides the same virtual dependency
*/
void addPlugin(PluginMetadata pluginMetadata) throws PluginException;
/**
* Add resources for specific plugin
*
* @param pluginMetadata plugin metadata object
* @param resources plugin resources
*/
void addResources(PluginMetadata pluginMetadata, List resources);
/**
* Adds class loader instance for specific plugin
*
* @param pluginMetadata plugin metadata object
* @param classLoader class loader instance corresponding to current plugin
*/
void addClassLoader(PluginMetadata pluginMetadata, ClassLoader classLoader);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy