From 88cdfff756887b6d8d1cedc3bb6d5db82ecdac48 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 03 Feb 2014 15:46:52 +0000
Subject: [PATCH] Factorized a lot of String joining code into Utils.joinAsString().

---
 opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java                    |    6 
 opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java                       |    3 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java                       |    9 -
 opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java                          |    3 
 opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java                                          |   10 -
 opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java                           |    3 
 opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java                  |    3 
 opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartECLSessionMsg.java                  |    7 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/TaskTableModel.java                |    4 
 opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java                         |    3 
 opendj3-server-dev/src/server/org/opends/server/admin/client/cli/TaskScheduleArgs.java                        |   10 +
 opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java            |    4 
 opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java                         |    3 
 opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java                      |    3 
 opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java                   |    3 
 opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java                     |    3 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java              |   16 +-
 opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java                                         |   50 -------
 opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java                      |    3 
 opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java                                               |    6 
 opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java                              |    3 
 opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java             |   12 -
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java |    5 
 opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java                        |    3 
 opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java                                        |    3 
 opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartSessionMsg.java                     |    4 
 opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java                               |    4 
 opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java                             |    3 
 opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java                     |    4 
 opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java                           |    3 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/JavaArguments.java                                    |    6 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java                              |    7 
 opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java                                     |    4 
 opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java                       |    3 
 opendj3-server-dev/src/server/org/opends/server/replication/common/ServerState.java                           |    4 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java                  |    4 
 opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java                                       |   40 ------
 opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java       |    3 
 opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java                      |    3 
 opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java                                   |    3 
 opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java                              |    9 
 opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java                   |   56 +++------
 42 files changed, 124 insertions(+), 214 deletions(-)

diff --git a/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java b/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
index 549995f..716a285 100644
--- a/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
+++ b/opendj3-server-dev/src/ads/org/opends/admin/ads/ADSContext.java
@@ -27,6 +27,7 @@
 
 package org.opends.admin.ads;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.QuickSetupMessages.*;
 
 import java.io.File;
@@ -65,10 +66,8 @@
 
 import org.opends.admin.ads.util.ConnectionUtils;
 import org.opends.quicksetup.Constants;
-import org.opends.quicksetup.util.Utils;
 import org.opends.server.schema.SchemaConstants;
 
-
 /**
  * Class used to update and read the contents of the Administration Data.
  */
@@ -2642,8 +2641,7 @@
       LocalizableMessage msg = ERR_ADS_ADMINISTRATOR_MERGE.get(
           ConnectionUtils.getHostPort(adsCtx.getDirContext()),
           ConnectionUtils.getHostPort(getDirContext()),
-          Utils.getStringFromCollection(notDefinedAdmins,
-              Constants.LINE_SEPARATOR),
+          joinAsString(Constants.LINE_SEPARATOR, notDefinedAdmins),
           ConnectionUtils.getHostPort(getDirContext()));
       throw new ADSContextException(ADSContextException.ErrorType.ERROR_MERGING,
           msg, null);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/TaskTableModel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/TaskTableModel.java
index 6ae9a88..e6dbb55 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/TaskTableModel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/datamodel/TaskTableModel.java
@@ -26,6 +26,7 @@
  */
 package org.opends.guitools.controlpanel.datamodel;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.ToolMessages.*;
 
@@ -40,7 +41,6 @@
 import org.opends.guitools.controlpanel.ui.ColorAndFontConstants;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.quicksetup.util.Utils;
 import org.opends.server.backends.task.TaskState;
 import org.opends.server.tools.tasks.TaskEntry;
 
@@ -405,7 +405,7 @@
     }
     else
     {
-      String s = Utils.getStringFromCollection(values, "<br>");
+      String s = joinAsString("<br>", values);
       if (values.size() > 1)
       {
         msg = LocalizableMessage.raw(
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
index cae261d..53e0991 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/task/NewSchemaElementsTask.java
@@ -27,6 +27,7 @@
 
 package org.opends.guitools.controlpanel.task;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.AdminToolMessages.*;
 
 import java.io.File;
@@ -49,7 +50,6 @@
 import org.opends.guitools.controlpanel.ui.ProgressDialog;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.forgerock.i18n.LocalizableMessage;
-import org.opends.quicksetup.util.Utils;
 import org.opends.server.config.ConfigConstants;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.AttributeType;
@@ -178,19 +178,17 @@
       }
       if (ocNames.isEmpty())
       {
-        return INFO_CTRL_PANEL_NEW_ATTRIBUTES_TASK_DESCRIPTION.get(
-            Utils.getStringFromCollection(attrNames, ", "));
+        return INFO_CTRL_PANEL_NEW_ATTRIBUTES_TASK_DESCRIPTION.get(joinAsString(", ", attrNames));
       }
       else if (attrNames.isEmpty())
       {
-        return INFO_CTRL_PANEL_NEW_OBJECTCLASSES_TASK_DESCRIPTION.get(
-            Utils.getStringFromCollection(ocNames, ", "));
+        return INFO_CTRL_PANEL_NEW_OBJECTCLASSES_TASK_DESCRIPTION.get(joinAsString(", ", ocNames));
       }
       else
       {
         return INFO_CTRL_PANEL_NEW_SCHEMA_ELEMENTS_TASK_DESCRIPTION.get(
-            Utils.getStringFromCollection(attrNames, ", "),
-            Utils.getStringFromCollection(ocNames, ", "));
+            joinAsString(", ", attrNames),
+            joinAsString(", ", ocNames));
       }
     }
   }
