[jboss-cvs] JBossAS SVN: r65119 - trunk/system-jmx/src/main/org/jboss/system/deployers/managed.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 5 15:50:03 EDT 2007
Author: scott.stark at jboss.org
Date: 2007-09-05 15:50:03 -0400 (Wed, 05 Sep 2007)
New Revision: 65119
Modified:
trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java
Log:
JBAS-4672, unwrap the ServiceValueMetaData
Modified: trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java
===================================================================
--- trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java 2007-09-05 19:48:32 UTC (rev 65118)
+++ trunk/system-jmx/src/main/org/jboss/system/deployers/managed/ServiceMetaDataICF.java 2007-09-05 19:50:03 UTC (rev 65119)
@@ -28,12 +28,15 @@
import org.jboss.beans.info.spi.BeanInfo;
import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.logging.Logger;
import org.jboss.managed.api.ManagedProperty;
import org.jboss.managed.spi.factory.InstanceClassFactory;
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.metatype.api.values.MetaValueFactory;
import org.jboss.system.metadata.ServiceAttributeMetaData;
+import org.jboss.system.metadata.ServiceDependencyValueMetaData;
import org.jboss.system.metadata.ServiceMetaData;
+import org.jboss.system.metadata.ServiceTextValueMetaData;
/**
* The InstanceClassFactory implementation for ServiceMetaData.
@@ -44,6 +47,8 @@
public class ServiceMetaDataICF
implements InstanceClassFactory
{
+ private static final Logger log = Logger.getLogger(ServiceMetaDataICF.class);
+
private MBeanServer mbeanServer;
/** The meta value factory */
private MetaValueFactory metaValueFactory = MetaValueFactory.getInstance();
@@ -84,11 +89,24 @@
Object value = null;
for (ServiceAttributeMetaData amd : md.getAttributes())
{
- if (amd.getName().equals(name))
+ // The compare is case-insensitve due to the attribute/javabean case mismatch
+ if (amd.getName().equalsIgnoreCase(name))
{
value = amd.getValue();
}
}
+ // Unwrap the ServiceValueMetaData types
+ if (value instanceof ServiceTextValueMetaData)
+ {
+ ServiceTextValueMetaData text = (ServiceTextValueMetaData) value;
+ value = text.getText();
+ }
+ else if (value instanceof ServiceDependencyValueMetaData)
+ {
+ ServiceDependencyValueMetaData depends = (ServiceDependencyValueMetaData) value;
+ value = depends.getDependency();
+ }
+ // TODO: unwrap other ServiceValueMetaData types
PropertyInfo propertyInfo = beanInfo.getProperty(name);
if (propertyInfo == null)
@@ -97,8 +115,18 @@
+ " for " + instance.getClass().getName());
}
- return metaValueFactory.create(value, propertyInfo.getType());
+ MetaValue mvalue;
+ try
+ {
+ mvalue = metaValueFactory.create(value, propertyInfo.getType());
+ }
+ catch(Exception e)
+ {
+ log.debug("Failed to get property value for bean: "+beanInfo.getName()
+ +", property: "+propertyInfo.getName(), e);
+ mvalue = metaValueFactory.create(null, propertyInfo.getType());
+ }
+ return mvalue;
}
-
}
More information about the jboss-cvs-commits
mailing list