Package org.jboss.test.messaging.tools.jboss

Source Code of org.jboss.test.messaging.tools.jboss.ServiceDeploymentDescriptor

/**
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.test.messaging.tools.jboss;

import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

import javax.management.ObjectName;

import org.jboss.jms.util.XMLUtil;
import org.jboss.logging.Logger;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

/**
* The convenience object model of a JBoss service deployment descriptor (<server>).
*
* @author <a href="mailto:ovidiu@jboss.org">Ovidiu Feodorov</a>
* @version <tt>$Revision: 2035 $</tt>
*
* $Id: ServiceDeploymentDescriptor.java 2035 2007-01-24 18:25:23Z ovidiu.feodorov@jboss.com $
*/
public class ServiceDeploymentDescriptor
{
   // Constants ------------------------------------------------------------------------------------

   private static final Logger log = Logger.getLogger(ServiceDeploymentDescriptor.class);

   // Static ---------------------------------------------------------------------------------------
  
   // Attributes -----------------------------------------------------------------------------------

   // List<Element> contains the top level elements from under <server>
   private List elements;

   // Constructors ---------------------------------------------------------------------------------

   public ServiceDeploymentDescriptor(String config) throws Exception
   {
      this(XMLUtil.stringToElement(config));
   }

   public ServiceDeploymentDescriptor(URL descriptorURL) throws Exception
   {
      this(XMLUtil.urlToElement(descriptorURL));
   }

   public ServiceDeploymentDescriptor(Element service) throws Exception
   {
      elements = new ArrayList();
      NodeList l = service.getChildNodes();
      for(int i = 0; i < l.getLength(); i++)
      {
         elements.add(l.item(i));
      }
   }

   // Public ---------------------------------------------------------------------------------------

   /**
    * Scans the list of ObjectNames present in this service configuration and returns a list
    * of MBeanConfigurationElements that match the criteria or an empty list.
    *
    * @return List<MBeanConfigurationElement>
    */
   public List query(String objectNameKey, String objectNameValue)
   {
      List result = null;
      for(Iterator i = elements.iterator(); i.hasNext(); )
      {
         Node n = (Node)i.next();
         if (n.getNodeName().equals("mbean"))
         {
            try
            {
               NamedNodeMap attrs = n.getAttributes();
               Node name = attrs.getNamedItem("name");
               ObjectName on = new ObjectName(name.getNodeValue());
               String s = on.getKeyProperty(objectNameKey);
               if (objectNameValue.equals(s))
               {
                  if (result == null)
                  {
                     result = new ArrayList();
                  }
                  result.add(new MBeanConfigurationElement(n));
               }
            }
            catch(Exception e)
            {
               log.error("failed to create MBeanConfigurationElement", e);
            }
         }
      }

      if (result == null)
      {
         return Collections.EMPTY_LIST;
      }

      return result;
   }

   // Package protected ----------------------------------------------------------------------------
  
   // Protected ------------------------------------------------------------------------------------
  
   // Private --------------------------------------------------------------------------------------

   // Inner classes --------------------------------------------------------------------------------
}
TOP

Related Classes of org.jboss.test.messaging.tools.jboss.ServiceDeploymentDescriptor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.