package org.agnitas.emm.extension;
import org.agnitas.emm.extension.exceptions.ExtensionException;
import org.java.plugin.registry.Extension;
import org.springframework.context.ApplicationContext;
/**
* Interface for new features. Features are used to add complete new functionality are invoked
* by the ExtensionServlet. Feature are normally accessed by GET or POST requests.
*
* @author md
*/
public interface EmmFeatureExtension {
// TODO: ApplicationContext is used as parameter here, that not good. Quick hack for PoC only!!!
/**
* Entry point for EMM features.
*
* @param pluginContext PluginContext
* @param extension the Extension instance for the feature
* @param context Application context from Spring to access EMM's DAOs and services
*
* @throws ExtensionException on errors
*/
public void invoke( PluginContext pluginContext, Extension extension, ApplicationContext context) throws ExtensionException;
public void setup( PluginContext pluginContext, Extension extension, ApplicationContext context) throws ExtensionException;
}