[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