return getSystemPropertyValue(externalName.substring(SYSTEM_PROPERTY_NAME_PREFIX.length()));
}
else
{
AttrDescriptor descr = getDescriptor(externalName);
ConfigBean bean = getConfigBean(externalName);
Object value = null;
if(descr.isElement())
{
//it looks that now we have no Elements with values
//value = descr.getNode().getContent();
wrapAndThrowMBeanException(null, "getattribute_not_implemented_for_xml", externalName);
}
else
{
if(ai.getType().startsWith("[")) //array
{
value = invokeMethodOnBean(bean, descr, "getValues");
}
else
{
try {
value = bean.getAttributeValue(descr.getAttributeName());
} catch (IllegalArgumentException e) {
// Not actually attribute but an element,
// use getValue() to get the String attribute
value = invokeMethodOnBean(bean, descr, "getValue");
}