[Jboss-cvs] JBossAS SVN: r55845 - branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/metadata

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Aug 12 13:26:50 EDT 2006


Author: adrian at jboss.org
Date: 2006-08-12 13:26:48 -0400 (Sat, 12 Aug 2006)
New Revision: 55845

Modified:
   branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaDataParser.java
Log:
[JBAS-1841] - Missing uncommitted code? This SVN stuff is flakey!

Modified: branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaDataParser.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaDataParser.java	2006-08-12 15:46:53 UTC (rev 55844)
+++ branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/metadata/ServiceMetaDataParser.java	2006-08-12 17:26:48 UTC (rev 55845)
@@ -26,6 +26,8 @@
 
 import javax.management.ObjectName;
 
+import org.jboss.dependency.spi.ControllerMode;
+import org.jboss.dependency.spi.ControllerState;
 import org.jboss.deployment.DeploymentException;
 import org.jboss.logging.Logger;
 import org.jboss.util.StringPropertyReplacer;
@@ -55,6 +57,9 @@
    
    /** The element config */
    private Element config;
+
+   /** The mode */
+   private ControllerMode serverMode;
    
    /**
     * Create a new service meta data parser
@@ -78,13 +83,17 @@
    public List<ServiceMetaData> parse() throws DeploymentException
    {
       List<ServiceMetaData> services = new ArrayList<ServiceMetaData>();
-
+      
       try
       {
-         if ("mbean".equals(config.getTagName()))
+         String tagName = config.getTagName();
+         if ("mbean".equals(tagName))
             internalParse(services, config, true);
          else
          {
+            if ("server".equals(tagName))
+               parseServer(config);
+
             NodeList nl = config.getChildNodes();
 
             for (int i = 0; i < nl.getLength(); ++i)
@@ -110,6 +119,23 @@
    }
 
    /**
+    * Parse the server element
+    * 
+    * @param serverElement the server element
+    * @throws Exception for any error
+    */
+   private void parseServer(Element serverElement) throws Exception
+   {
+      String modeString = serverElement.getAttribute("mode");
+      if (modeString != null)
+      {
+         modeString = modeString.trim();
+         if (modeString.length() != 0)
+            serverMode = new ControllerMode(modeString);
+      }
+   }
+
+   /**
     * Internal parse
     * 
     * @param services the list of service meta data
@@ -127,6 +153,11 @@
       
       String code = parseCode(mbeanName, mbeanElement);
       service.setCode(code);
+      
+      ControllerMode mode = parseMode(mbeanName, mbeanElement);
+      if (mode == null)
+         mode = serverMode;
+      service.setMode(mode);
 
       ServiceConstructorMetaData constructor = parseConstructor(mbeanName, mbeanElement, replace);
       service.setConstructor(constructor);
@@ -195,7 +226,25 @@
                      Node n = nl.item(i);
                      if (n.getNodeType() == Node.ELEMENT_NODE)
                      {
-                        value = new ServiceElementValueMetaData((Element) n);
+                        Element el = (Element) n;
+                        String tagName = el.getTagName();
+                        if ("inject".equals(tagName))
+                        {
+                           String dependency = el.getAttribute("bean");
+                           String property = null;
+                           Attr attr = el.getAttributeNode("property");
+                           if (attr != null)
+                              property = attr.getValue();
+                           ControllerState requiredState = ControllerState.INSTALLED;
+                           attr = el.getAttributeNode("state");
+                           if (attr != null)
+                              requiredState = new ControllerState(attr.getValue());
+                           value = new ServiceInjectionValueMetaData(dependency, property, requiredState);
+                        }
+                        else
+                        {
+                           value = new ServiceElementValueMetaData((Element) n);
+                        }
                         break;
                      }
                   }
@@ -325,6 +374,25 @@
    }
 
    /**
+    * Parse the mode
+    * 
+    * @param name the mbean name
+    * @param mbeanElement the element to parse name from.
+    * @return the mode
+    * @throws Exception for any error
+    */
+   private ControllerMode parseMode(final ObjectName name, final Element mbeanElement) throws Exception
+   {
+      String modeString = mbeanElement.getAttribute("mode");
+      if (modeString == null)
+         return null;
+      modeString = modeString.trim();
+      if (modeString.length() == 0)
+         return null;
+      return new ControllerMode(modeString);
+   }
+
+   /**
     * Parse the constructor element of the given element
     * 
     * @param name the mbean name




More information about the jboss-cvs-commits mailing list