You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2003/11/06 20:54:39 UTC

cvs commit: incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service GeronimoMBeanInfoXMLLoader.java

dain        2003/11/06 11:54:39

  Modified:    modules/kernel/src/java/org/apache/geronimo/kernel/service
                        GeronimoMBeanInfoXMLLoader.java
  Log:
  Added code to load endpoints.
  
  Revision  Changes    Path
  1.3       +57 -1     incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBeanInfoXMLLoader.java
  
  Index: GeronimoMBeanInfoXMLLoader.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/service/GeronimoMBeanInfoXMLLoader.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GeronimoMBeanInfoXMLLoader.java	24 Oct 2003 22:37:00 -0000	1.2
  +++ GeronimoMBeanInfoXMLLoader.java	6 Nov 2003 19:54:39 -0000	1.3
  @@ -63,6 +63,8 @@
   import javax.xml.parsers.DocumentBuilder;
   import javax.xml.parsers.DocumentBuilderFactory;
   import javax.xml.parsers.ParserConfigurationException;
  +import javax.management.ObjectName;
  +import javax.management.MalformedObjectNameException;
   
   import org.apache.geronimo.kernel.deployment.DeploymentException;
   import org.apache.geronimo.kernel.deployment.service.XMLUtil;
  @@ -126,6 +128,7 @@
           loadAttributes(mbeanElement, mbeanInfo);
           loadOperations(mbeanElement, mbeanInfo);
           loadNotifications(mbeanElement, mbeanInfo);
  +        loadEndpoints(mbeanElement, mbeanInfo);
   
           return mbeanInfo;
       }
  @@ -296,5 +299,58 @@
           }
   
           return notificationInfo;
  +    }
  +
  +    public static void loadEndpoints(Element mbeanElement, GeronimoMBeanInfo mbeanInfo) {
  +        NodeList nl = mbeanElement.getElementsByTagName("endpoint");
  +        for (int i = 0; i < nl.getLength(); i++) {
  +            Element notificationElement = (Element) nl.item(i);
  +            mbeanInfo.addEndpoint(loadEndpoint(notificationElement));
  +        }
  +    }
  +
  +    public static GeronimoMBeanEndpoint loadEndpoint(Element endpointElement) {
  +        GeronimoMBeanEndpoint endpoint = new GeronimoMBeanEndpoint();
  +
  +        endpoint.setName(endpointElement.getAttribute("name"));
  +        endpoint.setName(endpointElement.getAttribute("type"));
  +        endpoint.setDescription(endpointElement.getAttribute("description"));
  +
  +        String targetName = endpointElement.getAttribute("targetName");
  +        if (targetName == null || targetName.length() == 0) {
  +            targetName = "default";
  +        }
  +        endpoint.setTargetName(targetName);
  +
  +        String requriedString = endpointElement.getAttribute("required");
  +        if (requriedString == null || requriedString.length() == 0) {
  +            endpoint.setRequired(false);
  +        } else {
  +            if (requriedString.equalsIgnoreCase("true") || requriedString.equals("1")) {
  +                endpoint.setRequired(true);
  +            } else {
  +                endpoint.setRequired(false);
  +            }
  +        }
  +
  +        String setterName = endpointElement.getAttribute("setterName");
  +        if (setterName != null && setterName.length() > 0) {
  +            endpoint.setSetterName(setterName);
  +        }
  +
  +
  +        NodeList nl = endpointElement.getElementsByTagName("peer");
  +        for (int i = 0; i < nl.getLength(); i++) {
  +            final Element peerElement = (Element) nl.item(i);
  +            final String patternString = peerElement.getAttribute("pattern");
  +            try {
  +                ObjectName pattern = new ObjectName(patternString);
  +                endpoint.addPeer(pattern);
  +            } catch (MalformedObjectNameException e) {
  +                throw new IllegalArgumentException("Invalid object name pattern: pattern" + patternString);
  +            }
  +        }
  +
  +        return endpoint;
       }
   }