From 09484dd10bba52e2bc2c7bc2ce742e4a8e58a8be Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 10 Mar 2016 08:40:41 +0000
Subject: [PATCH] Added MonitorData class to simplify writing monitored objects

---
 opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java |   48 +++++-------------------------------------------
 1 files changed, 5 insertions(+), 43 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
index e94cbd9..4450df7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/config/JMXMBean.java
@@ -42,6 +42,7 @@
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.AlertGenerator;
 import org.opends.server.api.ClientConnection;
@@ -54,7 +55,6 @@
 import org.opends.server.protocols.internal.SearchRequest;
 import org.opends.server.protocols.jmx.Credential;
 import org.opends.server.protocols.jmx.JmxClientConnection;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InvokableMethod;
@@ -413,8 +413,7 @@
               stringValues.add(value.toString());
             }
 
-            String[] valueArray = new String[stringValues.size()];
-            stringValues.toArray(valueArray);
+            String[] valueArray = stringValues.toArray(new String[stringValues.size()]);
             return new Attribute(name, valueArray);
           }
           else
@@ -568,47 +567,10 @@
       {
         logger.traceException(e);
       }
-
-      // It's possible that this is a monitor attribute rather than a
-      // configurable one. Check all of those.
-      AttributeType attrType = DirectoryServer.getAttributeType(name);
-
-monitorLoop:
-      for (MonitorProvider<? extends MonitorProviderCfg> monitor :
-           monitorProviders)
+      Attribute attr = getJmxAttribute(name);
+      if (attr != null)
       {
-        for (org.opends.server.types.Attribute a : monitor.getMonitorData())
-        {
-          if (attrType.equals(a.getAttributeDescription().getAttributeType()))
-          {
-            if (a.isEmpty())
-            {
-              continue;
-            }
-
-            Iterator<ByteString> iterator = a.iterator();
-            ByteString value = iterator.next();
-
-            if (iterator.hasNext())
-            {
-              List<String> stringValues = newArrayList(value.toString());
-              while (iterator.hasNext())
-              {
-                value = iterator.next();
-                stringValues.add(value.toString());
-              }
-
-              String[] valueArray = new String[stringValues.size()];
-              stringValues.toArray(valueArray);
-              attrList.add(new Attribute(name, valueArray));
-            }
-            else
-            {
-              attrList.add(new Attribute(name, value.toString()));
-            }
-            break monitorLoop;
-          }
-        }
+        attrList.add(attr);
       }
     }
 

--
Gitblit v1.10.0