@@ -602,7 +600,7 @@
       StringBuilder sb = new StringBuilder();
       sb.append(
           INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_ADD_SCHEMA_ELEMENT_OFFLINE.get(
-          Utils.getStringFromCollection(names, ", "),
+          joinAsString(", ", names),
           schemaFile))
         .append("<br><b>");
       for (AttributeType attribute : attributes)
@@ -624,7 +622,7 @@
     {
       StringBuilder sb = new StringBuilder();
       sb.append(INFO_CTRL_PANEL_EQUIVALENT_CMD_TO_ADD_SCHEMA_ENTRY_OFFLINE.get(
-          Utils.getStringFromCollection(names, ", "),
+          joinAsString(", ", names),
           schemaFile)).append("<br><b>");
       for (String line : getSchemaEntryLines())
       {
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
index 18381dc..889eb06 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/controlpanel/ui/ManageTasksPanel.java
@@ -27,6 +27,7 @@
 
 package org.opends.guitools.controlpanel.ui;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.server.util.StaticUtils.toLowerCase;
 
@@ -73,7 +74,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.TaskCellRenderer;
 import org.opends.guitools.controlpanel.util.ConfigFromFile;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.opends.quicksetup.util.Utils;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.tools.tasks.TaskEntry;
 import org.opends.server.types.Attribute;
@@ -484,7 +484,7 @@
           gbc.gridx = 1;
           gbc.insets.right = 10;
 
-          String s = Utils.getStringFromCollection(values, "\n");
+          String s = joinAsString("\n", values);
           detailsSubpanel.add(
               Utilities.makeHtmlPane(s, ColorAndFontConstants.defaultFont),
               gbc);
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
index 3be70a5..e63e321 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/UninstallCliHelper.java
@@ -24,7 +24,6 @@
  *      Copyright 2006-2010 Sun Microsystems, Inc.
  *      Portions Copyright 2014 ForgeRock AS
  */
-
 package org.opends.guitools.uninstaller;
 
 import org.opends.server.admin.client.cli.DsFrameworkCliReturnCode;
@@ -40,6 +39,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.QuickSetupMessages.*;
 
@@ -61,7 +61,6 @@
 import org.opends.server.util.cli.MenuBuilder;
 import org.opends.server.util.cli.MenuResult;
 
-
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Set;
@@ -408,11 +407,9 @@
                 INFO_CLI_UNINSTALL_CONFIRM_BACKUPS.get(),
                 INFO_CLI_UNINSTALL_CONFIRM_LDIFS.get(),
                 INFO_CLI_UNINSTALL_CONFIRM_OUTSIDEDBS.get(
-                        Utils.getStringFromCollection(outsideDbs,
-                                Constants.LINE_SEPARATOR)),
+                        joinAsString(Constants.LINE_SEPARATOR, outsideDbs)),
                 INFO_CLI_UNINSTALL_CONFIRM_OUTSIDELOGS.get(
-                        Utils.getStringFromCollection(outsideLogs,
-                                Constants.LINE_SEPARATOR)
+                        joinAsString(Constants.LINE_SEPARATOR, outsideLogs)
                 )
         };
 
diff --git a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
index 9fad5dc..ce8fe9e 100644
--- a/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
+++ b/opendj3-server-dev/src/guitools/org/opends/guitools/uninstaller/Uninstaller.java
@@ -29,6 +29,7 @@
 
 import org.opends.quicksetup.*;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.quicksetup.Step.FINISHED;
 import static org.opends.quicksetup.Step.PROGRESS;
 import static org.opends.quicksetup.Step.REVIEW;
@@ -672,10 +673,9 @@
         String arg;
         if (isWindows()) {
           arg = installation.getUninstallBatFile() + getLineBreak().toString() +
-                  getTab() + getStringFromCollection(paths,
-                      getLineBreak().toString());
+                  getTab() + joinAsString(getLineBreak().toString(), paths);
         } else {
-          arg = getStringFromCollection(paths, getLineBreak().toString());
+          arg = joinAsString(getLineBreak().toString(), paths);
         }
         successMsg =
             INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES_CLI
