package org.agnitas.emm.extension; import java.io.IOException; import org.agnitas.emm.extension.exceptions.DatabaseScriptException; import org.agnitas.emm.extension.exceptions.MissingPluginManifestException; /** * Interface for component to install plugins. * * @author md * */ public interface PluginInstaller { /** * Installs plugin from given ZIP file * * @param filename name of ZIP file * * @return ID of plugin * * @throws IOException on errors install plugin * @throws MissingPluginManifestException on errors with plugin manifest * @throws DatabaseScriptException on errors executing database script */ public String installPlugin( String filename) throws IOException, MissingPluginManifestException, DatabaseScriptException; /** * Uninstalls plugin files. * * @param pluginId ID of plugin to be removed */ public void uninstallPlugin(String pluginId); }