1 16 package org.jmanage.webui.actions.config; 17 18 import org.jmanage.webui.actions.BaseAction; 19 import org.jmanage.webui.util.*; 20 import org.jmanage.webui.forms.AlertForm; 21 import org.jmanage.core.services.MBeanService; 22 import org.jmanage.core.services.ServiceFactory; 23 import org.jmanage.core.config.AlertConfig; 24 import org.jmanage.core.config.ApplicationConfig; 25 import org.jmanage.core.config.ApplicationConfigManager; 26 import org.jmanage.core.config.AlertSourceConfig; 27 import org.jmanage.core.alert.AlertEngine; 28 import org.jmanage.core.util.Expression; 29 import org.jmanage.core.util.CoreUtils; 30 import org.apache.struts.action.ActionForward; 31 import org.apache.struts.action.ActionMapping; 32 import org.apache.struts.action.ActionForm; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 37 41 public class AddAlertAction extends BaseAction{ 42 51 public ActionForward execute(WebContext context, 52 ActionMapping mapping, 53 ActionForm actionForm, 54 HttpServletRequest request, 55 HttpServletResponse response) 56 throws Exception { 57 AlertForm form = (AlertForm)actionForm; 58 ApplicationConfig appConfig = context.getApplicationConfig(); 59 AlertConfig alertConfig = null; 60 String alertId = request.getParameter(RequestParams.ALERT_ID); 61 if(alertId==null || alertId.equals("")){ 62 alertConfig = new AlertConfig(AlertConfig.getNextAlertId(), 63 form.getAlertName(), 64 form.getAlertDelivery(), 65 form.getEmailAddress()); 66 alertConfig.setAlertSourceConfig(getAlertSourceConfig(context,form)); 67 appConfig.addAlert(alertConfig); 68 }else{ 69 alertConfig = appConfig.findAlertById(form.getAlertId()); 70 alertConfig.setAlertName(form.getAlertName()); 71 alertConfig.setAlertDelivery(form.getAlertDelivery()); 72 if(form.getEmailAddress()!=null){ 73 alertConfig.setEmailAddress(form.getEmailAddress()); 74 } 75 alertConfig.setAlertSourceConfig(getAlertSourceConfig(context,form)); 76 } 77 ApplicationConfigManager.updateApplication(appConfig); 78 79 80 AlertEngine.getInstance().updateAlertConfig(alertConfig); 81 82 return mapping.findForward(Forwards.SUCCESS); 83 } 84 85 private AlertSourceConfig getAlertSourceConfig(WebContext context, 86 AlertForm form){ 87 AlertSourceConfig sourceConfig = null; 88 Expression expression = new Expression(form.getExpression()); 89 if(AlertSourceConfig.SOURCE_TYPE_NOTIFICATION.equals( 90 form.getAlertSourceType())){ 91 sourceConfig = new AlertSourceConfig(expression.getMBeanName(), 92 expression.getTargetName()); 93 }else if(AlertSourceConfig.SOURCE_TYPE_GAUGE_MONITOR.equals( 94 form.getAlertSourceType())){ 95 MBeanService mbeanService = ServiceFactory.getMBeanService(); 96 String attributeDataType = mbeanService.getAttributeDataType( 97 Utils.getServiceContext(context),expression.getTargetName(), 98 expression.getMBeanName()); 99 sourceConfig = new AlertSourceConfig(expression.getMBeanName(), 100 expression.getTargetName(), 101 CoreUtils.valueOf(form.getMinAttributeValue(),attributeDataType), 102 CoreUtils.valueOf(form.getMaxAttributeValue(),attributeDataType), 103 attributeDataType); 104 }else if(AlertSourceConfig.SOURCE_TYPE_STRING_MONITOR.equals( 105 form.getAlertSourceType())){ 106 sourceConfig = new AlertSourceConfig(expression.getMBeanName(), 107 expression.getTargetName(), form.getStringAttributeValue()); 108 109 }else { 110 assert false: "not supported type"; 111 } 112 sourceConfig.setApplicationConfig(context.getApplicationConfig()); 113 return sourceConfig; 114 } 115 116 117 } 118 | Popular Tags |