You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2013/10/15 18:44:54 UTC
svn commit: r1532424 -
/sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
Author: cziegeler
Date: Tue Oct 15 16:44:53 2013
New Revision: 1532424
URL: http://svn.apache.org/r1532424
Log:
SLING-3176 : ValueMap of jmx resource should contain mbean attributes
Modified:
sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
Modified: sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java?rev=1532424&r1=1532423&r2=1532424&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java (original)
+++ sling/trunk/contrib/extensions/jmxprovider/src/main/java/org/apache/sling/jmx/provider/impl/MBeanResource.java Tue Oct 15 16:44:53 2013
@@ -19,8 +19,11 @@
package org.apache.sling.jmx.provider.impl;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
+import javax.management.Attribute;
+import javax.management.AttributeList;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanAttributeInfo;
@@ -128,22 +131,33 @@ public class MBeanResource extends Abstr
result.put(Constants.PROP_OBJECTNAME, this.objectName.getCanonicalName());
final MBeanAttributeInfo[] attribs = this.info.getAttributes();
+ final String[] names = new String[attribs.length];
+ int index = 0;
for(final MBeanAttributeInfo i : attribs) {
- Object value = null;
- try {
- value = this.mbeanServer.getAttribute(this.objectName, i.getName());
- if ( value != null ) {
- result.put(i.getName(), value);
+ names[index] = i.getName();
+ index++;
+ }
+ AttributeList values = null;
+ try {
+ values = this.mbeanServer.getAttributes(this.objectName, names);
+ if ( values != null ) {
+ final Iterator iter = values.iterator();
+ while ( iter.hasNext() ) {
+ final Attribute a = (Attribute)iter.next();
+ final Object value = a.getValue();
+ if ( value != null ) {
+ result.put(a.getName(), value);
+ }
}
- } catch (final AttributeNotFoundException e) {
- // ignore
- } catch (final InstanceNotFoundException e) {
- // ignore
- } catch (final MBeanException e) {
- // ignore
- } catch (final ReflectionException e) {
- // ignore
}
+ } catch (final AttributeNotFoundException e) {
+ // ignore
+ } catch (final InstanceNotFoundException e) {
+ // ignore
+ } catch (final MBeanException e) {
+ // ignore
+ } catch (final ReflectionException e) {
+ // ignore
}
return result;