1 16 package org.jmanage.webui.actions.app; 17 18 import org.apache.struts.action.ActionForm; 19 import org.apache.struts.action.ActionForward; 20 import org.apache.struts.action.ActionMapping; 21 import org.jmanage.core.data.MBeanData; 22 import org.jmanage.core.services.MBeanService; 23 import org.jmanage.core.services.ServiceFactory; 24 import org.jmanage.webui.actions.BaseAction; 25 import org.jmanage.webui.forms.MBeanQueryForm; 26 import org.jmanage.webui.util.*; 27 28 import javax.servlet.http.HttpServletRequest ; 29 import javax.servlet.http.HttpServletResponse ; 30 import java.util.*; 31 32 37 public class MBeanListAction extends BaseAction { 38 39 public ActionForward execute(WebContext context, 40 ActionMapping mapping, 41 ActionForm actionForm, 42 HttpServletRequest request, 43 HttpServletResponse response) 44 throws Exception { 45 46 MBeanQueryForm queryForm = (MBeanQueryForm)actionForm; 47 final String queryObjectName = queryForm.getObjectName(); 48 MBeanService mbeanService = ServiceFactory.getMBeanService(); 49 List mbeanDataList = mbeanService.queryMBeans(Utils.getServiceContext(context), 50 queryObjectName); 51 52 Map domainToObjectNameListMap = new TreeMap(); 53 ObjectNameTuple tuple = new ObjectNameTuple(); 54 for(Iterator it=mbeanDataList.iterator(); it.hasNext();){ 55 MBeanData mbeanData = (MBeanData)it.next(); 56 tuple.setObjectName(mbeanData.getName()); 57 String domain = tuple.getDomain(); 58 String name = tuple.getName(); 59 Set objectNameList = (Set)domainToObjectNameListMap.get(domain); 60 if(objectNameList == null){ 61 objectNameList = new TreeSet(); 62 domainToObjectNameListMap.put(domain, objectNameList); 63 } 64 objectNameList.add(name); 65 } 66 67 request.setAttribute("domainToObjectNameListMap", domainToObjectNameListMap); 68 69 request.setAttribute(RequestAttributes.NAV_CURRENT_PAGE, "Query"); 70 return mapping.findForward(Forwards.SUCCESS); 71 } 72 73 private static class ObjectNameTuple{ 74 String domain; 75 String name; 76 77 void setObjectName(String canonicalName){ 78 int index = canonicalName.indexOf(":"); 79 domain = canonicalName.substring(0, index); 80 name = canonicalName.substring(index + 1); 81 } 82 83 String getName(){ 84 return name; 85 } 86 String getDomain(){ 87 return domain; 88 } 89 } 90 } 91 | Popular Tags |