From 8170a25a086fb89f90a2b2b8613e7b7d82a47208 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 08 Aug 2013 13:37:11 +0000
Subject: [PATCH] Big refactoring of ReplicationDB to make it readable. Changed count() return type from int to long. Removed a useless parameter from ReplicationIterator ctor. Various code cleanups in other classes.

---
 opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java |  106 ++++++++++++++++++++++++----------------------------
 1 files changed, 49 insertions(+), 57 deletions(-)

diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
index 6d3561d..a554143 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
@@ -32,34 +32,9 @@
 import static org.opends.server.util.StaticUtils.*;
 import static org.testng.Assert.*;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayOutputStream;
-import java.io.DataInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.StringReader;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.net.SocketAddress;
-import java.net.SocketException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
+import java.io.*;
+import java.net.*;
+import java.util.*;
 import java.util.logging.ConsoleHandler;
 import java.util.logging.Handler;
 import java.util.logging.LogManager;
@@ -74,22 +49,13 @@
 import org.opends.server.api.Backend;
 import org.opends.server.api.WorkQueue;
 import org.opends.server.backends.MemoryBackend;
-import org.opends.server.backends.jeb.BackendImpl;
-import org.opends.server.backends.jeb.DatabaseContainer;
-import org.opends.server.backends.jeb.EntryContainer;
-import org.opends.server.backends.jeb.Index;
-import org.opends.server.backends.jeb.RootContainer;
+import org.opends.server.backends.jeb.*;
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.AccessLogger;
-import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.HTTPAccessLogger;
-import org.opends.server.loggers.TextAccessLogPublisher;
-import org.opends.server.loggers.TextErrorLogPublisher;
-import org.opends.server.loggers.TextHTTPAccessLogPublisher;
+import org.opends.server.loggers.*;
 import org.opends.server.loggers.debug.DebugLogger;
 import org.opends.server.loggers.debug.TextDebugLogPublisher;
 import org.opends.server.plugins.InvocationCounterPlugin;
@@ -103,19 +69,8 @@
 import org.opends.server.protocols.ldap.LDAPReader;
 import org.opends.server.tools.LDAPModify;
 import org.opends.server.tools.dsconfig.DSConfig;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.AttributeTypeConstants;
-import org.opends.server.types.ByteString;
-import org.opends.server.types.DN;
-import org.opends.server.types.DirectoryEnvironmentConfig;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.Entry;
+import org.opends.server.types.*;
 import org.opends.server.types.FilePermission;
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.LDIFImportConfig;
-import org.opends.server.types.OperatingSystem;
-import org.opends.server.types.ResultCode;
-import org.opends.server.types.Schema;
 import org.opends.server.util.BuildVersion;
 import org.opends.server.util.EmbeddedUtils;
 import org.opends.server.util.LDIFReader;
@@ -790,8 +745,7 @@
   private static ServerSocket bindPort(int port)
           throws IOException
   {
-    ServerSocket serverLdapSocket;
-    serverLdapSocket = new ServerSocket();
+    ServerSocket serverLdapSocket = new ServerSocket();
     serverLdapSocket.setReuseAddress(true);
     serverLdapSocket.bind(new InetSocketAddress("127.0.0.1", port));
     return serverLdapSocket;
@@ -806,10 +760,48 @@
    */
   public static ServerSocket bindFreePort() throws IOException
   {
-    ServerSocket serverLdapSocket = new ServerSocket();
-    serverLdapSocket.setReuseAddress(true);
-    serverLdapSocket.bind(new InetSocketAddress("127.0.0.1", 0));
-    return serverLdapSocket;
+    return bindPort(0);
+  }
+
+  /**
+   * Find a free port on the local host.
+   * 
+   * @throws IOException
+   *           in case of underlying exception.
+   * @return the free port number found
+   */
+  public static int findFreePort() throws IOException
+  {
+    return findFreePorts(1)[0];
+  }
+
+  /**
+   * Find nb free ports on the local host.
+   *
+   * @param nb
+   *          the number of free ports to find
+   * @throws IOException
+   *           in case of underlying exception.
+   * @return an array with the free port numbers found
+   */
+  public static int[] findFreePorts(int nb) throws IOException
+  {
+    final ServerSocket[] sockets = new ServerSocket[nb];
+    try
+    {
+      final int[] ports = new int[nb];
+      for (int i = 0; i < nb; i++)
+      {
+        final ServerSocket socket = bindFreePort();
+        sockets[i] = socket;
+        ports[i] = socket.getLocalPort();
+      }
+      return ports;
+    }
+    finally
+    {
+      close(sockets);
+    }
   }
 
   /**

--
Gitblit v1.10.0