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/monitors/ClientConnectionMonitorProvider.java | 45 ++++++++++++++++++---------------------------
1 files changed, 18 insertions(+), 27 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/monitors/ClientConnectionMonitorProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/monitors/ClientConnectionMonitorProvider.java
index 08a1506..c826099 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/monitors/ClientConnectionMonitorProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/monitors/ClientConnectionMonitorProvider.java
@@ -12,21 +12,21 @@
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2006-2010 Sun Microsystems, Inc.
- * Portions Copyright 2014-2015 ForgeRock AS.
+ * Portions Copyright 2014-2016 ForgeRock AS.
*/
package org.opends.server.monitors;
-import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.TreeMap;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.std.server.ClientConnectionMonitorProviderCfg;
import org.opends.server.api.ClientConnection;
import org.opends.server.api.ConnectionHandler;
+import org.opends.server.api.MonitorData;
import org.opends.server.api.MonitorProvider;
import org.opends.server.core.DirectoryServer;
-import org.opends.server.types.Attribute;
-import org.opends.server.types.AttributeBuilder;
import org.opends.server.types.InitializationException;
/**
@@ -105,24 +105,20 @@
}
}
-
-
- /**
- * Retrieves a set of attributes containing monitor data that should
- * be returned to the client if the corresponding monitor entry is
- * requested.
- *
- * @return A set of attributes containing monitor data that should be
- * returned to the client if the corresponding monitor entry
- * is requested.
- */
@Override
- public List<Attribute> getMonitorData()
+ public MonitorData getMonitorData()
{
// Re-order the connections by connection ID.
TreeMap<Long, ClientConnection> connMap = new TreeMap<>();
- if (handler == null)
+ if (handler != null)
+ {
+ for (ClientConnection conn : handler.getClientConnections())
+ {
+ connMap.put(conn.getConnectionID(), conn);
+ }
+ }
+ else
{
// Get information about all the available connections.
for (ConnectionHandler<?> hdl : DirectoryServer.getConnectionHandlers())
@@ -134,19 +130,14 @@
}
}
}
- else
- {
- for (ClientConnection conn : handler.getClientConnections())
- {
- connMap.put(conn.getConnectionID(), conn);
- }
- }
- AttributeBuilder builder = new AttributeBuilder("connection");
+ Collection<String> connectionSummaries = new ArrayList<>(connMap.values().size());
for (ClientConnection conn : connMap.values())
{
- builder.add(conn.getMonitorSummary());
+ connectionSummaries.add(conn.getMonitorSummary());
}
- return builder.toAttributeList();
+ MonitorData result = new MonitorData(1);
+ result.add("connection", connectionSummaries);
+ return result;
}
}
--
Gitblit v1.10.0