public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws PortletException, IOException {
String action = actionRequest.getParameter("action");
actionResponse.setRenderParameter("message", ""); // set to blank first
try {
ConfigurationManager configurationManager = ConfigurationUtil.getConfigurationManager(kernel);
String config = getConfigID(actionRequest);
Artifact configId = Artifact.create(config);
if (START_ACTION.equals(action)) {
if(!configurationManager.isLoaded(configId)) {
configurationManager.loadConfiguration(configId);
}
if(!configurationManager.isRunning(configId)) {
configurationManager.startConfiguration(configId);
messageStatus = "Started application<br /><br />";
}
} else if (STOP_ACTION.equals(action)) {
if(configurationManager.isRunning(configId)) {
configurationManager.stopConfiguration(configId);
}
if(configurationManager.isLoaded(configId)) {
configurationManager.unloadConfiguration(configId);
messageStatus = "Stopped application<br /><br />";
}
} else if (UNINSTALL_ACTION.equals(action)) {
configurationManager.uninstallConfiguration(configId);
messageStatus = "Uninstalled application<br /><br />";
} else {
messageStatus = "Invalid value for changeState: " + action + "<br /><br />";
throw new PortletException("Invalid value for changeState: " + action);
}