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;