package hk.hku.cecid.piazza.corvus.core.main.admin;
import hk.hku.cecid.piazza.commons.Sys;
import hk.hku.cecid.piazza.commons.module.ModuleGroup;
import hk.hku.cecid.piazza.commons.module.SystemModule;
import hk.hku.cecid.piazza.commons.spa.Plugin;
import hk.hku.cecid.piazza.commons.spa.PluginException;
import hk.hku.cecid.piazza.commons.spa.PluginHandler;
/**
* The plugin handler for the Admin Main module plugin
* @author Joel Matsumoto
*
*/
public class AdminMainProcessor implements PluginHandler {
private static ModuleGroup moduleGroup;
public static SystemModule core;
/**
* Housecleaning Scheduler Active Task module id
*/
public static String ACTIVE_MODULE_SCHEDULER = "admin.scheduler";
/**
* Activate the module group from the conf files
*/
public void processActivation(Plugin plugin) throws PluginException {
String descriptor = plugin.getParameters().getProperty("module-group-descriptor");
moduleGroup = new ModuleGroup(descriptor, plugin.getClassLoader());
Sys.getModuleGroup().addChild(moduleGroup);
core = moduleGroup.getSystemModule();
moduleGroup.startActiveModules();
if (core == null) {
throw new PluginException("Admin Main core system module not found");
}
}
/**
* Deactivate the modules for this module group
*/
public void processDeactivation(Plugin plugin) throws PluginException {
moduleGroup.stopActiveModules();
}
public static ModuleGroup getModuleGroup() {
if (moduleGroup == null) {
throw new RuntimeException("Ebms module group not initialized");
}
else {
return moduleGroup;
}
}
}