@@ -686,8 +686,7 @@
     } else {
       if (getUninstallUserData().getRemoveLibrariesAndTools()) {
         String formattedPath =
-          addWordBreaks(
-              getStringFromCollection(paths, getLineBreak().toString()), 60, 5);
+            addWordBreaks(joinAsString(getLineBreak().toString(), paths), 60, 5);
         successMsg =
             INFO_SUMMARY_UNINSTALL_FINISHED_SUCCESSFULLY_REMOVE_JARFILES
             .get(formattedPath);
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/JavaArguments.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/JavaArguments.java
index e3c15fe..0129707 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/JavaArguments.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/JavaArguments.java
@@ -33,8 +33,8 @@
 import org.opends.quicksetup.ui.UIFactory;
 import org.opends.quicksetup.util.Utils;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.QuickSetupMessages.*;
-import static org.opends.server.util.StaticUtils.*;
 
 /**
  * A class used to describe the java arguments for a given command-line.
@@ -249,7 +249,7 @@
       }
       else
       {
-        msg = LocalizableMessage.raw(collectionToString(lines, "<br>"));
+        msg = LocalizableMessage.raw(joinAsString("<br>", lines));
       }
     }
     return msg;
@@ -277,7 +277,7 @@
     {
       l.add(Utils.escapeCommandLineValue(arg));
     }
-    return Utils.getStringFromCollection(l, " ");
+    return joinAsString(" ", l);
   }
 
   /**
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
index b0ccaa7..e88046c 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/Installer.java
@@ -61,6 +61,7 @@
 import org.opends.server.util.SetupUtils;
 import org.opends.server.util.StaticUtils;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.QuickSetupMessages.*;
 import static org.opends.quicksetup.Step.*;
 import static org.opends.quicksetup.util.Utils.*;
@@ -1304,14 +1305,14 @@
       if (isVerbose())
       {
         mb.append(getFormattedProgress(INFO_PROGRESS_IMPORTING_LDIFS.get(
-            getStringFromCollection(ldifPaths, ", "))));
+            joinAsString(", ", ldifPaths))));
         mb.append(getLineBreak());
       }
       else
       {
         mb.append(getFormattedProgress(
             INFO_PROGRESS_IMPORTING_LDIFS_NON_VERBOSE.get(
-            getStringFromCollection(ldifPaths, ", "))));
+            joinAsString(", ", ldifPaths))));
       }
     }
     else
@@ -1501,7 +1502,7 @@
           ae = new ApplicationException(
               ReturnCode.IMPORT_ERROR,
               getThrowableMsg(INFO_ERROR_IMPORT_AUTOMATICALLY_GENERATED.get(
-                  listToString(argList, " "), t.getLocalizedMessage()), t),
+                  joinAsString(" ", argList), t.getLocalizedMessage()), t),
                   t);
         }
         finally
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
index 203b58a..76a2e33 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/installer/ui/InstallReviewPanel.java
@@ -29,6 +29,8 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
+
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.QuickSetupMessages.*;
 
 import org.opends.admin.ads.ServerDescriptor;
@@ -892,7 +894,7 @@
     else if (linesToAdd.size() > 1)
     {
       String arg0 = getJavaPropertiesFilePath(userData);
-      String arg1 = Utils.getStringFromCollection(linesToAdd, "\n");
+      String arg1 = joinAsString("\n", linesToAdd);
       sb.append(
           formatter.getFormattedProgress(INFO_EDIT_JAVA_PROPERTIES_LINES.get(
               arg0, arg1)));
diff --git a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
index e405c65..9c4fcd2 100644
--- a/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
+++ b/opendj3-server-dev/src/quicksetup/org/opends/quicksetup/util/Utils.java
@@ -26,6 +26,7 @@
  */
 package org.opends.quicksetup.util;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.QuickSetupMessages.*;
 import static org.opends.server.util.DynamicConstants.SHORT_NAME;
 
@@ -603,32 +604,6 @@
   }
 
   /**
-   * This is a helper method that gets a String representation of the elements
-   * in the Collection. The String will display the different elements separated
-   * by the separator String.
-   *
-   * @param col
-   *          the collection containing the String.
-   * @param separator
-   *          the separator String to be used.
-   * @return the String representation for the collection.
-   */
-  public static String getStringFromCollection(Collection<String> col,
-      String separator)
-  {
-    StringBuilder msg = new StringBuilder();
-    for (String m : col)
-    {
-      if (msg.length() > 0)
-      {
-        msg.append(separator);
-      }
-      msg.append(m);
-    }
-    return msg.toString();
-  }
-
-  /**
    * This is a helper method that gets a LocalizableMessage representation of the elements
    * in the Collection of Messages. The LocalizableMessage will display the different
    * elements separated by the separator String.
@@ -1273,17 +1248,6 @@
    * elements in the <code>list</code> separated by <code>separator</code>.
    * @param list the list to print
    * @param separator to use in separating elements
-   * @return String representing the list
-   */
-  static public String listToString(List<?> list, String separator) {
-    return listToString(list, separator, null, null);
-  }
-
-  /**
-   * Creates a string consisting of the string representation of the
-   * elements in the <code>list</code> separated by <code>separator</code>.
-   * @param list the list to print
-   * @param separator to use in separating elements
    * @param prefix prepended to each individual element in the list before
    *        adding to the returned string.
    * @param suffix appended to each individual element in the list before
@@ -1805,7 +1769,7 @@
       else if (options.getBaseDns().size() > 1)
       {
         msg = INFO_REVIEW_CREATE_SUFFIX.get(
-            Utils.listToString(options.getBaseDns(), Constants.LINE_SEPARATOR),
+            joinAsString(Constants.LINE_SEPARATOR, options.getBaseDns()),
             arg2);
       }
       else
diff --git a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/TaskScheduleArgs.java b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/TaskScheduleArgs.java
index 7f7e823..938433ab 100644
--- a/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/TaskScheduleArgs.java
+++ b/opendj3-server-dev/src/server/org/opends/server/admin/client/cli/TaskScheduleArgs.java
@@ -22,6 +22,7 @@
  *
  *
  *      Copyright 2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.admin.client.cli;
 
@@ -36,6 +37,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.forgerock.util.Utils;
 import org.opends.server.backends.task.FailedDependencyAction;
 import org.opends.server.backends.task.RecurringTask;
 import org.opends.server.types.DirectoryException;
@@ -141,9 +143,9 @@
         OPTION_SHORT_FAILED_DEPENDENCY_ACTION,
         OPTION_LONG_FAILED_DEPENDENCY_ACTION, false, true, true,
         INFO_ACTION_PLACEHOLDER.get(), null, null,
-        INFO_DESCRIPTION_TASK_FAILED_DEPENDENCY_ACTION.get(StaticUtils
-            .collectionToString(fdaValSet, ","), FailedDependencyAction
-            .defaultValue().name()));
+        INFO_DESCRIPTION_TASK_FAILED_DEPENDENCY_ACTION.get(
+            Utils.joinAsString(",", fdaValSet),
+            FailedDependencyAction.defaultValue().name()));
 
     for (Argument arg : getArguments())
     {
@@ -235,7 +237,7 @@
         Set<FailedDependencyAction> fdaValSet =
           EnumSet.allOf(FailedDependencyAction.class);
         throw new ArgumentException(ERR_TASKTOOL_INVALID_FDA.get(fda,
-                        StaticUtils.collectionToString(fdaValSet, ",")));
+            Utils.joinAsString(",", fdaValSet)));
       }
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index 510c42c..5e60c08 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -36,6 +36,7 @@
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.util.Utils;
 import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn;
 import org.opends.server.admin.std.meta.LocalDBIndexCfgDefn.IndexType;
 import org.opends.server.admin.std.server.LocalDBBackendCfg;
@@ -3198,7 +3199,7 @@
       default:
         if (!rebuildConfig.isClearDegradedState())
         {
-          String indexes = collectionToString(rebuildConfig.getRebuildList(), ", ");
+          String indexes = Utils.joinAsString(", ", rebuildConfig.getRebuildList());
           message = NOTE_JEB_REBUILD_START.get(indexes, totalEntries);
         }
         break;
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
index 4195b28..33b1cd9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AccessControlConfigManager.java
@@ -34,6 +34,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 import org.opends.server.admin.ClassPropertyDefinition;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.server.ServerManagementContext;
@@ -463,7 +464,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           // Bug: we are in a section where configuration is null
           throw new InitializationException(ERR_CONFIG_AUTHZ_CONFIG_NOT_ACCEPTABLE.get(
                   null /* WAS: configuration.dn() */, reasons));
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
index 99bac66..f26e06b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AccountStatusNotificationHandlerConfigManager.java
@@ -27,6 +27,7 @@
 package org.opends.server.core;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.util.Utils;
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -445,7 +446,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_ACCTNOTHANDLER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
index a60ce71..f3a891f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AlertHandlerConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -396,7 +397,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_ALERTHANDLER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
index a15642a..7b0f5dc 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/AttributeSyntaxConfigManager.java
@@ -43,6 +43,7 @@
 import org.opends.server.api.AttributeSyntax;
 import org.opends.server.config.ConfigException;
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.util.Utils;
 import org.opends.server.types.AttributeType;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DirectoryException;
