pero 2005/07/16 14:09:21 Modified: catalina/src/share/org/apache/catalina/ant/jmx JMXAccessorTask.java Log: Support JMX OpenTypes as createProperties Revision Changes Path 1.6 +33 -5 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java Index: JMXAccessorTask.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/ant/jmx/JMXAccessorTask.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JMXAccessorTask.java 8 Jul 2005 20:54:40 -0000 1.5 +++ JMXAccessorTask.java 16 Jul 2005 21:09:21 -0000 1.6 @@ -24,6 +24,7 @@ import java.net.UnknownHostException; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.StringTokenizer; @@ -31,7 +32,12 @@ import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; +import javax.management.openmbean.CompositeData; import javax.management.openmbean.CompositeDataSupport; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; +import javax.management.openmbean.TabularDataSupport; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; @@ -105,7 +111,7 @@ /** * Descriptive information describing this implementation. */ - private static final String info = "org.apache.catalina.ant.JMXAccessorTask/1.0"; + private static final String info = "org.apache.catalina.ant.JMXAccessorTask/1.1"; /** * Return descriptive information about this implementation and the @@ -580,12 +586,34 @@ propertyPrefix = ""; if (result instanceof CompositeDataSupport) { CompositeDataSupport data = (CompositeDataSupport) result ; - Set keys = data.getCompositeType().keySet() ; + CompositeType compositeType = data.getCompositeType(); + Set keys = compositeType.keySet() ; for (Iterator iter = keys.iterator(); iter.hasNext();) { String key = (String) iter.next(); Object value = data.get(key); - setProperty(propertyPrefix + "." + key , value); - } + OpenType type = compositeType.getType(key); + if(type instanceof SimpleType ) { + setProperty(propertyPrefix + "." + key , value); + } else { + createProperty(propertyPrefix + "." + key, value ); + } + } + } else if (result instanceof TabularDataSupport) { + TabularDataSupport data = (TabularDataSupport) result ; + for (Iterator iter = data.keySet().iterator(); iter.hasNext();) { + Object key = iter.next(); + for(Iterator iter1 = ((List)key).iterator(); iter1.hasNext();) { + Object key1= iter1.next(); + CompositeData valuedata = data.get(new Object[] { key1 } ); + Object value = valuedata.get("value"); + OpenType type = valuedata.getCompositeType().getType("value"); + if(type instanceof SimpleType ) { + setProperty(propertyPrefix + "." + key1 , value); + } else { + createProperty(propertyPrefix + "." + key1, value ); + } + } + } } else if (result.getClass().isArray()) { if (isSeparatearrayresults()) { Object array[] = (Object[]) result;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]