From 9748e704763be89c57cad0a65fe74dce65fbcf84 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 07 Nov 2014 10:44:24 +0000
Subject: [PATCH] Code cleanup for the tools
---
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java | 6
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ConnectionHandlersMonitoringTableModel.java | 144 ++---
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/JavaInformationMonitoringPanel.java | 46 -
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/DBEnvironmentMonitoringTableModel.java | 198 +------
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java | 21
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/EntryCachesMonitoringPanel.java | 31
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/MonitoringTableModel.java | 271 ++--------
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java | 97 --
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java | 203 ++++++-
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java | 114 +--
opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java | 400 +++++----------
11 files changed, 568 insertions(+), 963 deletions(-)
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ConnectionHandlersMonitoringTableModel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ConnectionHandlersMonitoringTableModel.java
index ecaddad..04eab50 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ConnectionHandlersMonitoringTableModel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ConnectionHandlersMonitoringTableModel.java
@@ -26,21 +26,20 @@
*/
package org.opends.guitools.controlpanel.datamodel;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
-import org.opends.guitools.controlpanel.datamodel.ConnectionHandlerDescriptor.
-Protocol;
import org.forgerock.i18n.LocalizableMessage;
+import org.opends.guitools.controlpanel.datamodel.ConnectionHandlerDescriptor.Protocol;
+
+import static org.opends.guitools.controlpanel.util.Utilities.*;
+import static org.opends.messages.AdminToolMessages.*;
/**
* The table model used to display the monitoring information of connection
* handlers.
- *
*/
public class ConnectionHandlersMonitoringTableModel extends
MonitoringTableModel<ConnectionHandlerDescriptor,
@@ -48,9 +47,8 @@
{
private static final long serialVersionUID = -8891998773191495L;
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
protected Set<AddressConnectionHandlerDescriptor> convertToInternalData(
Set<ConnectionHandlerDescriptor> newData)
{
@@ -75,22 +73,18 @@
return newAddresses;
}
-
-
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int compare(AddressConnectionHandlerDescriptor desc1,
AddressConnectionHandlerDescriptor desc2)
{
- int result;
ArrayList<Integer> possibleResults = new ArrayList<Integer>();
possibleResults.add(compareNames(desc1, desc2));
possibleResults.addAll(getMonitoringPossibleResults(
desc1.getMonitoringEntry(), desc2.getMonitoringEntry()));
- result = possibleResults.get(getSortColumn());
+ int result = possibleResults.get(getSortColumn());
if (result == 0)
{
for (int i : possibleResults)
@@ -112,58 +106,56 @@
private int compareNames(AddressConnectionHandlerDescriptor ach1,
AddressConnectionHandlerDescriptor ach2)
{
- int compare = 0;
- boolean addressEqual = false;
- if (ach1.getAddress() == null)
+ if (equal(ach1.getAddress(), ach2.getAddress()))
{
- if (ach2.getAddress() == null)
- {
- addressEqual = true;
- }
+ Integer port1 = Integer.valueOf(ach1.getConnectionHandler().getPort());
+ Integer port2 = Integer.valueOf(ach2.getConnectionHandler().getPort());
+ return port1.compareTo(port2);
}
- else if (ach2.getAddress() != null)
- {
- addressEqual = ach1.getAddress().equals(ach2.getAddress());
- }
- if (addressEqual)
- {
- Integer port1 = new Integer(ach1.getConnectionHandler().getPort());
- Integer port2 = new Integer(ach2.getConnectionHandler().getPort());
- compare = port1.compareTo(port2);
- }
- else
- {
- compare = getName(ach1).compareTo(getName(ach2));
- }
- return compare;
+ return getName(ach1).compareTo(getName(ach2));
}
/**
- * {@inheritDoc}
+ * Returns whether two addresses are equal.
+ *
+ * @param address1
+ * the first address
+ * @param address2
+ * the second address
+ * @return true if both are equal, false otherwise
*/
+ static boolean equal(InetAddress address1, InetAddress address2)
+ {
+ if (address1 != null)
+ {
+ return address1.equals(address2);
+ }
+ return address2 == null;
+ }
+
+ /** {@inheritDoc} */
+ @Override
protected CustomSearchResult getMonitoringEntry(
AddressConnectionHandlerDescriptor ach)
{
return ach.getMonitoringEntry();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
protected String getName(AddressConnectionHandlerDescriptor ach)
{
StringBuilder sb = new StringBuilder();
ConnectionHandlerDescriptor ch = ach.getConnectionHandler();
if (ch.getProtocol() == Protocol.ADMINISTRATION_CONNECTOR)
{
- sb.append(INFO_CTRL_PANEL_ADMINISTRATION_CONNECTOR_NAME.get(
- ch.getPort()));
+ sb.append(INFO_CTRL_PANEL_ADMINISTRATION_CONNECTOR_NAME.get(ch.getPort()));
}
else
{
if (ach.getAddress() != null)
{
- sb.append(ach.getAddress().getHostAddress()+":"+ch.getPort());
+ sb.append(ach.getAddress().getHostAddress()).append(":").append(ch.getPort());
}
else
{
@@ -186,35 +178,26 @@
private CustomSearchResult getMonitoringEntry(InetAddress address,
ConnectionHandlerDescriptor cch)
{
- CustomSearchResult monitoringEntry = null;
for (CustomSearchResult sr : cch.getMonitoringEntries())
{
- String cn = (String)getFirstMonitoringValue(sr, "cn");
+ String cn = getFirstValueAsString(sr, "cn");
if (cn != null)
{
if (address == null)
{
- monitoringEntry = sr;
- break;
+ return sr;
}
- else
+ if (cn.endsWith(" " + address.getHostAddress() + " port " + cch.getPort() + " Statistics"))
{
- if (cn.endsWith(
- " "+address.getHostAddress()+" port "+cch.getPort()+
- " Statistics"))
- {
- monitoringEntry = sr;
- break;
- }
+ return sr;
}
}
}
- return monitoringEntry;
+ return null;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
protected LocalizableMessage getNameHeader()
{
return INFO_CTRL_PANEL_CONNECTION_HANDLER_HEADER.get();
@@ -285,48 +268,27 @@
return monitoringEntry;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int hashCode()
{
return hashCode;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public boolean equals(Object o)
{
- boolean equals = false;
if (o != this)
{
- if (o instanceof AddressConnectionHandlerDescriptor)
- {
- AddressConnectionHandlerDescriptor ach =
- (AddressConnectionHandlerDescriptor)o;
- if (ach.getAddress() == null)
- {
- equals = getAddress() == null;
- }
- else if (getAddress() == null)
- {
- equals = false;
- }
- else
- {
- equals = ach.getAddress().equals(getAddress());
- }
- if (equals)
- {
- equals = ach.getConnectionHandler().equals(getConnectionHandler());
- }
- }
+ return true;
}
- else
+ if (!(o instanceof AddressConnectionHandlerDescriptor))
{
- equals = true;
+ return false;
}
- return equals;
+ AddressConnectionHandlerDescriptor ach = (AddressConnectionHandlerDescriptor) o;
+ return ConnectionHandlersMonitoringTableModel.equal(getAddress(), ach.getAddress())
+ && ach.getConnectionHandler().equals(getConnectionHandler());
}
}
\ No newline at end of file
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
index 8834ec3..305d164 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
@@ -69,6 +69,7 @@
import static com.forgerock.opendj.util.OperatingSystem.*;
import static org.opends.admin.ads.util.ConnectionUtils.*;
+import static org.opends.guitools.controlpanel.util.Utilities.*;
/**
* This is the classes that is shared among all the different places in the
@@ -343,16 +344,7 @@
{
if (userDataCtx != null)
{
- if (connectionPool.isConnectionRegistered(userDataCtx))
- {
- try
- {
- connectionPool.unregisterConnection(userDataCtx);
- }
- catch (Throwable t)
- {
- }
- }
+ unregisterConnection(connectionPool, ctx);
}
this.userDataCtx = ctx;
if (ctx != null)
@@ -500,22 +492,7 @@
}
ConfigReader reader;
- ServerDescriptor.ServerStatus status = null;
- for (Task task : getTasks())
- {
- if ((task.getType() == Task.Type.START_SERVER) &&
- (task.getState() == Task.State.RUNNING) &&
- isRunningOnServer(desc, task))
- {
- status = ServerDescriptor.ServerStatus.STARTING;
- }
- else if ((task.getType() == Task.Type.STOP_SERVER) &&
- (task.getState() == Task.State.RUNNING) &&
- isRunningOnServer(desc, task))
- {
- status = ServerDescriptor.ServerStatus.STOPPING;
- }
- }
+ ServerDescriptor.ServerStatus status = getStatus(desc);
if (status != null)
{
desc.setStatus(status);
@@ -525,16 +502,7 @@
this.ctx = null;
if (userDataCtx != null)
{
- if (connectionPool.isConnectionRegistered(userDataCtx))
- {
- try
- {
- connectionPool.unregisterConnection(userDataCtx);
- }
- catch (Throwable t)
- {
- }
- }
+ unregisterConnection(connectionPool, ctx);
StaticUtils.close(userDataCtx);
userDataCtx = null;
}
@@ -616,35 +584,13 @@
}
else
{
- desc.setStatus(
- ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE);
+ desc.setStatus(ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE);
reader = null;
}
- try
- {
- ctx.close();
- }
- catch (Throwable t)
- {
- }
+ StaticUtils.close(ctx);
this.ctx = null;
- if (connectionPool.isConnectionRegistered(userDataCtx))
- {
- try
- {
- connectionPool.unregisterConnection(userDataCtx);
- }
- catch (Throwable t)
- {
- }
- }
- try
- {
- userDataCtx.close();
- }
- catch (Throwable t)
- {
- }
+ unregisterConnection(connectionPool, ctx);
+ StaticUtils.close(userDataCtx);
userDataCtx = null;
}
}
@@ -663,16 +609,13 @@
desc.setJvmMemoryUsageMonitor(rCtx.getJvmMemoryUsage());
desc.setSystemInformationMonitor(rCtx.getSystemInformation());
desc.setWorkQueueMonitor(rCtx.getWorkQueue());
- desc.setOpenDSVersion((String)Utilities.getFirstMonitoringValue(
- rCtx.getVersionMonitor(), "fullVersion"));
- String installPath = (String)Utilities.getFirstMonitoringValue(
- rCtx.getSystemInformation(), "installPath");
+ desc.setOpenDSVersion(getFirstValueAsString(rCtx.getVersionMonitor(), "fullVersion"));
+ String installPath = getFirstValueAsString(rCtx.getSystemInformation(), "installPath");
if (installPath != null)
{
desc.setInstallPath(installPath);
}
- String instancePath = (String)Utilities.getFirstMonitoringValue(
- rCtx.getSystemInformation(), "instancePath");
+ String instancePath = getFirstValueAsString(rCtx.getSystemInformation(), "instancePath");
if (instancePath != null)
{
desc.setInstancePath(instancePath);
@@ -712,6 +655,41 @@
}
}
+ private ServerDescriptor.ServerStatus getStatus(ServerDescriptor desc)
+ {
+ ServerDescriptor.ServerStatus status = null;
+ for (Task task : getTasks())
+ {
+ if ((task.getType() == Task.Type.START_SERVER) &&
+ (task.getState() == Task.State.RUNNING) &&
+ isRunningOnServer(desc, task))
+ {
+ status = ServerDescriptor.ServerStatus.STARTING;
+ }
+ else if ((task.getType() == Task.Type.STOP_SERVER) &&
+ (task.getState() == Task.State.RUNNING) &&
+ isRunningOnServer(desc, task))
+ {
+ status = ServerDescriptor.ServerStatus.STOPPING;
+ }
+ }
+ return status;
+ }
+
+ private void unregisterConnection(LDAPConnectionPool connectionPool, InitialLdapContext userDataCtx)
+ {
+ if (connectionPool.isConnectionRegistered(userDataCtx))
+ {
+ try
+ {
+ connectionPool.unregisterConnection(userDataCtx);
+ }
+ catch (Throwable t)
+ {
+ }
+ }
+ }
+
/**
* Adds a configuration change listener.
* @param listener the listener.
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/DBEnvironmentMonitoringTableModel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/DBEnvironmentMonitoringTableModel.java
index 0847f58..677f82d 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/DBEnvironmentMonitoringTableModel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/DBEnvironmentMonitoringTableModel.java
@@ -26,8 +26,6 @@
*/
package org.opends.guitools.controlpanel.datamodel;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
@@ -36,9 +34,11 @@
import java.util.Set;
import java.util.TreeSet;
-import org.opends.guitools.controlpanel.util.Utilities;
import org.forgerock.i18n.LocalizableMessage;
+import static org.opends.guitools.controlpanel.util.Utilities.*;
+import static org.opends.messages.AdminToolMessages.*;
+
/**
* The abstract table model used to display all the network groups.
*/
@@ -48,25 +48,17 @@
private static final long serialVersionUID = 548035716525600536L;
private Set<BackendDescriptor> data = new HashSet<BackendDescriptor>();
private ArrayList<String[]> dataArray = new ArrayList<String[]>();
- private ArrayList<BackendDescriptor> dataSourceArray =
- new ArrayList<BackendDescriptor>();
+ private ArrayList<BackendDescriptor> dataSourceArray = new ArrayList<BackendDescriptor>();
private String[] columnNames = {};
private LocalizableMessage NO_VALUE_SET = INFO_CTRL_PANEL_NO_MONITORING_VALUE.get();
private LocalizableMessage NOT_IMPLEMENTED = INFO_CTRL_PANEL_NOT_IMPLEMENTED.get();
-
- /**
- * The operations to be displayed.
- */
+ /** The operations to be displayed. */
private LinkedHashSet<String> attributes = new LinkedHashSet<String>();
- /**
- * The sort column of the table.
- */
- private int sortColumn = 0;
- /**
- * Whether the sorting is ascending or descending.
- */
+ /** The sort column of the table. */
+ private int sortColumn;
+ /** Whether the sorting is ascending or descending. */
private boolean sortAscending = true;
/**
@@ -88,6 +80,7 @@
* Updates the table model contents and sorts its contents depending on the
* sort options set by the user.
*/
+ @Override
public void forceResort()
{
updateDataArray();
@@ -105,154 +98,45 @@
fireTableDataChanged();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int getColumnCount()
{
return columnNames.length;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int getRowCount()
{
return dataArray.size();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public Object getValueAt(int row, int col)
{
return dataArray.get(row)[col];
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public String getColumnName(int col) {
return columnNames[col];
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int compare(BackendDescriptor desc1, BackendDescriptor desc2)
{
- int result;
+ CustomSearchResult monitor1 = desc1.getMonitoringEntry();
+ CustomSearchResult monitor2 = desc2.getMonitoringEntry();
+
ArrayList<Integer> possibleResults = new ArrayList<Integer>();
-
possibleResults.add(getName(desc1).compareTo(getName(desc2)));
- for (String attrName : attributes)
- {
- int possibleResult;
- if (desc1.getMonitoringEntry() == null)
- {
- if (desc2.getMonitoringEntry() == null)
- {
- possibleResult = 0;
- }
- else
- {
- possibleResult = -1;
- }
- }
- else if (desc2.getMonitoringEntry() == null)
- {
- possibleResult = 1;
- }
- else
- {
- Object v1 = null;
- Object v2 = null;
+ computeMonitoringPossibleResults(monitor1, monitor2, possibleResults, attributes);
- for (String attr : desc1.getMonitoringEntry().getAttributeNames())
- {
- if (attr.equalsIgnoreCase(attrName))
- {
- v1 = getFirstMonitoringValue(desc1.getMonitoringEntry(), attrName);
- break;
- }
- }
- for (String attr : desc2.getMonitoringEntry().getAttributeNames())
- {
- if (attr.equalsIgnoreCase(attrName))
- {
- v2 = getFirstMonitoringValue(desc2.getMonitoringEntry(), attrName);
- break;
- }
- }
-
- if (v1 == null)
- {
- if (v2 == null)
- {
- possibleResult = 0;
- }
- else
- {
- possibleResult = -1;
- }
- }
- else if (v2 == null)
- {
- possibleResult = 1;
- }
- else
- {
- if (v1 instanceof Number)
- {
- if ((v1 instanceof Double) || (v2 instanceof Double))
- {
- double n1 = ((Number)v1).doubleValue();
- double n2 = ((Number)v2).doubleValue();
- if (n1 > n2)
- {
- possibleResult = 1;
- }
- else if (n1 < n2)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = 0;
- }
- }
- else
- {
- long n1 = ((Number)v1).longValue();
- long n2 = ((Number)v2).longValue();
- if (n1 > n2)
- {
- possibleResult = 1;
- }
- else if (n1 < n2)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = 0;
- }
- }
- }
- else if (v2 instanceof Number)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = v1.toString().compareTo(v2.toString());
- }
- }
- }
- possibleResults.add(possibleResult);
- }
-
- result = possibleResults.get(getSortColumn());
+ int result = possibleResults.get(getSortColumn());
if (result == 0)
{
for (int i : possibleResults)
@@ -276,6 +160,7 @@
* @return <CODE>true</CODE> if the sort is ascending and <CODE>false</CODE>
* otherwise.
*/
+ @Override
public boolean isSortAscending()
{
return sortAscending;
@@ -285,6 +170,7 @@
* Sets whether to sort ascending of descending.
* @param sortAscending whether to sort ascending or descending.
*/
+ @Override
public void setSortAscending(boolean sortAscending)
{
this.sortAscending = sortAscending;
@@ -294,6 +180,7 @@
* Returns the column index used to sort.
* @return the column index used to sort.
*/
+ @Override
public int getSortColumn()
{
return sortColumn;
@@ -303,6 +190,7 @@
* Sets the column index used to sort.
* @param sortColumn column index used to sort..
*/
+ @Override
public void setSortColumn(int sortColumn)
{
this.sortColumn = sortColumn;
@@ -401,14 +289,6 @@
}
/**
- * {@inheritDoc}
- */
- protected String[] getColumnNames()
- {
- return columnNames;
- }
-
- /**
* Returns the label to be used for the provided backend.
* @param backend the backend.
* @return the label to be used for the provided backend.
@@ -424,8 +304,7 @@
* @return the monitoring entry associated with the provided backend. Returns
* <CODE>null</CODE> if there is no monitoring entry associated.
*/
- protected CustomSearchResult getMonitoringEntry(
- BackendDescriptor backend)
+ protected CustomSearchResult getMonitoringEntry(BackendDescriptor backend)
{
return backend.getMonitoringEntry();
}
@@ -438,29 +317,18 @@
CustomSearchResult monitoringEntry = getMonitoringEntry(backend);
for (String attr : attributes)
{
- Object o = getFirstMonitoringValue(monitoringEntry, attr);
- if (o == null)
+ String o = getFirstValueAsString(monitoringEntry, attr);
+ if (o != null)
{
- line[i] = NO_VALUE_SET.toString();
+ line[i] = o;
}
else
{
- line[i] = o.toString();
+ line[i] = NO_VALUE_SET.toString();
}
i++;
}
return line;
}
- /**
- * Returns the first value for a given attribute in the provided entry.
- * @param sr the entry.
- * @param attrName the attribute name.
- * @return the first value for a given attribute in the provided entry.
- */
- protected Object getFirstMonitoringValue(CustomSearchResult sr,
- String attrName)
- {
- return Utilities.getFirstMonitoringValue(sr, attrName);
- }
}
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/MonitoringTableModel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/MonitoringTableModel.java
index 3416a7f..febf11f 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/MonitoringTableModel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/MonitoringTableModel.java
@@ -26,65 +26,47 @@
*/
package org.opends.guitools.controlpanel.datamodel;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.HashSet;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Set;
import java.util.TreeSet;
-import org.opends.guitools.controlpanel.util.Utilities;
import org.forgerock.i18n.LocalizableMessage;
+import org.opends.guitools.controlpanel.util.Utilities;
+
+import static org.opends.guitools.controlpanel.util.Utilities.*;
+import static org.opends.messages.AdminToolMessages.*;
/**
* The abstract table model used to display all the network groups.
* @param <T> the type of the objects passed externally to the table model.
* @param <P> the type of the objects used internally by the table model.
*/
-public abstract class MonitoringTableModel<T, P> extends SortableTableModel
-implements Comparator<P>
+abstract class MonitoringTableModel<T, P> extends SortableTableModel implements Comparator<P>
{
private static final long serialVersionUID = -3974562860632179025L;
- private Set<P> data = new HashSet<P>();
- private ArrayList<String[]> dataArray = new ArrayList<String[]>();
- private ArrayList<P> dataSourceArray = new ArrayList<P>();
+ private final Set<P> data = new HashSet<P>();
+ private final ArrayList<String[]> dataArray = new ArrayList<String[]>();
+ private final ArrayList<P> dataSourceArray = new ArrayList<P>();
private boolean showAverages;
private long runningTime;
private String[] columnNames = {};
- private LocalizableMessage NO_VALUE_SET = INFO_CTRL_PANEL_NO_MONITORING_VALUE.get();
- private LocalizableMessage NOT_IMPLEMENTED = INFO_CTRL_PANEL_NOT_IMPLEMENTED.get();
+ private final LocalizableMessage NO_VALUE_SET = INFO_CTRL_PANEL_NO_MONITORING_VALUE.get();
+ private final LocalizableMessage NOT_IMPLEMENTED = INFO_CTRL_PANEL_NOT_IMPLEMENTED.get();
-
- /**
- * The attributes to be displayed.
- */
- private LinkedHashSet<MonitoringAttributes> attributes =
- new LinkedHashSet<MonitoringAttributes>();
- /**
- * The sort column of the table.
- */
- private int sortColumn = 0;
- /**
- * Whether the sorting is ascending or descending.
- */
+ /** The attributes to be displayed. */
+ private final LinkedHashSet<MonitoringAttributes> attributes = new LinkedHashSet<MonitoringAttributes>();
+ /** The sort column of the table. */
+ private int sortColumn;
+ /** Whether the sorting is ascending or descending. */
private boolean sortAscending = true;
/**
- * Indicates whether a total row must be added or not. The default behavior
- * is to add it.
- * @return <CODE>true</CODE> if a total row must be added and
- * <CODE>false</CODE> otherwise.
- */
- protected boolean addTotalRow()
- {
- return true;
- }
-
- /**
* Sets the data for this table model.
* @param newData the data for this table model.
* @param runningTime the running time of the server in miliseconds.
@@ -109,6 +91,7 @@
* Updates the table model contents and sorts its contents depending on the
* sort options set by the user.
*/
+ @Override
public void forceResort()
{
updateDataArray();
@@ -126,33 +109,29 @@
fireTableDataChanged();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int getColumnCount()
{
return columnNames.length;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public int getRowCount()
{
return dataArray.size();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public Object getValueAt(int row, int col)
{
return dataArray.get(row)[col];
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public String getColumnName(int col) {
return columnNames[col];
}
@@ -162,6 +141,7 @@
* @return <CODE>true</CODE> if the sort is ascending and <CODE>false</CODE>
* otherwise.
*/
+ @Override
public boolean isSortAscending()
{
return sortAscending;
@@ -171,6 +151,7 @@
* Sets whether to sort ascending of descending.
* @param sortAscending whether to sort ascending or descending.
*/
+ @Override
public void setSortAscending(boolean sortAscending)
{
this.sortAscending = sortAscending;
@@ -180,6 +161,7 @@
* Returns the column index used to sort.
* @return the column index used to sort.
*/
+ @Override
public int getSortColumn()
{
return sortColumn;
@@ -189,6 +171,7 @@
* Sets the column index used to sort.
* @param sortColumn column index used to sort..
*/
+ @Override
public void setSortColumn(int sortColumn)
{
this.sortColumn = sortColumn;
@@ -264,53 +247,42 @@
}
// Add the total: always at the end
- if (addTotalRow())
+ String[] line = new String[columnNames.length];
+ line[0] = "<html><b>" + INFO_CTRL_PANEL_TOTAL_LABEL.get() + "</b>";
+ for (int i = 1; i < line.length; i++)
{
- String[] line = new String[columnNames.length];
- line[0] = "<html><b>" + INFO_CTRL_PANEL_TOTAL_LABEL.get() + "</b>";
- for (int i=1; i<line.length; i++)
+ boolean valueSet = false;
+ boolean notImplemented = false;
+ long totalValue = 0;
+ for (int j = 0; j < dataArray.size(); j++)
{
- boolean valueSet = false;
- boolean notImplemented = false;
- long totalValue = 0;
- for (int j=0; j<dataArray.size(); j++)
+ String[] l = dataArray.get(j);
+ String value = l[i];
+ try
{
- String[] l = dataArray.get(j);
- String value = l[i];
- try
- {
- long v = Long.parseLong(value);
- totalValue += v;
- valueSet = true;
- }
- catch (Throwable t)
- {
- notImplemented = NOT_IMPLEMENTED.toString().equals(value);
- }
+ long v = Long.parseLong(value);
+ totalValue += v;
+ valueSet = true;
}
- if (notImplemented)
+ catch (Throwable t)
{
- line[i] = NOT_IMPLEMENTED.toString();
- }
- else if (valueSet)
- {
- line[i] = String.valueOf(totalValue);
- }
- else
- {
- line[i] = NO_VALUE_SET.toString();
+ notImplemented = NOT_IMPLEMENTED.toString().equals(value);
}
}
- dataArray.add(line);
+ if (notImplemented)
+ {
+ line[i] = NOT_IMPLEMENTED.toString();
+ }
+ else if (valueSet)
+ {
+ line[i] = String.valueOf(totalValue);
+ }
+ else
+ {
+ line[i] = NO_VALUE_SET.toString();
+ }
}
- }
-
- /**
- * {@inheritDoc}
- */
- protected String[] getColumnNames()
- {
- return columnNames;
+ dataArray.add(line);
}
/**
@@ -358,7 +330,7 @@
String s = String.valueOf(average);
int index = s.indexOf(".");
// Show a maximum of two decimals.
- if ((index != -1) && ((index + 3) < s.length()))
+ if (index != -1 && index + 3 < s.length())
{
s = s.substring(0, index + 3);
}
@@ -392,18 +364,6 @@
}
/**
- * Returns the first value for a given attribute in the provided entry.
- * @param sr the entry.
- * @param attrName the attribute name.
- * @return the first value for a given attribute in the provided entry.
- */
- protected Object getFirstMonitoringValue(CustomSearchResult sr,
- String attrName)
- {
- return Utilities.getFirstMonitoringValue(sr, attrName);
- }
-
- /**
* Returns a list of integer with all the values of two monitoring entries
* compared.
* @param monitor1 the first monitoring entry.
@@ -414,120 +374,13 @@
protected ArrayList<Integer> getMonitoringPossibleResults(
CustomSearchResult monitor1, CustomSearchResult monitor2)
{
- ArrayList<Integer> possibleResults = new ArrayList<Integer>();
+ final List<String> attrs = new ArrayList<String>();
for (MonitoringAttributes operation : getAttributes())
{
- int possibleResult;
- if (monitor1 == null)
- {
- if (monitor2 == null)
- {
- possibleResult = 0;
- }
- else
- {
- possibleResult = -1;
- }
- }
- else if (monitor2 == null)
- {
- possibleResult = 1;
- }
- else
- {
- Object v1 = null;
- Object v2 = null;
-
- for (String attrName : monitor1.getAttributeNames())
- {
- if (operation.getAttributeName().equalsIgnoreCase(attrName))
- {
- v1 = getFirstMonitoringValue(monitor1, attrName);
- break;
- }
- }
- for (String attrName : monitor2.getAttributeNames())
- {
- if (operation.getAttributeName().equalsIgnoreCase(attrName))
- {
- v2 = getFirstMonitoringValue(monitor2, attrName);
- break;
- }
- }
-
- if (v1 == null)
- {
- if (v2 == null)
- {
- possibleResult = 0;
- }
- else
- {
- possibleResult = -1;
- }
- }
- else if (v2 == null)
- {
- possibleResult = 1;
- }
- else
- {
- if (v1 instanceof Number)
- {
- if (v2 instanceof Number)
- {
- if ((v1 instanceof Double) || (v2 instanceof Double))
- {
- double n1 = ((Number)v1).doubleValue();
- double n2 = ((Number)v2).doubleValue();
- if (n1 > n2)
- {
- possibleResult = 1;
- }
- else if (n1 < n2)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = 0;
- }
- }
- else
- {
- long n1 = ((Number)v1).longValue();
- long n2 = ((Number)v2).longValue();
- if (n1 > n2)
- {
- possibleResult = 1;
- }
- else if (n1 < n2)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = 0;
- }
- }
- }
- else
- {
- possibleResult = 1;
- }
- }
- else if (v2 instanceof Number)
- {
- possibleResult = -1;
- }
- else
- {
- possibleResult = v1.toString().compareTo(v2.toString());
- }
- }
- }
- possibleResults.add(possibleResult);
+ attrs.add(operation.getAttributeName());
}
+ final ArrayList<Integer> possibleResults = new ArrayList<Integer>();
+ computeMonitoringPossibleResults(monitor1, monitor2, possibleResults, attrs);
return possibleResults;
}
}
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
index acf9cb4..e5104a1 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/ServerDescriptor.java
@@ -527,7 +527,7 @@
{
return false;
}
- String os = (String) getFirstMonitoringValue(sr, "operatingSystem");
+ String os = getFirstValueAsString(sr, "operatingSystem");
if (os != null)
{
return OperatingSystem.WINDOWS == OperatingSystem.forName(os);
@@ -729,8 +729,8 @@
{
try
{
- String start = (String) getFirstMonitoringValue(rootMonitor, START_DATE.getAttributeName());
- String current = (String) getFirstMonitoringValue(rootMonitor, CURRENT_DATE.getAttributeName());
+ String start = getFirstValueAsString(rootMonitor, START_DATE.getAttributeName());
+ String current = getFirstValueAsString(rootMonitor, CURRENT_DATE.getAttributeName());
Date startTime = ConfigFromDirContext.utcParser.parse(start);
Date currentTime = ConfigFromDirContext.utcParser.parse(current);
return currentTime.getTime() - startTime.getTime();
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/EntryCachesMonitoringPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/EntryCachesMonitoringPanel.java
index 6d41cf3..ba72f30 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/EntryCachesMonitoringPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/EntryCachesMonitoringPanel.java
@@ -22,43 +22,38 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 ForgeRock AS
*/
package org.opends.guitools.controlpanel.ui;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.swing.Box;
import javax.swing.JLabel;
import org.opends.guitools.controlpanel.datamodel.CustomSearchResult;
-import org.opends.guitools.controlpanel.datamodel.BasicMonitoringAttributes;
import org.opends.guitools.controlpanel.datamodel.MonitoringAttributes;
import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
import org.opends.guitools.controlpanel.util.Utilities;
+
+import static org.opends.guitools.controlpanel.datamodel.BasicMonitoringAttributes.*;
+import static org.opends.guitools.controlpanel.util.Utilities.*;
+import static org.opends.messages.AdminToolMessages.*;
/**
* The panel displaying the entry caches monitor panel.
*/
public class EntryCachesMonitoringPanel extends GeneralMonitoringPanel
{
private static final long serialVersionUID = 9031734563700069830L;
- static List<MonitoringAttributes> ngOperations =
- new ArrayList<MonitoringAttributes>();
- {
- ngOperations.add(BasicMonitoringAttributes.ENTRY_CACHE_TRIES);
- ngOperations.add(BasicMonitoringAttributes.ENTRY_CACHE_HITS);
- ngOperations.add(BasicMonitoringAttributes.ENTRY_CACHE_HIT_RATIO);
- ngOperations.add(BasicMonitoringAttributes.CURRENT_ENTRY_CACHE_SIZE);
- ngOperations.add(BasicMonitoringAttributes.MAX_ENTRY_CACHE_SIZE);
- ngOperations.add(BasicMonitoringAttributes.CURRENT_ENTRY_CACHE_COUNT);
- ngOperations.add(BasicMonitoringAttributes.MAX_ENTRY_CACHE_COUNT);
- }
- private ArrayList<JLabel> monitoringLabels =
- new ArrayList<JLabel>();
+ private static List<MonitoringAttributes> ngOperations = new ArrayList<MonitoringAttributes>(Arrays.asList(
+ ENTRY_CACHE_TRIES, ENTRY_CACHE_HITS, ENTRY_CACHE_HIT_RATIO, CURRENT_ENTRY_CACHE_SIZE, MAX_ENTRY_CACHE_SIZE,
+ CURRENT_ENTRY_CACHE_COUNT, MAX_ENTRY_CACHE_COUNT));
+
+ private ArrayList<JLabel> monitoringLabels = new ArrayList<JLabel>();
{
for (int i=0; i<ngOperations.size(); i++)
{
@@ -85,6 +80,7 @@
/**
* {@inheritDoc}
*/
+ @Override
public Component getPreferredFocusComponent()
{
return monitoringLabels.get(0);
@@ -159,8 +155,7 @@
int index = 0;
for (MonitoringAttributes attr : ngOperations)
{
- if (Utilities.getFirstMonitoringValue(csr, attr.getAttributeName())
- == null)
+ if (getFirstValueAsString(csr, attr.getAttributeName()) == null)
{
monitoringLabels.get(index).setVisible(false);
labels.get(index).setVisible(false);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/JavaInformationMonitoringPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/JavaInformationMonitoringPanel.java
index 2c453be..4fc195d 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/JavaInformationMonitoringPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/JavaInformationMonitoringPanel.java
@@ -22,11 +22,10 @@
*
*
* Copyright 2009 Sun Microsystems, Inc.
+ * Portions Copyright 2014 ForgeRock AS
*/
package org.opends.guitools.controlpanel.ui;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
@@ -46,12 +45,15 @@
import javax.swing.event.ChangeListener;
import javax.swing.text.JTextComponent;
-import org.opends.guitools.controlpanel.datamodel.CustomSearchResult;
import org.opends.guitools.controlpanel.datamodel.BasicMonitoringAttributes;
+import org.opends.guitools.controlpanel.datamodel.CustomSearchResult;
import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
import org.opends.guitools.controlpanel.ui.components.BasicExpander;
import org.opends.guitools.controlpanel.util.Utilities;
-import org.opends.server.util.ServerConstants;
+
+import static org.opends.guitools.controlpanel.util.Utilities.*;
+import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.util.ServerConstants.*;
/**
* The panel displaying the java monitoring information.
@@ -82,8 +84,8 @@
{
for (int i=0; i<generalAttributes.size(); i++)
{
- if ((generalAttributes.get(i) == BasicMonitoringAttributes.CLASS_PATH) ||
- (generalAttributes.get(i) == BasicMonitoringAttributes.JVM_ARGUMENTS))
+ if (generalAttributes.get(i) == BasicMonitoringAttributes.CLASS_PATH ||
+ generalAttributes.get(i) == BasicMonitoringAttributes.JVM_ARGUMENTS)
{
JEditorPane pane = new JEditorPane();
pane.setEditable(false);
@@ -112,9 +114,8 @@
createLayout();
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public Component getPreferredFocusComponent()
{
return generalMonitoringComps.get(0);
@@ -175,14 +176,13 @@
gbc.insets.right = 10;
gbc.weightx = 1.0;
gbc.fill = GridBagConstraints.BOTH;
- add(generalMonitoringComps.get(i), gbc);
}
else
{
gbc.weightx = 0.0;
gbc.fill = GridBagConstraints.HORIZONTAL;
- add(generalMonitoringComps.get(i), gbc);
}
+ add(generalMonitoringComps.get(i), gbc);
}
final BasicExpander extraExpander = new BasicExpander(
@@ -249,22 +249,20 @@
gbc1.insets.right = 10;
gbc1.weightx = 1.0;
gbc1.fill = GridBagConstraints.BOTH;
- extraGeneralPanel.add(generalMonitoringComps.get(index), gbc1);
}
else
{
gbc1.weightx = 1.0;
gbc1.fill = GridBagConstraints.HORIZONTAL;
- extraGeneralPanel.add(generalMonitoringComps.get(index), gbc1);
}
+ extraGeneralPanel.add(generalMonitoringComps.get(index), gbc1);
gbc1.insets.top = 10;
gbc1.gridy ++;
}
ChangeListener changeListener = new ChangeListener()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void stateChanged(ChangeEvent e)
{
extraGeneralPanel.setVisible(extraExpander.isSelected());
@@ -274,9 +272,8 @@
changeListener = new ChangeListener()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void stateChanged(ChangeEvent e)
{
memoryPanel.setVisible(memoryExpander.isSelected());
@@ -360,9 +357,8 @@
SortedSet<String> sortedNames = new TreeSet<String>();
for (String attrName : allNames)
{
- if (!attrName.equalsIgnoreCase(
- ServerConstants.OBJECTCLASS_ATTRIBUTE_TYPE_NAME) &&
- !attrName.equalsIgnoreCase(ServerConstants.ATTR_COMMON_NAME))
+ if (!OBJECTCLASS_ATTRIBUTE_TYPE_NAME.equalsIgnoreCase(attrName)
+ && !ATTR_COMMON_NAME.equalsIgnoreCase(attrName))
{
sortedNames.add(attrName);
}
@@ -399,12 +395,10 @@
for (int i=0; i<memoryAttributes.size() ; i++)
{
- Object value = Utilities.getFirstMonitoringValue(
- csrMemory,
- memoryAttributes.get(i));
+ String value = getFirstValueAsString(csrMemory, memoryAttributes.get(i));
if (value != null)
{
- memoryLabels.get(i).setText(value.toString());
+ memoryLabels.get(i).setText(value);
}
else
{
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
index 53307d1..bcf5be3 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/LocalOrRemotePanel.java
@@ -80,14 +80,18 @@
import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.admin.ads.util.ConnectionUtils.*;
+import static org.opends.guitools.controlpanel.util.Utilities.*;
import static org.opends.messages.AdminToolMessages.*;
import static org.opends.messages.QuickSetupMessages.*;
+import static org.opends.server.monitors.VersionMonitorProvider.*;
/**
* The panel that appears when the user is asked to provide authentication.
*/
public class LocalOrRemotePanel extends StatusGenericPanel
{
+
+ private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
private static final long serialVersionUID = 5051556513294844797L;
private JComboBox combo;
@@ -101,19 +105,11 @@
private String usedUrl;
private JLabel localInstallLabel;
private JEditorPane localInstall;
-
private JLabel localNotRunning;
-
private boolean isLocalServerRunning;
-
private boolean callOKWhenVisible;
- private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
-
- /**
- * Default constructor.
- *
- */
+ /** Default constructor. */
public LocalOrRemotePanel()
{
super();
@@ -431,13 +427,7 @@
@Override
public Void processBackgroundTask() throws Throwable
{
- try
- {
- Thread.sleep(200);
- }
- catch (Throwable t)
- {
- }
+ StaticUtils.sleep(200);
File instancePath = Installation.getLocal().getInstanceDirectory();
isLocalServerRunning = Utilities.isServerRunning(instancePath);
return null;
@@ -583,7 +573,7 @@
else
{
usedUrl = ConnectionUtils.getLDAPUrl(hostName.getText().trim(),
- new Integer(port.getText().trim()), true);
+ Integer.valueOf(port.getText().trim()), true);
ctx = createLdapsContext(usedUrl, dn.getText(),
String.valueOf(pwd.getPassword()),
getInfo().getConnectTimeout(), null,
@@ -591,20 +581,13 @@
checkVersion(ctx);
}
- try
- {
- Thread.sleep(500);
- }
- catch (Throwable t)
- {
- }
+ StaticUtils.sleep(500);
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
- displayMessage(
- INFO_CTRL_PANEL_READING_CONFIGURATION_SUMMARY.get());
+ displayMessage(INFO_CTRL_PANEL_READING_CONFIGURATION_SUMMARY.get());
}
});
closeInfoConnections();
@@ -715,7 +698,7 @@
{
String hostPort = ServerDescriptor.getServerRepresentation(
hostName.getText().trim(),
- new Integer(port.getText().trim()));
+ Integer.valueOf(port.getText().trim()));
NamingException ne = (NamingException)throwable;
errors.add(getMessageForException(ne, hostPort));
setPrimaryInvalid(portLabel);
@@ -907,13 +890,7 @@
@Override
public void run()
{
- try
- {
- Thread.sleep(getInfo().getPoolingPeriod());
- }
- catch (Throwable t)
- {
- }
+ StaticUtils.sleep(getInfo().getPoolingPeriod());
getInfo().startPooling();
}
});
@@ -925,9 +902,7 @@
LocalizableMessage msg = null;
try
{
- /*
- * Search for the version on the remote server.
- */
+ // Search for the version on the remote server.
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(
SearchControls.OBJECT_SCOPE);
@@ -939,8 +914,7 @@
VersionMonitorProvider.ATTR_MINOR_VERSION
});
NamingEnumeration<SearchResult> en =
- ctx.search("cn=Version,cn=monitor", "objectclass=*",
- searchControls);
+ ctx.search("cn=Version,cn=monitor", "objectclass=*", searchControls);
SearchResult sr = null;
try
{
@@ -953,21 +927,16 @@
{
en.close();
}
- CustomSearchResult csr =
- new CustomSearchResult(sr, "cn=Version,cn=monitor");
+
+ CustomSearchResult csr = new CustomSearchResult(sr, "cn=Version,cn=monitor");
String hostName = ConnectionUtils.getHostName(ctx);
- String productName = String.valueOf(Utilities.getFirstMonitoringValue(csr,
- VersionMonitorProvider.ATTR_PRODUCT_NAME));
- String major = String.valueOf(Utilities.getFirstMonitoringValue(csr,
- VersionMonitorProvider.ATTR_MAJOR_VERSION));
- String point = String.valueOf(Utilities.getFirstMonitoringValue(csr,
- VersionMonitorProvider.ATTR_POINT_VERSION));
- String minor = String.valueOf(Utilities.getFirstMonitoringValue(csr,
- VersionMonitorProvider.ATTR_MINOR_VERSION));
- // Be strict, control panel is only compatible with exactly the same
- // version.
+ String productName = String.valueOf(getFirstValueAsString(csr, ATTR_PRODUCT_NAME));
+ String major = String.valueOf(getFirstValueAsString(csr, ATTR_MAJOR_VERSION));
+ String point = String.valueOf(getFirstValueAsString(csr, ATTR_POINT_VERSION));
+ String minor = String.valueOf(getFirstValueAsString(csr, ATTR_MINOR_VERSION));
+ // Be strict, control panel is only compatible with exactly the same version
if (!productName.equalsIgnoreCase(DynamicConstants.PRODUCT_NAME))
{
msg = ERR_NOT_SAME_PRODUCT_IN_REMOTE_SERVER_NOT_FOUND.get(hostName,
@@ -994,7 +963,6 @@
private boolean isVersionException(Throwable t)
{
- boolean isVersionException = false;
if (t instanceof OpenDsException)
{
OpenDsException oe = (OpenDsException)t;
@@ -1005,34 +973,15 @@
StaticUtils.hasDescriptor(msg, ERR_VERSION_IN_REMOTE_SERVER_NOT_FOUND) ||
StaticUtils.hasDescriptor(msg, ERR_NOT_SAME_PRODUCT_IN_REMOTE_SERVER_NOT_FOUND))
{
- isVersionException = true;
+ return true;
}
}
}
- return isVersionException;
+ return false;
}
private void closeInfoConnections()
{
- if (getInfo().getDirContext() != null)
- {
- try
- {
- getInfo().getDirContext().close();
- }
- catch (Throwable t)
- {
- }
- }
- if (getInfo().getUserDataDirContext() != null)
- {
- try
- {
- getInfo().getUserDataDirContext().close();
- }
- catch (Throwable t)
- {
- }
- }
+ StaticUtils.close(getInfo().getDirContext(), getInfo().getUserDataDirContext());
}
}
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index c5ef4e4..3728876 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -26,8 +26,6 @@
*/
package org.opends.guitools.controlpanel.ui;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Component;
@@ -56,9 +54,6 @@
import java.util.SortedSet;
import java.util.TreeSet;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-
import javax.naming.NamingEnumeration;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
@@ -73,6 +68,11 @@
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.i18n.LocalizableMessageDescriptor;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.schema.ObjectClassType;
import org.opends.admin.ads.util.ConnectionUtils;
import org.opends.guitools.controlpanel.browser.BrowserController;
import org.opends.guitools.controlpanel.browser.IconPool;
@@ -85,7 +85,10 @@
import org.opends.guitools.controlpanel.datamodel.MonitoringAttributes;
import org.opends.guitools.controlpanel.datamodel.ScheduleType;
import org.opends.guitools.controlpanel.datamodel.ServerDescriptor;
-import org.opends.guitools.controlpanel.event.*;
+import org.opends.guitools.controlpanel.datamodel.SortableListModel;
+import org.opends.guitools.controlpanel.event.ConfigChangeListener;
+import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
+import org.opends.guitools.controlpanel.event.ConfigurationElementCreatedListener;
import org.opends.guitools.controlpanel.task.RebuildIndexTask;
import org.opends.guitools.controlpanel.task.RestartServerTask;
import org.opends.guitools.controlpanel.task.StartServerTask;
@@ -95,14 +98,15 @@
import org.opends.guitools.controlpanel.util.BackgroundTask;
import org.opends.guitools.controlpanel.util.LowerCaseComparator;
import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessageBuilder;
-import org.forgerock.i18n.LocalizableMessageDescriptor;
import org.opends.quicksetup.ui.CustomHTMLEditorKit;
import org.opends.server.schema.SchemaConstants;
import org.opends.server.types.ObjectClass;
-import org.forgerock.opendj.ldap.schema.ObjectClassType;
import org.opends.server.types.OpenDsException;
import org.opends.server.util.ServerConstants;
+import org.opends.server.util.StaticUtils;
+
+import static org.opends.guitools.controlpanel.ui.ControlCenterMainPane.*;
+import static org.opends.messages.AdminToolMessages.*;
/**
* An abstract class that contains a number of methods that are shared by all
@@ -124,49 +128,44 @@
/**
* The not applicable message.
*/
- protected final static LocalizableMessage NOT_APPLICABLE =
+ protected static final LocalizableMessage NOT_APPLICABLE =
INFO_NOT_APPLICABLE_LABEL.get();
- private LocalizableMessage AUTHENTICATE = INFO_AUTHENTICATE_BUTTON_LABEL.get();
- private LocalizableMessage START = INFO_START_BUTTON_LABEL.get();
+ private final LocalizableMessage AUTHENTICATE = INFO_AUTHENTICATE_BUTTON_LABEL.get();
+ private final LocalizableMessage START = INFO_START_BUTTON_LABEL.get();
private ControlPanelInfo info;
- private boolean enableClose = true;
+ private final boolean enableClose = true;
private boolean enableCancel = true;
private boolean enableOK = true;
- private boolean disposeOnClose = false;
+ private boolean disposeOnClose;
- private JPanel cardPanel;
- private JPanel mainPanel;
- private JEditorPane message;
+ private final JPanel cardPanel;
+ private final JPanel mainPanel;
+ private final JEditorPane message;
- private CardLayout cardLayout;
+ private final CardLayout cardLayout;
private static final String MAIN_PANEL = "mainPanel";
private static final String MESSAGE_PANEL = "messagePanel";
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
- /**
- * The error pane.
- */
+ /** The error pane. */
protected JEditorPane errorPane;
- /**
- * The last displayed message in the error pane.
- */
- protected String lastDisplayedError = null;
+ /** The last displayed message in the error pane. */
+ private String lastDisplayedError;
- private ArrayList<ConfigurationElementCreatedListener> confListeners =
+ private final ArrayList<ConfigurationElementCreatedListener> confListeners =
new ArrayList<ConfigurationElementCreatedListener>();
- private boolean sizeSet = false;
- private boolean focusSet = false;
+ private boolean sizeSet;
+ private boolean focusSet;
- private static DateFormat taskDateFormat =
- new SimpleDateFormat("yyyyMMddHHmmss");
+ private static final DateFormat taskDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
/**
* Returns the title that will be used as title of the dialog.
@@ -291,6 +290,7 @@
* @param comp the Component to be added.
* @param constraints the constraints.
*/
+ @Override
public void add(Component comp, Object constraints)
{
mainPanel.add(comp, constraints);
@@ -378,6 +378,7 @@
CustomHTMLEditorKit htmlEditor = new CustomHTMLEditorKit();
htmlEditor.addActionListener(new ActionListener()
{
+ @Override
public void actionPerformed(ActionEvent ev)
{
if (AUTHENTICATE.toString().equals(ev.getActionCommand()))
@@ -535,7 +536,7 @@
* of doing whatever is required (close the dialog, launch a task, etc.).
*
*/
- abstract public void okClicked();
+ public abstract void okClicked();
/**
* Adds a configuration element created listener.
@@ -558,21 +559,6 @@
}
/**
- * Notifies the configuration element created listener that a new object has
- * been created.
- * @param configObject the created object.
- */
- protected void notifyConfigurationElementCreated(Object configObject)
- {
- for (ConfigurationElementCreatedListener listener :
- getConfigurationElementCreatedListeners())
- {
- listener.elementCreated(
- new ConfigurationElementCreatedEvent(this, configObject));
- }
- }
-
- /**
* Returns the list of configuration listeners.
* @return the list of configuration listeners.
*/
@@ -668,41 +654,34 @@
progressDialog.setTaskIsOver(false);
boolean rebuildIndexes;
String backendName = index.getBackend().getBackendID();
+ LocalizableMessage summary = INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_SUMMARY.get();
if (!isServerRunning())
{
- rebuildIndexes = Utilities.displayConfirmationDialog(progressDialog,
- INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_SUMMARY.get(),
+ rebuildIndexes = Utilities.displayConfirmationDialog(progressDialog, summary,
INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_OFFLINE_DETAILS.get(
index.getName(), backendName));
}
+ else if (isLocal())
+ {
+ rebuildIndexes = Utilities.displayConfirmationDialog(progressDialog, summary,
+ INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_ONLINE_DETAILS.get(
+ index.getName(), backendName, backendName));
+ }
else
{
- if (isLocal())
- {
- rebuildIndexes = Utilities.displayConfirmationDialog(progressDialog,
- INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_SUMMARY.get(),
- INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_ONLINE_DETAILS.get(
- index.getName(), backendName, backendName));
- }
- else
- {
- Utilities.displayWarningDialog(progressDialog,
- INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_SUMMARY.get(),
- INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_REMOTE_DETAILS.get(
- index.getName(), backendName));
- rebuildIndexes = false;
- }
+ Utilities.displayWarningDialog(progressDialog, summary,
+ INFO_CTRL_PANEL_INDEX_REBUILD_REQUIRED_REMOTE_DETAILS.get(
+ index.getName(), backendName));
+ rebuildIndexes = false;
}
if (rebuildIndexes)
{
- SortedSet<AbstractIndexDescriptor> indexes =
- new TreeSet<AbstractIndexDescriptor>();
+ SortedSet<AbstractIndexDescriptor> indexes = new TreeSet<AbstractIndexDescriptor>();
indexes.add(index);
SortedSet<String> baseDNs = new TreeSet<String>();
for (BaseDNDescriptor b : index.getBackend().getBaseDns())
{
- String baseDN = Utilities.unescapeUtf8(b.getDn().toString());
- baseDNs.add(baseDN);
+ baseDNs.add(Utilities.unescapeUtf8(b.getDn().toString()));
}
RebuildIndexTask newTask = new RebuildIndexTask(getInfo(),
@@ -760,7 +739,7 @@
protected class IgnoreItemListener implements ItemListener
{
private Object selectedItem;
- private JComboBox combo;
+ private final JComboBox combo;
/**
* Constructor.
@@ -776,9 +755,8 @@
}
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void itemStateChanged(ItemEvent ev)
{
Object o = combo.getSelectedItem();
@@ -790,13 +768,10 @@
for (int i=0; i<combo.getModel().getSize(); i++)
{
Object item = combo.getModel().getElementAt(i);
- if (item instanceof CategorizedComboBoxElement)
+ if (item instanceof CategorizedComboBoxElement && !isCategory(item))
{
- if (!isCategory(item))
- {
- selectedItem = item;
- break;
- }
+ selectedItem = item;
+ break;
}
}
}
@@ -848,15 +823,14 @@
{
LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
mb.append(details);
- mb.append("<br><br>"+getAuthenticateHTML());
+ mb.append("<br><br>").append(getAuthenticateHTML());
LocalizableMessage title = INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_SUMMARY.get();
updateErrorPane(errorPane, title, ColorAndFontConstants.errorTitleFont,
mb.toMessage(), ColorAndFontConstants.defaultFont);
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(true);
@@ -869,9 +843,8 @@
{
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(false);
@@ -890,19 +863,9 @@
*/
protected boolean authenticationRequired(ServerDescriptor desc)
{
- boolean returnValue;
ServerDescriptor.ServerStatus status = desc.getStatus();
- if (((status == ServerDescriptor.ServerStatus.STARTED) &&
- !desc.isAuthenticated()) ||
- (status == ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE))
- {
- returnValue = true;
- }
- else
- {
- returnValue = false;
- }
- return returnValue;
+ return (status == ServerDescriptor.ServerStatus.STARTED && !desc.isAuthenticated())
+ || status == ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE;
}
/**
@@ -919,14 +882,13 @@
LocalizableMessage title = INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_SUMMARY.get();
LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
mb.append(details);
- mb.append("<br><br>"+getAuthenticateHTML());
+ mb.append("<br><br>").append(getAuthenticateHTML());
updateErrorPane(errorPane, title, ColorAndFontConstants.errorTitleFont,
mb.toMessage(), ColorAndFontConstants.defaultFont);
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(true);
@@ -938,9 +900,8 @@
{
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(false);
@@ -965,21 +926,20 @@
LocalizableMessage authRequired)
{
ServerDescriptor.ServerStatus status = desc.getStatus();
- if ((status != ServerDescriptor.ServerStatus.STARTED) &&
- (status != ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE))
+ if (status != ServerDescriptor.ServerStatus.STARTED &&
+ status != ServerDescriptor.ServerStatus.NOT_CONNECTED_TO_REMOTE)
{
LocalizableMessage title = INFO_CTRL_PANEL_SERVER_NOT_RUNNING_SUMMARY.get();
LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
mb.append(detailsServerNotRunning);
- mb.append("<br><br>"+getStartServerHTML());
+ mb.append("<br><br>").append(getStartServerHTML());
updateErrorPane(errorPane, title, ColorAndFontConstants.errorTitleFont,
mb.toMessage(),
ColorAndFontConstants.defaultFont);
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(true);
@@ -992,14 +952,13 @@
LocalizableMessage title = INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_SUMMARY.get();
LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
mb.append(authRequired);
- mb.append("<br><br>"+getAuthenticateHTML());
+ mb.append("<br><br>").append(getAuthenticateHTML());
updateErrorPane(errorPane, title, ColorAndFontConstants.errorTitleFont,
mb.toMessage(), ColorAndFontConstants.defaultFont);
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(true);
@@ -1011,9 +970,8 @@
{
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
errorPane.setVisible(false);
@@ -1041,13 +999,12 @@
*/
protected boolean isCategory(Object o)
{
- boolean isCategory = false;
if (o instanceof CategorizedComboBoxElement)
{
CategorizedComboBoxElement desc = (CategorizedComboBoxElement)o;
- isCategory = desc.getType() == CategorizedComboBoxElement.Type.CATEGORY;
+ return desc.getType() == CategorizedComboBoxElement.Type.CATEGORY;
}
- return isCategory;
+ return false;
}
/**
@@ -1086,15 +1043,10 @@
// Do it outside the event thread if the panel requires it.
BackgroundTask<Void> worker = new BackgroundTask<Void>()
{
+ @Override
public Void processBackgroundTask() throws Throwable
{
- try
- {
- Thread.sleep(1000);
- }
- catch (Throwable t)
- {
- }
+ StaticUtils.sleep(1000);
configurationChanged(new ConfigurationChangeEvent(
StatusGenericPanel.this.info,
StatusGenericPanel.this.info.getServerDescriptor()));
@@ -1102,6 +1054,7 @@
}
+ @Override
public void backgroundTaskCompleted(Void returnValue,
Throwable t)
{
@@ -1129,25 +1082,13 @@
}
}
- /**
- * Displays the main panel.
- *
- */
+ /** Displays the main panel. */
protected void displayMainPanel()
{
cardLayout.show(cardPanel, MAIN_PANEL);
}
/**
- * Returns whether the main panel is visible or not.
- * @return whether the main panel is visible or not.
- */
- protected boolean isMainPanelVisible()
- {
- return mainPanel.isVisible();
- }
-
- /**
* Displays a message and hides the main panel.
* @param msg the message to be displayed.
*/
@@ -1173,15 +1114,6 @@
}
/**
- * Returns whether the message is visible or not.
- * @return whether the message is visible or not.
- */
- protected boolean isMessageVisible()
- {
- return message.isVisible();
- }
-
- /**
* Updates the contents of an editor pane using the error format.
* @param pane the editor pane to be updated.
* @param title the title.
@@ -1196,20 +1128,6 @@
}
/**
- * Updates the contents of an editor pane using the warning format.
- * @param pane the editor pane to be updated.
- * @param title the title.
- * @param titleFont the font to be used for the title.
- * @param details the details message.
- * @param detailsFont the font to be used for the details.
- */
- protected void updateWarningPane(JEditorPane pane, LocalizableMessage title,
- Font titleFont, LocalizableMessage details, Font detailsFont)
- {
- updatePane(pane, title, titleFont, details, detailsFont, PanelType.WARNING);
- }
-
- /**
* Updates the contents of an editor pane using the confirmation format.
* @param pane the editor pane to be updated.
* @param title the title.
@@ -1220,33 +1138,21 @@
protected void updateConfirmationPane(JEditorPane pane, LocalizableMessage title,
Font titleFont, LocalizableMessage details, Font detailsFont)
{
- updatePane(pane, title, titleFont, details, detailsFont,
- PanelType.CONFIRMATION);
+ updatePane(pane, title, titleFont, details, detailsFont, PanelType.CONFIRMATION);
}
- /**
- * The different types of error panels that are handled.
- *
- */
- protected enum PanelType
+ /** The different types of error panels that are handled. */
+ private enum PanelType
{
- /**
- * The message in the panel is an error.
- */
+ /** The message in the panel is an error. */
ERROR,
- /**
- * The message in the panel is a confirmation.
- */
+ /** The message in the panel is a confirmation. */
CONFIRMATION,
- /**
- * The message in the panel is an information message.
- */
+ /** The message in the panel is an information message. */
INFORMATION,
- /**
- * The message in the panel is a warning message.
- */
+ /** The message in the panel is a warning message. */
WARNING
- };
+ }
/**
* Updates the contents of an editor pane using the provided format.
@@ -1312,9 +1218,8 @@
{
SwingUtilities.invokeLater(new Runnable()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void run()
{
pane.invalidate();
@@ -1350,6 +1255,7 @@
updateComboBoxModel(newElements, model);
SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
combo.setVisible(newElements.size() > 0);
@@ -1380,8 +1286,7 @@
{
LinkedHashSet<CategorizedComboBoxElement> newElements =
new LinkedHashSet<CategorizedComboBoxElement>();
- SortedSet<String> backendIDs =
- new TreeSet<String>(new LowerCaseComparator());
+ SortedSet<String> backendIDs = new TreeSet<String>(new LowerCaseComparator());
HashMap<String, SortedSet<String>> hmBaseDNs =
new HashMap<String, SortedSet<String>>();
@@ -1391,8 +1296,7 @@
{
String backendID = backend.getBackendID();
backendIDs.add(backendID);
- SortedSet<String> baseDNs =
- new TreeSet<String>(new LowerCaseComparator());
+ SortedSet<String> baseDNs = new TreeSet<String>(new LowerCaseComparator());
for (BaseDNDescriptor baseDN : backend.getBaseDns())
{
try
@@ -1441,12 +1345,13 @@
* @param comparator the object that will be used to compare the objects in
* the model. If <CODE>null</CODE>, the equals method will be used.
*/
- protected void updateComboBoxModel(final Collection<?> newElements,
+ private void updateComboBoxModel(final Collection<?> newElements,
final DefaultComboBoxModel model,
final Comparator<Object> comparator)
{
SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
Utilities.updateComboBoxModel(newElements, model, comparator);
@@ -1483,8 +1388,7 @@
}
dns.add(dn);
SortedSet<AbstractIndexDescriptor> indexes =
- new TreeSet<AbstractIndexDescriptor>();
- indexes.addAll(backend.getIndexes());
+ new TreeSet<AbstractIndexDescriptor>(backend.getIndexes());
indexes.addAll(backend.getVLVIndexes());
SortedSet<AbstractIndexDescriptor> currentIndexes =
hmIndexes.get(dn);
@@ -1542,10 +1446,10 @@
{
boolean availableChanged = false;
boolean selectedChanged = false;
- SortedSet<AbstractIndexDescriptor> availableIndexes =
- addRemove.getAvailableListModel().getData();
- SortedSet<AbstractIndexDescriptor> selectedIndexes =
- addRemove.getSelectedListModel().getData();
+ SortableListModel<AbstractIndexDescriptor> availableListModel = addRemove.getAvailableListModel();
+ SortableListModel<AbstractIndexDescriptor> selectedListModel = addRemove.getSelectedListModel();
+ SortedSet<AbstractIndexDescriptor> availableIndexes = availableListModel.getData();
+ SortedSet<AbstractIndexDescriptor> selectedIndexes = selectedListModel.getData();
availableChanged = availableIndexes.retainAll(indexes);
selectedChanged = selectedIndexes.retainAll(indexes);
@@ -1560,19 +1464,19 @@
}
if (availableChanged)
{
- addRemove.getAvailableListModel().clear();
- addRemove.getAvailableListModel().addAll(availableIndexes);
- addRemove.getAvailableListModel().fireContentsChanged(
- addRemove.getAvailableListModel(), 0,
- addRemove.getAvailableListModel().getSize());
+ availableListModel.clear();
+ availableListModel.addAll(availableIndexes);
+ availableListModel.fireContentsChanged(
+ availableListModel, 0,
+ availableListModel.getSize());
}
if (selectedChanged)
{
- addRemove.getSelectedListModel().clear();
- addRemove.getSelectedListModel().addAll(selectedIndexes);
- addRemove.getSelectedListModel().fireContentsChanged(
- addRemove.getSelectedListModel(), 0,
- addRemove.getSelectedListModel().getSize());
+ selectedListModel.clear();
+ selectedListModel.addAll(selectedIndexes);
+ selectedListModel.fireContentsChanged(
+ selectedListModel, 0,
+ selectedListModel.getSize());
}
}
}
@@ -1686,7 +1590,7 @@
* @param resetLogs whether the contents of the progress dialog should be
* reset or not.
*/
- protected void launchOperation(final Task task, LocalizableMessage initialSummary,
+ private void launchOperation(final Task task, LocalizableMessage initialSummary,
final LocalizableMessage successSummary, final LocalizableMessage successDetail,
final LocalizableMessage errorSummary,
final LocalizableMessage errorDetail,
@@ -1730,8 +1634,7 @@
{
dialog.setTaskIsOver(false);
dialog.getProgressBar().setIndeterminate(true);
- dialog.addPrintStreamListeners(task.getOutPrintStream(),
- task.getErrorPrintStream());
+ dialog.addPrintStreamListeners(task.getOutPrintStream(), task.getErrorPrintStream());
if (resetLogs)
{
dialog.resetProgressLogs();
@@ -1751,9 +1654,8 @@
dialog.getProgressBar().setVisible(true);
BackgroundTask<Task> worker = new BackgroundTask<Task>()
{
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public Task processBackgroundTask() throws Throwable
{
task.runTask();
@@ -1764,9 +1666,8 @@
return task;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void backgroundTaskCompleted(Task returnValue, Throwable t)
{
String summaryMsg;
@@ -1786,29 +1687,24 @@
if (t != null)
{
logger.warn(LocalizableMessage.raw("Error occurred running task: "+t, t));
- if ((task.getReturnCode() != null) &&
- (errorDetailCode != null))
+ if (task.getReturnCode() != null && errorDetailCode != null)
{
String sThrowable;
if (t instanceof OpenDsException)
{
sThrowable = ((OpenDsException)t).getMessageObject().toString();
}
+ else if (t.getMessage() != null)
+ {
+ sThrowable = t.getMessage();
+ }
else
{
- if (t.getMessage() != null)
- {
- sThrowable = t.getMessage();
- }
- else
- {
- sThrowable = t.toString();
- }
+ sThrowable = t.toString();
}
LocalizableMessageBuilder mb = new LocalizableMessageBuilder();
mb.append(errorDetailCode.get(task.getReturnCode()));
- mb.append(
- " "+INFO_CTRL_PANEL_DETAILS_THROWABLE.get(sThrowable));
+ mb.append(" ").append(INFO_CTRL_PANEL_DETAILS_THROWABLE.get(sThrowable));
summaryMsg = Utilities.getFormattedError(errorSummary,
ColorAndFontConstants.errorTitleFont,
mb.toMessage(), ColorAndFontConstants.defaultFont);
@@ -1827,8 +1723,7 @@
summaryMsg = null;
}
}
- else if ((task.getReturnCode() != null) &&
- (errorDetailCode != null))
+ else if (task.getReturnCode() != null && errorDetailCode != null)
{
summaryMsg = Utilities.getFormattedError(errorSummary,
ColorAndFontConstants.errorTitleFont,
@@ -1879,7 +1774,7 @@
try
{
int n = Integer.parseInt(stringValue);
- if ((n > maxValue) || (n < minValue))
+ if (n > maxValue || n < minValue)
{
throw new RuntimeException("Invalid value");
}
@@ -1894,7 +1789,6 @@
* Starts the server. This method will launch a task and open a progress
* dialog that will start the server. This method must be called from the
* event thread.
- *
*/
protected void startServer()
{
@@ -1951,7 +1845,7 @@
INFO_CTRL_PANEL_CONFIRMATION_REQUIRED_SUMMARY.get(),
INFO_CTRL_PANEL_CONFIRM_STOP_SERVER_DETAILS.get());
}
- if ((errors.size() == 0) && confirmed)
+ if (errors.size() == 0 && confirmed)
{
launchOperation(newTask,
INFO_CTRL_PANEL_STOPPING_SERVER_SUMMARY.get(),
@@ -1982,8 +1876,7 @@
Utilities.createFrame(),
Utilities.getParentDialog(this),
INFO_CTRL_PANEL_RESTART_SERVER_PROGRESS_DLG_TITLE.get(), getInfo());
- RestartServerTask newTask = new RestartServerTask(getInfo(),
- progressDialog);
+ RestartServerTask newTask = new RestartServerTask(getInfo(), progressDialog);
for (Task task : getInfo().getTasks())
{
task.canLaunch(newTask, errors);
@@ -1995,7 +1888,7 @@
INFO_CTRL_PANEL_CONFIRMATION_REQUIRED_SUMMARY.get(),
INFO_CTRL_PANEL_CONFIRM_RESTART_SERVER_DETAILS.get());
}
- if ((errors.size() == 0) && confirmed)
+ if (errors.size() == 0 && confirmed)
{
launchOperation(newTask,
INFO_CTRL_PANEL_STOPPING_SERVER_SUMMARY.get(),
@@ -2016,9 +1909,8 @@
/**
* Displays a dialog asking for authentication. This method must be called
* from the event thread.
- *
*/
- protected void authenticate()
+ private void authenticate()
{
if (!getLoginDialog().isVisible())
{
@@ -2035,22 +1927,12 @@
*/
protected GenericDialog getLoginDialog()
{
- if (isLocal())
- {
- GenericDialog loginDialog =
- ControlCenterMainPane.getLocalServerLoginDialog(getInfo());
- Utilities.centerGoldenMean(loginDialog, Utilities.getFrame(this));
- loginDialog.setModal(true);
- return loginDialog;
- }
- else
- {
- GenericDialog localOrRemoteDialog =
- ControlCenterMainPane.getLocalOrRemoteDialog(getInfo());
- Utilities.centerGoldenMean(localOrRemoteDialog, Utilities.getFrame(this));
- localOrRemoteDialog.setModal(true);
- return localOrRemoteDialog;
- }
+ GenericDialog dialog = isLocal()
+ ? getLocalServerLoginDialog(getInfo())
+ : getLocalOrRemoteDialog(getInfo());
+ Utilities.centerGoldenMean(dialog, Utilities.getFrame(this));
+ dialog.setModal(true);
+ return dialog;
}
/**
@@ -2194,18 +2076,6 @@
}
/**
- * Returns the first value for a given attribute in the provided entry.
- * @param sr the entry. It may be <CODE>null</CODE>.
- * @param attrName the attribute name.
- * @return the first value for a given attribute in the provided entry.
- */
- protected Object getFirstMonitoringValue(CustomSearchResult sr,
- String attrName)
- {
- return Utilities.getFirstMonitoringValue(sr, attrName);
- }
-
- /**
* Returns the label to be used in panels (with ':') based on the definition
* of the monitoring attribute.
* @param attr the monitoring attribute.
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
index b1504c7..b55bbeb 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/ConfigReader.java
@@ -24,11 +24,8 @@
* Copyright 2008-2009 Sun Microsystems, Inc.
* Portions Copyright 2014 ForgeRock AS
*/
-
package org.opends.guitools.controlpanel.util;
-import static org.opends.messages.AdminToolMessages.*;
-
import java.io.File;
import java.net.InetAddress;
import java.util.ArrayList;
@@ -39,13 +36,12 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.slf4j.LocalizedLogger;
-
+import org.forgerock.opendj.config.server.ConfigException;
import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
import org.opends.guitools.controlpanel.datamodel.ConnectionHandlerDescriptor;
import org.opends.guitools.controlpanel.datamodel.VLVSortOrder;
import org.opends.guitools.controlpanel.task.OfflineUpdateException;
import org.opends.server.admin.std.meta.AdministrationConnectorCfgDefn;
-import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.tools.tasks.TaskEntry;
import org.opends.server.types.DN;
@@ -55,10 +51,11 @@
import org.opends.server.types.OpenDsException;
import org.opends.server.types.Schema;
+import static org.opends.messages.AdminToolMessages.*;
+
/**
* An abstract class providing some common interface for the class that read
* the configuration (and if the server is running, the monitoring information).
- *
*/
public abstract class ConfigReader
{
@@ -322,19 +319,19 @@
if (s != null)
{
String[] attrNames = s.split(" ");
- for (int i=0; i<attrNames.length; i++)
+ for (String attrName : attrNames)
{
- if (attrNames[i].startsWith("+"))
+ if (attrName.startsWith("+"))
{
- sortOrder.add(new VLVSortOrder(attrNames[i].substring(1), true));
+ sortOrder.add(new VLVSortOrder(attrName.substring(1), true));
}
- else if (attrNames[i].startsWith("-"))
+ else if (attrName.startsWith("-"))
{
- sortOrder.add(new VLVSortOrder(attrNames[i].substring(1), false));
+ sortOrder.add(new VLVSortOrder(attrName.substring(1), false));
}
else
{
- sortOrder.add(new VLVSortOrder(attrNames[i], true));
+ sortOrder.add(new VLVSortOrder(attrName, true));
}
}
}
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java
index f86e06d..e66abf1 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/util/Utilities.java
@@ -93,6 +93,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.opendj.config.server.ConfigException;
import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.opends.guitools.controlpanel.ControlPanel;
import org.opends.guitools.controlpanel.browser.IconPool;
import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -114,12 +115,17 @@
import org.opends.quicksetup.util.Utils;
import org.opends.server.api.AttributeSyntax;
import org.opends.server.api.ConfigHandler;
-import org.forgerock.opendj.ldap.schema.MatchingRule;
import org.opends.server.config.ConfigEntry;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.LockFileManager;
import org.opends.server.schema.SchemaConstants;
-import org.opends.server.types.*;
+import org.opends.server.types.AttributeType;
+import org.opends.server.types.CommonSchemaElements;
+import org.opends.server.types.DN;
+import org.opends.server.types.OpenDsException;
+import org.opends.server.types.RDN;
+import org.opends.server.types.Schema;
+import org.opends.server.types.SchemaFileElement;
import org.opends.server.util.ServerConstants;
import org.opends.server.util.StaticUtils;
@@ -2480,16 +2486,7 @@
}
}
-
-
- /**
- * Returns the first value for a given attribute in the provided entry.
- * @param sr the entry. It may be <CODE>null</CODE>.
- * @param attrName the attribute name.
- * @return the first value for a given attribute in the provided entry.
- */
- public static Object getFirstMonitoringValue(CustomSearchResult sr,
- String attrName)
+ private static Object getFirstMonitoringValue(CustomSearchResult sr, String attrName)
{
if (sr != null)
{
@@ -2519,6 +2516,34 @@
}
/**
+ * Returns the first value as a String for a given attribute in the provided
+ * entry.
+ *
+ * @param sr
+ * the entry. It may be <CODE>null</CODE>.
+ * @param attrName
+ * the attribute name.
+ * @return the first value as a String for a given attribute in the provided
+ * entry.
+ */
+ public static String getFirstValueAsString(CustomSearchResult sr, String attrName)
+ {
+ if (sr != null)
+ {
+ final List<Object> values = sr.getAttributeValues(attrName);
+ if (values != null && !values.isEmpty())
+ {
+ final Object o = values.get(0);
+ if (o != null)
+ {
+ return String.valueOf(o);
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
* Returns the monitoring value in a String form to be displayed to the user.
* @param attr the attribute to analyze.
* @param monitoringEntry the monitoring entry.
@@ -2527,9 +2552,7 @@
public static String getMonitoringValue(MonitoringAttributes attr,
CustomSearchResult monitoringEntry)
{
- Object monitoringValue =
- Utilities.getFirstMonitoringValue(monitoringEntry,
- attr.getAttributeName());
+ String monitoringValue = getFirstValueAsString(monitoringEntry, attr.getAttributeName());
if (monitoringValue == null)
{
return NO_VALUE_SET.toString();
@@ -2540,46 +2563,42 @@
}
else if (attr.isNumericDate())
{
- if("0".equals(monitoringValue.toString()))
+ if ("0".equals(monitoringValue))
{
return NO_VALUE_SET.toString();
}
- else
- {
- Long l = Long.parseLong(monitoringValue.toString());
- Date date = new Date(l);
- return ConfigFromDirContext.formatter.format(date);
- }
+ Long l = Long.parseLong(monitoringValue);
+ Date date = new Date(l);
+ return ConfigFromDirContext.formatter.format(date);
}
else if (attr.isTime())
{
- if("-1".equals(monitoringValue.toString()))
+ if ("-1".equals(monitoringValue))
{
return NO_VALUE_SET.toString();
}
- return monitoringValue.toString();
+ return monitoringValue;
}
else if (attr.isGMTDate())
{
try
{
- Date date = ConfigFromDirContext.utcParser.parse(
- monitoringValue.toString());
+ Date date = ConfigFromDirContext.utcParser.parse(monitoringValue);
return ConfigFromDirContext.formatter.format(date);
}
catch (Throwable t)
{
- return monitoringValue.toString();
+ return monitoringValue;
}
}
else if (attr.isValueInBytes())
{
- Long l = Long.parseLong(monitoringValue.toString());
+ Long l = Long.parseLong(monitoringValue);
long mb = l / (1024 * 1024);
long kbs = (l - mb * 1024 * 1024) / 1024;
return INFO_CTRL_PANEL_MEMORY_VALUE.get(mb, kbs).toString();
}
- return monitoringValue.toString();
+ return monitoringValue;
}
/**
@@ -2593,13 +2612,12 @@
public static boolean isNotImplemented(MonitoringAttributes attr,
CustomSearchResult monitoringEntry)
{
- Object monitoringValue = Utilities.getFirstMonitoringValue(
- monitoringEntry, attr.getAttributeName());
+ String monitoringValue = getFirstValueAsString(monitoringEntry, attr.getAttributeName());
if (attr.isNumeric() && monitoringValue != null)
{
try
{
- Long.parseLong(String.valueOf(monitoringValue));
+ Long.parseLong(monitoringValue);
return false;
}
catch (Throwable t)
@@ -2750,4 +2768,125 @@
return false;
}
+ /**
+ * Computes the possible comparison results for monitoring information.
+ *
+ * @param monitor1
+ * the first monitor to compare
+ * @param monitor2
+ * the second monitor to compare
+ * @param possibleResults
+ * where possible results are output
+ * @param attrNames
+ * the names for which to compute possible comparison results
+ */
+ public static void computeMonitoringPossibleResults(CustomSearchResult monitor1, CustomSearchResult monitor2,
+ ArrayList<Integer> possibleResults, Collection<String> attrNames)
+ {
+ for (String attrName : attrNames)
+ {
+ int possibleResult;
+ if (monitor1 == null)
+ {
+ if (monitor2 == null)
+ {
+ possibleResult = 0;
+ }
+ else
+ {
+ possibleResult = -1;
+ }
+ }
+ else if (monitor2 == null)
+ {
+ possibleResult = 1;
+ }
+ else
+ {
+ Object v1 = getFirstValue(monitor1, attrName);
+ Object v2 = getFirstValue(monitor2, attrName);
+ if (v1 == null)
+ {
+ if (v2 == null)
+ {
+ possibleResult = 0;
+ }
+ else
+ {
+ possibleResult = -1;
+ }
+ }
+ else if (v2 == null)
+ {
+ possibleResult = 1;
+ }
+ else if (v1 instanceof Number)
+ {
+ if (v2 instanceof Number)
+ {
+ if ((v1 instanceof Double) || (v2 instanceof Double))
+ {
+ double n1 = ((Number) v1).doubleValue();
+ double n2 = ((Number) v2).doubleValue();
+ if (n1 > n2)
+ {
+ possibleResult = 1;
+ }
+ else if (n1 < n2)
+ {
+ possibleResult = -1;
+ }
+ else
+ {
+ possibleResult = 0;
+ }
+ }
+ else
+ {
+ long n1 = ((Number) v1).longValue();
+ long n2 = ((Number) v2).longValue();
+ if (n1 > n2)
+ {
+ possibleResult = 1;
+ }
+ else if (n1 < n2)
+ {
+ possibleResult = -1;
+ }
+ else
+ {
+ possibleResult = 0;
+ }
+ }
+ }
+ else
+ {
+ possibleResult = 1;
+ }
+ }
+ else if (v2 instanceof Number)
+ {
+ possibleResult = -1;
+ }
+ else
+ {
+ possibleResult = v1.toString().compareTo(v2.toString());
+ }
+ }
+ possibleResults.add(possibleResult);
+ }
+ }
+
+ private static Object getFirstValue(CustomSearchResult monitor, String attrName)
+ {
+ for (String attr : monitor.getAttributeNames())
+ {
+ if (attr.equalsIgnoreCase(attrName))
+ {
+ return getFirstMonitoringValue(monitor, attrName);
+ }
+ }
+ return null;
+ }
+
}
--
Gitblit v1.10.0