@@ -475,7 +476,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_SCHEMA_SYNTAX_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
index a8476ca..010a4f8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/CertificateMapperConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -413,7 +414,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_CERTMAPPER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
index b16c486..ce47c56 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
@@ -87,6 +87,7 @@
 import org.opends.server.types.*;
 import org.opends.server.util.*;
 import org.forgerock.util.Reject;
+import org.forgerock.util.Utils;
 import org.opends.server.util.args.*;
 import org.opends.server.workflowelement.WorkflowElement;
 import org.opends.server.workflowelement.WorkflowElementConfigManager;
@@ -9650,8 +9651,7 @@
         BUILD_JVM_VERSION);
     System.out.println(SetupUtils.BUILD_JVM_VENDOR+separator+BUILD_JVM_VENDOR);
     System.out.println(SetupUtils.INCOMPATIBILITY_EVENTS+separator+
-        StaticUtils.listToString(
-            VersionCompatibilityIssue.getAllEvents(), ","));
+        Utils.joinAsString(",", VersionCompatibilityIssue.getAllEvents()));
 
     // Print extensions' extra information
     String extensionInformation =
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
index 5ac8f0e..816303c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/ExtensionConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -410,7 +411,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_EXTENSION_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
index f372ce4..9657e6c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/GroupManager.java
@@ -50,6 +50,7 @@
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.config.ConfigException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchOperation;
 import org.opends.server.protocols.ldap.LDAPControl;
@@ -462,7 +463,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reason = collectionToString(unacceptableReasons, ".  ");
+          String reason = Utils.joinAsString(".  ", unacceptableReasons);
           LocalizableMessage message = ERR_CONFIG_GROUP_CONFIG_NOT_ACCEPTABLE.get(
               configuration.dn(), reason);
           throw new InitializationException(message);
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
index beed978..ca25c57 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/IdentityMapperConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -422,7 +423,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_IDMAPPER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
index 62bdfb7..5d460d2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/KeyManagerProviderConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -412,7 +413,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_KEYMANAGER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
index 487923b..2fe19a8 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/MatchingRuleConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -619,7 +620,7 @@
                                              unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_SCHEMA_MR_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
