
io.graceland.application.Application Maven / Gradle / Ivy
package io.graceland.application;
import com.google.common.collect.ImmutableList;
import io.graceland.plugin.Plugin;
/**
* An application defines what plugins will be loaded into the {@link io.graceland.Platform}.
*
* It is the user-defined portion of the framework, determining what features, modules, plugins, resources, etc. are
* loaded and used in this service.
*/
public interface Application {
/**
* Adds the plugin to the list of plugins that will be loaded.
*
* @param plugin The plugin to load.
*/
void loadPlugin(Plugin plugin);
/**
* Provides a list of loaded plugins for this application. Once requested, the list of plugins should not change.
*
* At least one plugin must be loaded.
*
* @return A list of plugins.
*/
ImmutableList getPlugins();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy