1 22 package org.jboss.system.filterfactory; 23 24 import javax.management.NotificationFilter ; 25 import javax.management.ObjectName ; 26 import javax.management.relation.MBeanServerNotificationFilter ; 27 28 import org.jboss.system.NotificationFilterFactory; 29 import org.w3c.dom.Element ; 30 import org.w3c.dom.Node ; 31 import org.w3c.dom.NodeList ; 32 33 63 public class MBeanServerNotificationFilterFactory 64 implements NotificationFilterFactory 65 { 66 68 69 public static final String ENABLE_ELEMENT = "enable"; 70 public static final String ENABLE_TYPE_ATTRIBUTE = "type"; 71 public static final String ENABLE_OBJECTNAME_ATTRIBUTE = "object-name"; 72 73 76 public MBeanServerNotificationFilterFactory() 77 { 78 } 80 81 84 public NotificationFilter createNotificationFilter(Element filterConfig) 85 throws Exception 86 { 87 MBeanServerNotificationFilter filter = new MBeanServerNotificationFilter (); 89 90 NodeList filterChildren = filterConfig.getChildNodes(); 93 94 for (int i = 0; i < filterChildren.getLength(); i++) 95 { 96 Node filterChildNode = filterChildren.item(i); 97 98 if (filterChildNode.getNodeName().equals(ENABLE_ELEMENT)) 100 { 101 if (((Element )filterChildNode).hasAttribute(ENABLE_TYPE_ATTRIBUTE)) 103 { 104 String type = ((Element )filterChildNode).getAttribute(ENABLE_TYPE_ATTRIBUTE); 105 filter.enableType(type); 107 } 108 else if (((Element )filterChildNode).hasAttribute(ENABLE_OBJECTNAME_ATTRIBUTE)) 109 { 110 String objectName = ((Element )filterChildNode).getAttribute(ENABLE_OBJECTNAME_ATTRIBUTE); 111 filter.enableObjectName(new ObjectName (objectName)); 114 } 115 else 116 { 117 throw new Exception ("'" + ENABLE_ELEMENT + "' element must have a '" 118 + ENABLE_TYPE_ATTRIBUTE + "' or a '" + ENABLE_OBJECTNAME_ATTRIBUTE + "' attribute"); 119 } 120 } 121 } 122 return filter; 124 } 125 } 126 | Popular Tags |