index f22450a..0bbfd45 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordGeneratorConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -406,7 +407,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_PWGENERATOR_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
index f5496e6..5535507 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordStorageSchemeConfigManager.java
@@ -27,6 +27,7 @@
 package org.opends.server.core;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.util.Utils;
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -431,7 +432,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_PWSCHEME_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
index 27ada2f..ecd3526 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/PasswordValidatorConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -419,7 +420,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_PWVALIDATOR_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
index ef6d1d8..2df9f8a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/SASLConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -405,7 +406,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_SASL_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
index 24e3c05..ed2641d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/TrustManagerProviderConfigManager.java
@@ -28,6 +28,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -413,7 +414,7 @@
                                                      unacceptableReasons);
         if (! acceptable)
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           throw new InitializationException(
               ERR_CONFIG_TRUSTMANAGER_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), reasons));
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
index 865b2db..0601b9f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/VirtualAttributeConfigManager.java
@@ -43,6 +43,7 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.config.ConfigException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 import org.opends.server.types.*;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -462,7 +463,7 @@
         List<LocalizableMessage> unacceptableReasons = new ArrayList<LocalizableMessage>();
         if (!provider.isConfigurationAcceptable(cfg, unacceptableReasons))
         {
-          String reasons = collectionToString(unacceptableReasons, ".  ");
+          String reasons = Utils.joinAsString(".  ", unacceptableReasons);
           LocalizableMessage message = ERR_CONFIG_VATTR_CONFIG_NOT_ACCEPTABLE.get(cfg.dn(), reasons);
           throw new InitializationException(message);
         }
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
index 06f5a78..71d2656 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/networkgroups/NetworkGroupConfigManager.java
@@ -26,8 +26,6 @@
  */
 package org.opends.server.core.networkgroups;
 
-
-
 import static org.opends.messages.ConfigMessages.*;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,13 +41,11 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DN;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ResultCode;
-import org.opends.server.util.StaticUtils;
-
-
 
 /**
  * This class defines a utility that will be used to manage the
@@ -268,10 +264,8 @@
       if (!NetworkGroup.isConfigurationAcceptable(configuration,
           unacceptableReasons))
       {
-        LocalizableMessage message =
-            ERR_CONFIG_NETWORK_GROUP_CONFIG_NOT_ACCEPTABLE.get(configuration.dn(), StaticUtils.listToString(
-                unacceptableReasons, ". "));
-        throw new InitializationException(message);
+        throw new InitializationException(ERR_CONFIG_NETWORK_GROUP_CONFIG_NOT_ACCEPTABLE.get(
+            configuration.dn(), Utils.joinAsString(". ", unacceptableReasons)));
       }
 
       if (configuration.isEnabled())
diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java b/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
index 5102caf..ba27abb 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/ConfigFileHandler.java
@@ -49,6 +49,7 @@
 import org.forgerock.i18n.LocalizableMessageBuilder;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.util.Utils;
 import org.opends.server.admin.Configuration;
 import org.opends.server.api.AlertGenerator;
 import org.opends.server.api.ClientConnection;
@@ -1369,7 +1370,7 @@
 
       if (resultCode != ResultCode.SUCCESS)
       {
-        String reasons = StaticUtils.collectionToString(messages, ".  ");
+        String reasons = Utils.joinAsString(".  ", messages);
         LocalizableMessage message = ERR_CONFIG_FILE_DELETE_APPLY_FAILED.get(reasons);
         throw new DirectoryException(resultCode, message);
       }
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java
index fa50896..59c8ae9 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/TextHTTPAccessLogPublisher.java
@@ -41,6 +41,7 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.util.Utils;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.FileBasedHTTPAccessLogPublisherCfg;
 import org.opends.server.api.HTTPAccessLogPublisher;
@@ -269,7 +270,7 @@
     if (!unsupportedFields.isEmpty())
     { // there are some unsupported fields. List them.
       return WARN_CONFIG_LOGGING_UNSUPPORTED_FIELDS_IN_LOG_FORMAT.get(
-          cfg.dn(), collectionToString(unsupportedFields, ", "));
+          cfg.dn(), Utils.joinAsString(", ", unsupportedFields));
     }
     if (fields.size() == unsupportedFields.size())
     { // all fields are unsupported
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/common/ServerState.java b/opendj3-server-dev/src/server/org/opends/server/replication/common/ServerState.java
index d24f54f..7920de5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/common/ServerState.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/common/ServerState.java
@@ -37,7 +37,7 @@
 import org.opends.server.protocols.asn1.ASN1Writer;
 import org.opends.server.replication.protocol.ProtocolVersion;
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.util.StaticUtils;
+import org.forgerock.util.Utils;
 
 /**
  * This class is used to associate serverIds with {@link CSN}s.
@@ -317,7 +317,7 @@
   @Override
   public String toString()
   {
-    return StaticUtils.collectionToString(serverIdToCSN.values(), " ");
+    return Utils.joinAsString(" ", serverIdToCSN.values());
   }
 
   /**
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java
index 567a187..1fced5b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/plugin/FractionalLDIFImportPlugin.java
@@ -29,6 +29,7 @@
 import java.util.*;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.util.Utils;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.server.ServerManagementContext;
 import org.opends.server.admin.std.server.*;
@@ -41,7 +42,6 @@
 import org.opends.server.types.*;
 import static org.opends.messages.ReplicationMessages.*;
 import static org.opends.server.replication.plugin.LDAPReplicationDomain.*;
-import static org.opends.server.util.StaticUtils.*;
 
 /**
  * This class implements a Directory Server plugin that is used in fractional
@@ -469,7 +469,7 @@
   {
     if (values.size() > 0)
     {
-      attrBuilder.add(className + ":" + collectionToString(values, ","));
+      attrBuilder.add(className + ":" + Utils.joinAsString(",", values));
       return true;
     }
     return false;
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartECLSessionMsg.java b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartECLSessionMsg.java
index d23a0f1..d571546 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartECLSessionMsg.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartECLSessionMsg.java
@@ -22,7 +22,7 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
- *      Portions Copyright 2013 ForgeRock AS.
+ *      Portions Copyright 2013-2014 ForgeRock AS.
  */
 package org.opends.server.replication.protocol;
 
