All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.meridor.stecker.PluginRegistry Maven / Gradle / Ivy

Go to download

This is a plugin loading library. Its main purpose is to load extension point implementations from provided plugins.

There is a newer version: 1.0.2
Show newest version
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