@@ -33,8 +33,8 @@
 import java.util.Set;
 import java.util.zip.DataFormatException;
 
+import org.forgerock.util.Utils;
 import org.opends.server.replication.common.CSN;
-import org.opends.server.util.StaticUtils;
 
 /**
  * This class specifies the parameters of a search request on the ECL.
@@ -244,8 +244,7 @@
   @Override
   public byte[] getBytes(short protocolVersion)
   {
-    String excludedBaseDNsString =
-        StaticUtils.collectionToString(excludedBaseDNs, ";");
+    String excludedBaseDNsString = Utils.joinAsString(";", excludedBaseDNs);
 
     try
     {
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartSessionMsg.java b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartSessionMsg.java
index 960cd6c..9528eac 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartSessionMsg.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StartSessionMsg.java
@@ -40,7 +40,7 @@
 import org.forgerock.opendj.ldap.ByteSequenceReader;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.opends.server.util.StaticUtils;
+import org.forgerock.util.Utils;
 
 /**
  * This message is used by DS to confirm a RS he wants to connect to him (open
@@ -371,7 +371,7 @@
   @Override
   public String toString()
   {
-    String urls = StaticUtils.collectionToString(referralsURLs, " | ");
+    String urls = Utils.joinAsString(" | ", referralsURLs);
     return "StartSessionMsg content:\nstatus: " + status +
       "\nassuredFlag: " + assuredFlag +
       "\nassuredMode: " + assuredMode +
diff --git a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
index 38ca65c..7f7308f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
+++ b/opendj3-server-dev/src/server/org/opends/server/replication/service/ReplicationBroker.java
@@ -47,6 +47,7 @@
 import org.opends.server.admin.std.server.ReplicationDomainCfg;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 import org.opends.server.replication.common.*;
 import org.opends.server.replication.plugin.MultimasterReplication;
 import org.opends.server.replication.protocol.*;
@@ -937,9 +938,8 @@
 
           if (replicationServerInfos.size() > 0)
           {
-            logger.warn(WARN_COULD_NOT_FIND_CHANGELOG.get(serverId, baseDN
-                .toNormalizedString(), collectionToString(
-                replicationServerInfos.keySet(), ", ")));
+            logger.warn(WARN_COULD_NOT_FIND_CHANGELOG.get(serverId, baseDN.toNormalizedString(),
+                Utils.joinAsString(", ", replicationServerInfos.keySet())));
           }
           else
           {
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
index 92ca864..aa26bd0 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/InstallDS.java
@@ -27,6 +27,7 @@
  */
 package org.opends.server.tools;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.QuickSetupMessages.*;
 import static org.opends.messages.ToolMessages.*;
@@ -771,8 +772,7 @@
       }
       if (nonExistingFiles.size() > 0)
       {
-        errorMessages.add(ERR_INSTALLDS_NO_SUCH_LDIF_FILE.get(
-            Utils.getStringFromCollection(nonExistingFiles, ", ")));
+        errorMessages.add(ERR_INSTALLDS_NO_SUCH_LDIF_FILE.get(joinAsString(", ", nonExistingFiles)));
       }
       String rejectedFile = argParser.rejectedImportFileArg.getValue();
       if (rejectedFile != null)
@@ -1278,8 +1278,7 @@
       if (nonExistingFiles.size() > 0)
       {
         println();
-        println(ERR_INSTALLDS_NO_SUCH_LDIF_FILE.get(
-            Utils.getStringFromCollection(nonExistingFiles, ", ")));
+        println(ERR_INSTALLDS_NO_SUCH_LDIF_FILE.get(joinAsString(", ", nonExistingFiles)));
       }
       while (importLDIFFiles.isEmpty())
       {
@@ -1942,8 +1941,7 @@
         else if (certManager.hasRealAliases())
         {
           Collections.addAll(nicknameList, aliases);
-          String aliasString = Utils.getStringFromCollection(nicknameList,
-              ", ");
+          String aliasString = joinAsString(", ", nicknameList);
           if (certNickname != null)
           {
             // Check if the certificate alias is in the list.
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index 93433cf..4ea97db 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -97,6 +97,7 @@
 
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 
+import static org.forgerock.util.Utils.*;
 import static org.opends.admin.ads.ServerDescriptor.*;
 import static org.opends.messages.AdminToolMessages.*;
 import static org.opends.messages.QuickSetupMessages.*;
@@ -878,7 +879,7 @@
     printlnProgress();
     LocalizableMessage msg = formatter.getFormattedProgress(
         INFO_PROGRESS_PURGE_HISTORICAL.get(separator,
-            Utils.getStringFromCollection(uData.getBaseDNs(), separator)));
+            joinAsString(separator, uData.getBaseDNs())));
     printProgress(msg);
     printlnProgress();
 
@@ -1366,8 +1367,7 @@
       {
         println();
         println(ERR_REPLICATION_PURGE_SUFFIXES_NOT_FOUND.get(
-                Utils.getStringFromCollection(notFound,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, notFound)));
       }
       if (interactive)
       {
@@ -4836,10 +4836,8 @@
       if (userProvidedReplicatedSuffixes.size() > 0)
       {
         println();
-        println(
-            INFO_ALREADY_REPLICATED_SUFFIXES.get(
-                Utils.getStringFromCollection(userProvidedReplicatedSuffixes,
-                    Constants.LINE_SEPARATOR)));
+        println(INFO_ALREADY_REPLICATED_SUFFIXES.get(
+            joinAsString(Constants.LINE_SEPARATOR, userProvidedReplicatedSuffixes)));
       }
       suffixes.clear();
     }
@@ -4886,15 +4884,13 @@
       {
         println();
         println(ERR_REPLICATION_ENABLE_SUFFIXES_NOT_FOUND.get(
-              Utils.getStringFromCollection(notFound,
-                  Constants.LINE_SEPARATOR)));
+              joinAsString(Constants.LINE_SEPARATOR, notFound)));
       }
       if (alreadyReplicated.size() > 0)
       {
         println();
         println(INFO_ALREADY_REPLICATED_SUFFIXES.get(
-            Utils.getStringFromCollection(alreadyReplicated,
-                Constants.LINE_SEPARATOR)));
+            joinAsString(Constants.LINE_SEPARATOR, alreadyReplicated)));
       }
       if (interactive)
       {
@@ -5016,9 +5012,7 @@
       {
         println();
         println(INFO_ALREADY_NOT_REPLICATED_SUFFIXES.get(
-            Utils.getStringFromCollection(
-                userProvidedNotReplicatedSuffixes,
-                Constants.LINE_SEPARATOR)));
+            joinAsString(Constants.LINE_SEPARATOR, userProvidedNotReplicatedSuffixes)));
       }
       suffixes.clear();
     }
@@ -5065,15 +5059,13 @@
       {
         println();
         println(ERR_REPLICATION_DISABLE_SUFFIXES_NOT_FOUND.get(
-                Utils.getStringFromCollection(notFound,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, notFound)));
       }
       if (alreadyNotReplicated.size() > 0 && displayErrors)
       {
         println();
         println(INFO_ALREADY_NOT_REPLICATED_SUFFIXES.get(
-                Utils.getStringFromCollection(alreadyNotReplicated,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, alreadyNotReplicated)));
       }
       if (interactive)
       {
@@ -5205,9 +5197,7 @@
       {
         println();
         println(INFO_ALREADY_NOT_REPLICATED_SUFFIXES.get(
-            Utils.getStringFromCollection(
-                userProvidedNotReplicatedSuffixes,
-                Constants.LINE_SEPARATOR)));
+            joinAsString(Constants.LINE_SEPARATOR, userProvidedNotReplicatedSuffixes)));
       }
       suffixes.clear();
     }
@@ -5254,15 +5244,13 @@
       {
         println();
         println(ERR_REPLICATION_INITIALIZE_LOCAL_SUFFIXES_NOT_FOUND.get(
-                Utils.getStringFromCollection(notFound,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, notFound)));
       }
       if (alreadyNotReplicated.size() > 0)
       {
         println();
         println(INFO_ALREADY_NOT_REPLICATED_SUFFIXES.get(
-                Utils.getStringFromCollection(alreadyNotReplicated,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, alreadyNotReplicated)));
       }
       if (interactive)
       {
@@ -5414,8 +5402,7 @@
       {
         println();
         println(ERR_SUFFIXES_CANNOT_BE_INITIALIZED.get(
-                Utils.getStringFromCollection(notFound,
-                    Constants.LINE_SEPARATOR)));
+                joinAsString(Constants.LINE_SEPARATOR, notFound)));
       }
       if (interactive)
       {
@@ -5604,8 +5591,7 @@
     {
       LocalizableMessage errorMsg =
         ERR_REPLICATION_NO_REPLICATION_SERVER.get(
-            Utils.getStringFromCollection(baseDNsWithNoReplicationServer,
-                Constants.LINE_SEPARATOR));
+            joinAsString(Constants.LINE_SEPARATOR, baseDNsWithNoReplicationServer));
       throw new ReplicationCliException(
           errorMsg,
           ReplicationCliReturnCode.ERROR_USER_DATA, null);
@@ -5616,8 +5602,7 @@
       {
         LocalizableMessage confirmMsg =
           INFO_REPLICATION_ONLY_ONE_REPLICATION_SERVER_CONFIRM.get(
-              Utils.getStringFromCollection(baseDNsWithOneReplicationServer,
-                  Constants.LINE_SEPARATOR));
+              joinAsString(Constants.LINE_SEPARATOR, baseDNsWithOneReplicationServer));
         try
         {
           if (!confirmAction(confirmMsg, false))
@@ -5638,8 +5623,7 @@
       {
         LocalizableMessage warningMsg =
           INFO_REPLICATION_ONLY_ONE_REPLICATION_SERVER_WARNING.get(
-              Utils.getStringFromCollection(baseDNsWithOneReplicationServer,
-                  Constants.LINE_SEPARATOR));
+              joinAsString(Constants.LINE_SEPARATOR, baseDNsWithOneReplicationServer));
         println(warningMsg);
         println();
       }
@@ -6397,8 +6381,7 @@
         }
         if (!baseDNs.isEmpty())
         {
-          String arg =
-            Utils.getStringFromCollection(baseDNs, Constants.LINE_SEPARATOR);
+          String arg = joinAsString(Constants.LINE_SEPARATOR, baseDNs);
           if (!isInteractive())
           {
             println(INFO_DISABLE_REPLICATION_ONE_POINT_OF_FAILURE.get(arg));
@@ -6484,8 +6467,7 @@
 
         if (!suffixArg.isEmpty())
         {
-          String arg =
-            Utils.getStringFromCollection(suffixArg, Constants.LINE_SEPARATOR);
+          String arg = joinAsString(Constants.LINE_SEPARATOR, suffixArg);
           if (!isInteractive())
           {
             println(INFO_DISABLE_REPLICATION_DISABLE_IN_REMOTE.get(arg));
diff --git a/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java b/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
index be3c007..3140a67 100644
--- a/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
+++ b/opendj3-server-dev/src/server/org/opends/server/types/VirtualAttributeRule.java
@@ -35,8 +35,8 @@
 import org.opends.server.api.VirtualAttributeProvider;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.util.Utils;
 
-import static org.opends.server.util.StaticUtils.*;
 import static org.forgerock.util.Reject.*;
 
 /**
@@ -389,7 +389,7 @@
     if (!col.isEmpty())
     {
       buffer.append("\"");
-      buffer.append(collectionToString(col, "\", \""));
+      buffer.append(Utils.joinAsString("\", \"", col));
       buffer.append("\"");
     }
   }
diff --git a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
index 7c08fbb..c2a344a 100644
--- a/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
+++ b/opendj3-server-dev/src/server/org/opends/server/util/StaticUtils.java
@@ -43,17 +43,17 @@
 import javax.naming.NamingException;
 import javax.naming.ldap.InitialLdapContext;
 
-import org.forgerock.util.Reject;
 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.ByteSequence;
+import org.forgerock.util.Reject;
 import org.opends.messages.ToolMessages;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ServerContext;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ByteSequence;
 import org.opends.server.util.args.Argument;
 import org.opends.server.util.args.ArgumentException;
 
@@ -3378,50 +3378,6 @@
   }
 
   /**
-   * Creates a string representation of the elements in the
-   * <code>list</code> separated by <code>separator</code>.
-   *
-   * @param list the list to print
-   * @param separator to use between elements
-   *
-   * @return String representing the list
-   */
-  static public String listToString(List<?> list, String separator)
-  {
-    StringBuilder sb = new StringBuilder();
-    for (int i = 0; i < list.size(); i++) {
-      sb.append(list.get(i));
-      if (i < list.size() - 1) {
-        sb.append(separator);
-      }
-    }
-    return sb.toString();
-  }
-
-  /**
-   * Creates a string representation of the elements in the
-   * <code>collection</code> separated by <code>separator</code>.
-   *
-   * @param collection to print
-   * @param separator to use between elements
-   *
-   * @return String representing the collection
-   */
-  static public String collectionToString(Collection<?> collection,
-                                          String separator)
-  {
-    StringBuilder sb = new StringBuilder();
-    for (Iterator<?> iter = collection.iterator(); iter.hasNext();) {
-      sb.append(iter.next());
-      if (iter.hasNext()) {
-        sb.append(separator);
-      }
-    }
-    return sb.toString();
-  }
-
-
-  /**
    * Retrieves an array list containing the contents of the provided array.
    *
    * @param  stringArray  The string array to convert to an array list.
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index a52efef..47a897c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -52,6 +52,7 @@
 import org.opends.server.types.operation.PostSynchronizationModifyOperation;
 import org.opends.server.types.operation.PreOperationModifyOperation;
 import org.forgerock.util.Reject;
+import org.forgerock.util.Utils;
 
 /**
  * This class defines an operation used to modify an entry in a local backend
@@ -1444,7 +1445,7 @@
     modifiedEntry.addAttribute(attr, duplicateValues);
     if (!duplicateValues.isEmpty() && !permissiveModify)
     {
-      String duplicateValuesStr = collectionToString(duplicateValues, ", ");
+      String duplicateValuesStr = Utils.joinAsString(", ", duplicateValues);
 
       throw newDirectoryException(currentEntry,
           ResultCode.ATTRIBUTE_OR_VALUE_EXISTS,
@@ -1541,7 +1542,7 @@
       {
         if (! permissiveModify)
         {
-          String missingValuesStr = collectionToString(missingValues, ", ");
+          String missingValuesStr = Utils.joinAsString(", ", missingValues);
 
           throw newDirectoryException(currentEntry,
               ResultCode.NO_SUCH_ATTRIBUTE,

--
Gitblit v1.10.0