From 6d2dab657d824fb82d6c58a17517cd8f1c47c70f Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 20 Apr 2016 10:14:14 +0000
Subject: [PATCH] Remove warning during build: Added generic type arguments

---
 opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java                        |   29 --
 opendj-server-legacy/src/test/java/org/opends/server/backends/GenericBackendTestCase.java             |    5 
 opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java                        |  441 +++++++++++++++---------------------
 opendj-server-legacy/src/main/java/org/opends/server/types/DirectoryConfig.java                       |  124 ---------
 opendj-server-legacy/src/test/java/org/opends/server/protocols/jmx/JmxTestCase.java                   |    6 
 opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java        |   39 +-
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java |    5 
 opendj-server-legacy/src/main/java/org/opends/server/core/BaseDnRegistry.java                         |   52 +---
 8 files changed, 242 insertions(+), 459 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
index 4507d11..c304230 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciListenerManager.java
@@ -309,9 +309,10 @@
     this.plugin = new AciChangeListenerPlugin();
 
     // Process ACI from already registered backends.
-    Map<String, Backend> backendMap = DirectoryServer.getBackends();
+    Map<String, Backend<?>> backendMap = DirectoryServer.getBackends();
     if (backendMap != null) {
-      for (Backend backend : backendMap.values()) {
+      for (Backend<?> backend : backendMap.values())
+      {
         performBackendPreInitializationProcessing(backend);
       }
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/BaseDnRegistry.java b/opendj-server-legacy/src/main/java/org/opends/server/core/BaseDnRegistry.java
index 1e21aa4..eace481 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/BaseDnRegistry.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/BaseDnRegistry.java
@@ -16,32 +16,31 @@
  */
 package org.opends.server.core;
 
+import static org.forgerock.util.Reject.*;
+import static org.opends.messages.CoreMessages.*;
+
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.api.Backend;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 
-import static org.forgerock.util.Reject.*;
-import static org.opends.messages.CoreMessages.*;
-
 /**
  * Registry for maintaining the set of registered base DN's, associated backends
  * and naming context information.
  */
 public class BaseDnRegistry {
-
   /** The set of base DNs registered with the server. */
-  private final TreeMap<DN, Backend> baseDNs = new TreeMap<>();
+  private final TreeMap<DN, Backend<?>> baseDNs = new TreeMap<>();
   /** The set of private naming contexts registered with the server. */
-  private final TreeMap<DN, Backend> privateNamingContexts = new TreeMap<>();
+  private final TreeMap<DN, Backend<?>> privateNamingContexts = new TreeMap<>();
   /** The set of public naming contexts registered with the server. */
-  private final TreeMap<DN, Backend> publicNamingContexts = new TreeMap<>();
+  private final TreeMap<DN, Backend<?>> publicNamingContexts = new TreeMap<>();
 
   /**
    * Indicates whether or not this base DN registry is in test mode.
@@ -73,7 +72,6 @@
       throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
     }
 
-
     // Check to see if the backend is already registered with the server for
     // any other base DN(s).  The new base DN must not have any hierarchical
     // relationship with any other base Dns for the same backend.
@@ -94,7 +92,6 @@
       }
     }
 
-
     // Check to see if the new base DN is subordinate to any other base DN
     // already defined.  If it is, then any other base DN(s) for the same
     // backend must also be subordinate to the same base DN.
@@ -106,7 +103,6 @@
       throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
     }
 
-
     // Check to see if the new base DN should be the superior base DN for any
     // other base DN(s) already defined.
     LinkedList<Backend<?>> subordinateBackends = new LinkedList<>();
@@ -132,7 +128,6 @@
       }
     }
 
-
     // If we've gotten here, then the new base DN is acceptable.  If we should
     // actually apply the changes then do so now.
     final List<LocalizableMessage> errors = new LinkedList<>();
@@ -152,7 +147,6 @@
           get(superiorBackend.getBackendID(), baseDN, backend.getBackendID()));
     }
 
-
     baseDNs.put(baseDN, backend);
 
     if (superiorBackend == null)
@@ -228,7 +222,6 @@
     return superiorBackend;
   }
 
-
   /**
    * Deregisters a base DN with this registry.
    *
@@ -253,7 +246,6 @@
       throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
     }
 
-
     // Check to see if the backend has a parent backend, and whether it has
     // any subordinates with base DNs that are below the base DN to remove.
     Backend<?>             superiorBackend     = backend.getParentBackend();
@@ -273,7 +265,6 @@
       }
     }
 
-
     // See if there are any other base DNs registered within the same backend.
     LinkedList<DN> otherBaseDNs = new LinkedList<>();
     for (DN dn : baseDNs.keySet())
@@ -290,7 +281,6 @@
       }
     }
 
-
     // If we've gotten here, then it's OK to make the changes.
 
     // Get rid of the references to this base DN in the mapping tree
@@ -334,7 +324,6 @@
         superiorBackend.removeSubordinateBackend(backend);
       }
 
-
       // If there are any subordinate backends, then they need to be made
       // subordinate to the parent backend.  Also, we should log a warning
       // message indicating that there may be inconsistent search results
@@ -361,10 +350,7 @@
     return errors;
   }
 
-
-  /**
-   * Creates a default instance.
-   */
+  /** Creates a default instance. */
   BaseDnRegistry()
   {
     this(false);
@@ -384,7 +370,6 @@
     return registry;
   }
 
-
   /**
    * Creates a parameterized instance.
    *
@@ -396,41 +381,38 @@
     this.testOnly = testOnly;
   }
 
-
   /**
    * Gets the mapping of registered base DNs to their associated backend.
    *
    * @return mapping from base DN to backend
    */
-  Map<DN,Backend> getBaseDnMap() {
+  Map<DN, Backend<?>> getBaseDnMap()
+  {
     return this.baseDNs;
   }
 
-
   /**
    * Gets the mapping of registered public naming contexts to their
    * associated backend.
    *
    * @return mapping from naming context to backend
    */
-  Map<DN,Backend> getPublicNamingContextsMap() {
+  Map<DN, Backend<?>> getPublicNamingContextsMap()
+  {
     return this.publicNamingContexts;
   }
 
-
   /**
    * Gets the mapping of registered private naming contexts to their
    * associated backend.
    *
    * @return mapping from naming context to backend
    */
-  Map<DN,Backend> getPrivateNamingContextsMap() {
+  Map<DN, Backend<?>> getPrivateNamingContextsMap()
+  {
     return this.privateNamingContexts;
   }
 
-
-
-
   /**
    * Indicates whether the specified DN is contained in this registry as
    * a naming contexts.
@@ -445,14 +427,10 @@
     return privateNamingContexts.containsKey(dn) || publicNamingContexts.containsKey(dn);
   }
 
-
-  /**
-   * Clear and nullify this registry's internal state.
-   */
+  /** Clear and nullify this registry's internal state. */
   void clear() {
     baseDNs.clear();
     privateNamingContexts.clear();
     publicNamingContexts.clear();
   }
-
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index 6da1116..8757b9b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -293,11 +293,11 @@
   private ConfigurationHandler configurationHandler;
 
   /** The set of account status notification handlers defined in the server. */
-  private ConcurrentMap<DN, AccountStatusNotificationHandler>
+  private ConcurrentMap<DN, AccountStatusNotificationHandler<?>>
                accountStatusNotificationHandlers;
 
   /** The set of certificate mappers registered with the server. */
-  private ConcurrentMap<DN, CertificateMapper> certificateMappers;
+  private ConcurrentMap<DN, CertificateMapper<?>> certificateMappers;
 
   /** The set of alternate bind DNs for the root users. */
   private ConcurrentMap<DN, DN> alternateRootBindDNs;
@@ -306,23 +306,23 @@
    * The set of identity mappers registered with the server (mapped between the
    * configuration entry Dn and the mapper).
    */
-  private ConcurrentMap<DN, IdentityMapper> identityMappers;
+  private ConcurrentMap<DN, IdentityMapper<?>> identityMappers;
 
   /**
    * The set of JMX MBeans that have been registered with the server (mapped
    * between the associated configuration entry DN and the MBean).
    */
-  private ConcurrentHashMap<DN,JMXMBean> mBeans;
+  private ConcurrentHashMap<DN, JMXMBean> mBeans;
 
   /** The set of key manager providers registered with the server. */
-  private ConcurrentMap<DN, KeyManagerProvider> keyManagerProviders;
+  private ConcurrentMap<DN, KeyManagerProvider<?>> keyManagerProviders;
 
   /**
    * The set of password generators registered with the Directory Server, as a
    * mapping between the DN of the associated configuration entry and the
    * generator implementation.
    */
-  private ConcurrentMap<DN, PasswordGenerator> passwordGenerators;
+  private ConcurrentMap<DN, PasswordGenerator<?>> passwordGenerators;
 
   /**
    * The set of authentication policies registered with the Directory Server, as
@@ -336,90 +336,79 @@
    * mapping between the DN of the associated configuration entry and the
    * validator implementation.
    */
-  private ConcurrentMap<DN, PasswordValidator<? extends PasswordValidatorCfg>>
-               passwordValidators;
+  private ConcurrentMap<DN, PasswordValidator<? extends PasswordValidatorCfg>> passwordValidators;
 
   /** The set of trust manager providers registered with the server. */
-  private ConcurrentMap<DN, TrustManagerProvider> trustManagerProviders;
+  private ConcurrentMap<DN, TrustManagerProvider<?>> trustManagerProviders;
 
   /**
    * The set of log rotation policies registered with the Directory Server, as a
    * mapping between the DN of the associated configuration entry and the policy
    * implementation.
    */
-  private ConcurrentMap<DN, RotationPolicy> rotationPolicies;
+  private ConcurrentMap<DN, RotationPolicy<?>> rotationPolicies;
 
   /**
    * The set of log retention policies registered with the Directory Server, as
    * a mapping between the DN of the associated configuration entry and the
    * policy implementation.
    */
-  private ConcurrentMap<DN, RetentionPolicy> retentionPolicies;
+  private ConcurrentMap<DN, RetentionPolicy<?>> retentionPolicies;
 
   /** The set supported LDAP protocol versions. */
-  private ConcurrentMap<Integer, List<ConnectionHandler>>
-               supportedLDAPVersions;
+  private ConcurrentMap<Integer, List<ConnectionHandler<?>>> supportedLDAPVersions;
 
   /**
    * The set of extended operation handlers registered with the server (mapped
    * between the OID of the extended operation and the handler).
    */
-  private ConcurrentMap<String, ExtendedOperationHandler>
-               extendedOperationHandlers;
+  private ConcurrentMap<String, ExtendedOperationHandler<?>> extendedOperationHandlers;
 
   /**
    * The set of monitor providers registered with the Directory Server, as a
    * mapping between the monitor name and the corresponding implementation.
    */
-  private ConcurrentMap<String, MonitorProvider<? extends MonitorProviderCfg>>
-               monitorProviders;
+  private ConcurrentMap<String, MonitorProvider<? extends MonitorProviderCfg>> monitorProviders;
 
   /**
    * The set of password storage schemes defined in the server (mapped between
    * the lowercase scheme name and the storage scheme) that support the
    * authentication password syntax.
    */
-  private ConcurrentHashMap<String,PasswordStorageScheme>
-               authPasswordStorageSchemes;
+  private ConcurrentHashMap<String, PasswordStorageScheme<?>> authPasswordStorageSchemes;
 
   /**
    * The set of password storage schemes defined in the server (mapped between
    * the lowercase scheme name and the storage scheme).
    */
-  private ConcurrentHashMap<String,PasswordStorageScheme>
-               passwordStorageSchemes;
+  private ConcurrentHashMap<String, PasswordStorageScheme<?>> passwordStorageSchemes;
 
   /**
    * The set of password storage schemes defined in the server (mapped between
    * the DN of the configuration entry and the storage scheme).
    */
-  private ConcurrentMap<DN, PasswordStorageScheme>
-               passwordStorageSchemesByDN;
+  private ConcurrentMap<DN, PasswordStorageScheme<?>> passwordStorageSchemesByDN;
 
   /**
    * The set of SASL mechanism handlers registered with the server (mapped
    * between the mechanism name and the handler).
    */
-  private ConcurrentMap<String, SASLMechanismHandler> saslMechanismHandlers;
+  private ConcurrentMap<String, SASLMechanismHandler<?>> saslMechanismHandlers;
 
   /** The connection handler configuration manager for the Directory Server. */
   private ConnectionHandlerConfigManager connectionHandlerConfigManager;
 
   /** The set of alert handlers registered with the Directory Server. */
-  private List<AlertHandler> alertHandlers;
+  private List<AlertHandler<?>> alertHandlers;
+  /** The set of connection handlers registered with the Directory Server. */
+  private List<ConnectionHandler<?>> connectionHandlers;
 
   /** The set of backup task listeners registered with the Directory Server. */
   private CopyOnWriteArrayList<BackupTaskListener> backupTaskListeners;
-
-  /** The set of connection handlers registered with the Directory Server. */
-  private List<ConnectionHandler> connectionHandlers;
-
   /** The set of export task listeners registered with the Directory Server. */
   private CopyOnWriteArrayList<ExportTaskListener> exportTaskListeners;
-
   /** The set of import task listeners registered with the Directory Server. */
   private CopyOnWriteArrayList<ImportTaskListener> importTaskListeners;
-
   /** The set of restore task listeners registered with the Directory Server. */
   private CopyOnWriteArrayList<RestoreTaskListener> restoreTaskListeners;
 
@@ -427,8 +416,7 @@
    * The set of initialization completed listeners that have been registered
    * with the Directory Server.
    */
-  private List<InitializationCompletedListener>
-          initializationCompletedListeners;
+  private List<InitializationCompletedListener> initializationCompletedListeners;
 
   /** The set of shutdown listeners that have been registered with the Directory Server. */
   private List<ServerShutdownListener> shutdownListeners;
@@ -468,7 +456,7 @@
   private DN schemaDN;
 
   /** The Directory Server entry cache. */
-  private EntryCache entryCache;
+  private EntryCache<?> entryCache;
 
   /** The configuration manager for the entry cache. */
   private EntryCacheConfigManager entryCacheConfigManager;
@@ -646,7 +634,7 @@
   private final VirtualAttributeConfigManager virtualAttributeConfigManager;
 
   /** The work queue that will be used to service client requests. */
-  private WorkQueue workQueue;
+  private WorkQueue<?> workQueue;
 
   /** The writability mode for the Directory Server. */
   private WritabilityMode writabilityMode;
@@ -1170,7 +1158,7 @@
       // matching rules and attribute syntaxes.
       try
       {
-        directoryServer.setSchema(new Schema(org.forgerock.opendj.ldap.schema.Schema.getCoreSchema()));
+        setSchema(new Schema(org.forgerock.opendj.ldap.schema.Schema.getCoreSchema()));
       }
       catch (DirectoryException unexpected)
       {
@@ -2325,7 +2313,7 @@
    * @param  lowerName  The lowercase name or OID for the matching rule to
    *                    retrieve.
    *
-   * @return  The requested matching rule, or <CODE>null</CODE> if no such
+   * @return  The requested matching rule, or {@code null} if no such
    *          matching rule has been defined in the server.
    */
   public static MatchingRule getMatchingRule(String lowerName)
@@ -2382,7 +2370,7 @@
    * @param  lowerName  The lowercase name or OID for the objectclass to
    *                    retrieve.
    *
-   * @return  The requested objectclass, or <CODE>null</CODE> if there is no
+   * @return  The requested objectclass, or {@code null} if there is no
    *          such objectclass defined in the server schema.
    */
   public static ObjectClass getObjectClass(String lowerName)
@@ -2401,7 +2389,7 @@
    *                        the requested objectclass is not defined in the
    *                        server schema.
    *
-   * @return  The objectclass type, or <CODE>null</CODE> if there is no
+   * @return  The objectclass type, or {@code null} if there is no
    *          objectclass with the specified name or OID defined in the server
    *          schema and a default class should not be returned.
    */
@@ -2734,7 +2722,7 @@
    *                       rule use.
    *
    * @return  The matching rule use for the provided matching rule, or
-   *          <CODE>null</CODE> if none is defined.
+   *          {@code null} if none is defined.
    */
   public static MatchingRuleUse getMatchingRuleUse(MatchingRule matchingRule)
   {
@@ -2791,7 +2779,7 @@
    * @param  objectClass  The objectclass for which to retrieve the associated
    *                      DIT content rule.
    *
-   * @return  The requested DIT content rule, or <CODE>null</CODE> if no such
+   * @return  The requested DIT content rule, or {@code null} if no such
    *          rule is defined in the schema.
    */
   public static DITContentRule getDITContentRule(ObjectClass objectClass)
@@ -2848,7 +2836,7 @@
    * @param  ruleID  The rule ID for which to retrieve the associated DIT
    *                 structure rule.
    *
-   * @return  The requested DIT structure rule, or <CODE>null</CODE> if no such
+   * @return  The requested DIT structure rule, or {@code null} if no such
    *          rule is defined.
    */
   public static DITStructureRule getDITStructureRule(int ruleID)
@@ -2862,7 +2850,7 @@
    * @param  nameForm  The name form for which to retrieve the associated DIT
    *                   structure rule.
    *
-   * @return  The requested DIT structure rule, or <CODE>null</CODE> if no such
+   * @return  The requested DIT structure rule, or {@code null} if no such
    *          rule is defined.
    */
   public static DITStructureRule getDITStructureRule(NameForm nameForm)
@@ -2920,7 +2908,7 @@
    * @param  objectClass  The objectclass for which to retrieve the associated
    *                      name form.
    *
-   * @return  The requested name forms, or <CODE>null</CODE> if no such name
+   * @return  The requested name forms, or {@code null} if no such name
    *           form is defined in the schema.
    */
   public static List<NameForm> getNameForm(ObjectClass objectClass)
@@ -2934,7 +2922,7 @@
    * @param  lowerName  The name or OID of the name form to retrieve, formatted
    *                    in all lowercase characters.
    *
-   * @return  The requested name form, or <CODE>null</CODE> if no such name form
+   * @return  The requested name form, or {@code null} if no such name form
    *          is defined in the schema.
    */
   public static NameForm getNameForm(String lowerName)
@@ -3057,7 +3045,7 @@
    *                        retrieve the associated JMX MBean.
    *
    * @return  The JMX MBean associated with the specified entry in the Directory
-   *          Server configuration, or <CODE>null</CODE> if there is no MBean
+   *          Server configuration, or {@code null} if there is no MBean
    *          for the specified entry.
    */
   public static JMXMBean getJMXMBean(DN configEntryDN)
@@ -3108,7 +3096,7 @@
    * @return  The set of alert handlers that have been registered with the
    *          Directory Server.
    */
-  public static List<AlertHandler> getAlertHandlers()
+  public static List<AlertHandler<?>> getAlertHandlers()
   {
     return directoryServer.alertHandlers;
   }
@@ -3118,7 +3106,7 @@
    *
    * @param  alertHandler  The alert handler to register.
    */
-  public static void registerAlertHandler(AlertHandler alertHandler)
+  public static void registerAlertHandler(AlertHandler<?> alertHandler)
   {
     directoryServer.alertHandlers.add(alertHandler);
   }
@@ -3128,7 +3116,7 @@
    *
    * @param  alertHandler  The alert handler to deregister.
    */
-  public static void deregisterAlertHandler(AlertHandler alertHandler)
+  public static void deregisterAlertHandler(AlertHandler<?> alertHandler)
   {
     directoryServer.alertHandlers.remove(alertHandler);
   }
@@ -3138,7 +3126,7 @@
    *
    * @param  generator     The alert generator that created the alert.
    * @param  alertType     The alert type name for this alert.
-   * @param  alertMessage  A message (possibly <CODE>null</CODE>) that can
+   * @param  alertMessage  A message (possibly {@code null}) that can
    */
   public static void sendAlertNotification(AlertGenerator generator,
                                            String alertType,
@@ -3171,7 +3159,9 @@
         AlertHandlerCfg config = alertHandler.getAlertHandlerConfiguration();
         Set<String> enabledAlerts = config.getEnabledAlertType();
         Set<String> disabledAlerts = config.getDisabledAlertType();
-        if (enabledAlerts == null || enabledAlerts.isEmpty())
+        if (enabledAlerts == null
+            || enabledAlerts.isEmpty()
+            || enabledAlerts.contains(alertType))
         {
           if (disabledAlerts != null && disabledAlerts.contains(alertType))
           {
@@ -3180,17 +3170,7 @@
         }
         else
         {
-          if (enabledAlerts.contains(alertType))
-          {
-            if (disabledAlerts != null && disabledAlerts.contains(alertType))
-            {
-              continue;
-            }
-          }
-          else
-          {
-            continue;
-          }
+          continue;
         }
 
         alertHandler.sendAlertNotification(generator, alertType, alertMessage);
@@ -3224,8 +3204,7 @@
    * @return  The set of password storage schemes defined in the Directory
    *          Server.
    */
-  public static ConcurrentHashMap<String,PasswordStorageScheme>
-                     getPasswordStorageSchemes()
+  public static ConcurrentHashMap<String, PasswordStorageScheme<?>> getPasswordStorageSchemes()
   {
     return directoryServer.passwordStorageSchemes;
   }
@@ -3236,10 +3215,10 @@
    * @param  lowerName  The name of the password storage scheme to retrieve,
    *                    formatted in all lowercase characters.
    *
-   * @return  The requested password storage scheme, or <CODE>null</CODE> if no
+   * @return  The requested password storage scheme, or {@code null} if no
    *          such scheme is defined.
    */
-  public static PasswordStorageScheme getPasswordStorageScheme(String lowerName)
+  public static PasswordStorageScheme<?> getPasswordStorageScheme(String lowerName)
   {
     return directoryServer.passwordStorageSchemes.get(lowerName);
   }
@@ -3252,8 +3231,7 @@
    * @return  The set of authentication password storage schemes defined in the
    *          Directory Server.
    */
-  public static ConcurrentHashMap<String,PasswordStorageScheme>
-                     getAuthPasswordStorageSchemes()
+  public static ConcurrentHashMap<String, PasswordStorageScheme<?>> getAuthPasswordStorageSchemes()
   {
     return directoryServer.authPasswordStorageSchemes;
   }
@@ -3265,9 +3243,9 @@
    *               storage scheme to retrieve.
    *
    * @return  The requested authentication password storage scheme, or
-   *          <CODE>null</CODE> if no such scheme is defined.
+   *          {@code null} if no such scheme is defined.
    */
-  public static PasswordStorageScheme getAuthPasswordStorageScheme(String name)
+  public static PasswordStorageScheme<?> getAuthPasswordStorageScheme(String name)
   {
     return directoryServer.authPasswordStorageSchemes.get(name);
   }
@@ -3282,8 +3260,7 @@
    * @param  scheme         The password storage scheme to register with the
    *                        Directory Server.
    */
-  public static void registerPasswordStorageScheme(DN configEntryDN,
-                                                   PasswordStorageScheme scheme)
+  public static void registerPasswordStorageScheme(DN configEntryDN, PasswordStorageScheme<?> scheme)
   {
     directoryServer.passwordStorageSchemesByDN.put(configEntryDN, scheme);
 
@@ -3307,8 +3284,7 @@
    */
   public static void deregisterPasswordStorageScheme(DN configEntryDN)
   {
-    PasswordStorageScheme scheme =
-         directoryServer.passwordStorageSchemesByDN.remove(configEntryDN);
+    PasswordStorageScheme<?> scheme = directoryServer.passwordStorageSchemesByDN.remove(configEntryDN);
 
     if (scheme != null)
     {
@@ -3345,7 +3321,7 @@
    * @param  configEntryDN  The DN of the configuration entry for which to
    *                        retrieve the associated password validator.
    *
-   * @return  The requested password validator, or <CODE>null</CODE> if no such
+   * @return  The requested password validator, or {@code null} if no such
    *          validator is defined.
    */
   public static PasswordValidator<? extends PasswordValidatorCfg>
@@ -3391,7 +3367,7 @@
    * @return  The set of account status notification handlers defined in the
    *          Directory Server.
    */
-  public static ConcurrentMap<DN, AccountStatusNotificationHandler>
+  public static ConcurrentMap<DN, AccountStatusNotificationHandler<?>>
                      getAccountStatusNotificationHandlers()
   {
     return directoryServer.accountStatusNotificationHandlers;
@@ -3405,9 +3381,9 @@
    *                    account status notification handler to retrieve.
    *
    * @return  The requested account status notification handler, or
-   *          <CODE>null</CODE> if no such handler is defined in the server.
+   *          {@code null} if no such handler is defined in the server.
    */
-  public static AccountStatusNotificationHandler
+  public static AccountStatusNotificationHandler<?>
                      getAccountStatusNotificationHandler(DN handlerDN)
   {
     return directoryServer.accountStatusNotificationHandlers.get(handlerDN);
@@ -3423,7 +3399,7 @@
    *                    the Directory Server.
    */
   public static void registerAccountStatusNotificationHandler(DN handlerDN,
-                          AccountStatusNotificationHandler handler)
+      AccountStatusNotificationHandler<?> handler)
   {
     directoryServer.accountStatusNotificationHandlers.put(handlerDN, handler);
   }
@@ -3448,7 +3424,7 @@
    * @return  The set of password generators that have been registered for use
    *          with the Directory Server.
    */
-  public static ConcurrentMap<DN, PasswordGenerator> getPasswordGenerators()
+  public static ConcurrentMap<DN, PasswordGenerator<?>> getPasswordGenerators()
   {
     return directoryServer.passwordGenerators;
   }
@@ -3460,10 +3436,10 @@
    * @param  configEntryDN  The DN of the configuration entry for which to
    *                        retrieve the associated password generator.
    *
-   * @return  The requested password generator, or <CODE>null</CODE> if no such
+   * @return  The requested password generator, or {@code null} if no such
    *          generator is defined.
    */
-  public static PasswordGenerator getPasswordGenerator(DN configEntryDN)
+  public static PasswordGenerator<?> getPasswordGenerator(DN configEntryDN)
   {
     return directoryServer.passwordGenerators.get(configEntryDN);
   }
@@ -3477,8 +3453,7 @@
    * @param  generator      The password generator to register with the
    *                        Directory Server.
    */
-  public static void registerPasswordGenerator(DN configEntryDN,
-                                               PasswordGenerator generator)
+  public static void registerPasswordGenerator(DN configEntryDN, PasswordGenerator<?> generator)
   {
     directoryServer.passwordGenerators.put(configEntryDN, generator);
   }
@@ -3518,7 +3493,7 @@
    *          The DN of the configuration entry for which to retrieve the
    *          associated authentication policy.
    * @return The authentication policy registered for the provided configuration
-   *         entry, or <CODE>null</CODE> if there is no such policy.
+   *         entry, or {@code null} if there is no such policy.
    */
   public static AuthenticationPolicy getAuthenticationPolicy(DN configEntryDN)
   {
@@ -3668,9 +3643,9 @@
    *                        retrieve the associated rotation policy.
    *
    * @return  The rotation policy registered for the provided configuration
-   *          entry, or <CODE>null</CODE> if there is no such policy.
+   *          entry, or {@code null} if there is no such policy.
    */
-  public static RotationPolicy getRotationPolicy(DN configEntryDN)
+  public static RotationPolicy<?> getRotationPolicy(DN configEntryDN)
   {
     Reject.ifNull(configEntryDN);
 
@@ -3686,8 +3661,7 @@
    *                        password policy.
    * @param  policy         The rotation policy to register with the server.
    */
-  public static void registerRotationPolicy(DN configEntryDN,
-                                            RotationPolicy policy)
+  public static void registerRotationPolicy(DN configEntryDN, RotationPolicy<?> policy)
   {
     Reject.ifNull(configEntryDN, policy);
 
@@ -3716,9 +3690,9 @@
    *                        retrieve the associated retention policy.
    *
    * @return  The retention policy registered for the provided configuration
-   *          entry, or <CODE>null</CODE> if there is no such policy.
+   *          entry, or {@code null} if there is no such policy.
    */
-  public static RetentionPolicy getRetentionPolicy(DN configEntryDN)
+  public static RetentionPolicy<?> getRetentionPolicy(DN configEntryDN)
   {
     Reject.ifNull(configEntryDN);
 
@@ -3734,8 +3708,7 @@
    *                        password policy.
    * @param  policy         The retention policy to register with the server.
    */
-  public static void registerRetentionPolicy(DN configEntryDN,
-                                            RetentionPolicy policy)
+  public static void registerRetentionPolicy(DN configEntryDN, RetentionPolicy<?> policy)
   {
     Reject.ifNull(configEntryDN, policy);
 
@@ -3777,7 +3750,7 @@
    * @param  lowerName  The name of the monitor provider to retrieve, in all
    *                    lowercase characters.
    *
-   * @return  The requested resource monitor, or <CODE>null</CODE> if none
+   * @return  The requested resource monitor, or {@code null} if none
    *          exists with the specified name.
    */
   public static MonitorProvider<? extends MonitorProviderCfg>
@@ -3861,7 +3834,7 @@
    *
    * @return  The entry cache for the Directory Server.
    */
-  public static EntryCache getEntryCache()
+  public static EntryCache<?> getEntryCache()
   {
     return directoryServer.entryCache;
   }
@@ -3872,7 +3845,7 @@
    *
    * @param  entryCache  The entry cache for the Directory Server.
    */
-  public static void setEntryCache(EntryCache entryCache)
+  public static void setEntryCache(EntryCache<?> entryCache)
   {
     synchronized (directoryServer)
     {
@@ -3887,7 +3860,7 @@
    * @return  The set of key manager providers registered with the Directory
    *          Server.
    */
-  public static Map<DN,KeyManagerProvider> getKeyManagerProviders()
+  public static Map<DN, KeyManagerProvider<?>> getKeyManagerProviders()
   {
     return directoryServer.keyManagerProviders;
   }
@@ -3902,7 +3875,7 @@
    *          {@code null} if there is no such key manager provider registered
    *          with the server.
    */
-  public static KeyManagerProvider getKeyManagerProvider(DN providerDN)
+  public static KeyManagerProvider<?> getKeyManagerProvider(DN providerDN)
   {
     return directoryServer.keyManagerProviders.get(providerDN);
   }
@@ -3914,7 +3887,7 @@
    * @param  provider    The key manager provider to register with the server.
    */
   public static void registerKeyManagerProvider(DN providerDN,
-                                                KeyManagerProvider provider)
+      KeyManagerProvider<?> provider)
   {
     directoryServer.keyManagerProviders.put(providerDN, provider);
   }
@@ -3937,7 +3910,7 @@
    * @return  The set of trust manager providers registered with the Directory
    *          Server.
    */
-  public static Map<DN,TrustManagerProvider> getTrustManagerProviders()
+  public static Map<DN, TrustManagerProvider<?>> getTrustManagerProviders()
   {
     return directoryServer.trustManagerProviders;
   }
@@ -3952,7 +3925,7 @@
    *          or {@code null} if there is no such trust manager provider
    *          registered with the server.
    */
-  public static TrustManagerProvider getTrustManagerProvider(DN providerDN)
+  public static TrustManagerProvider<?> getTrustManagerProvider(DN providerDN)
   {
     return directoryServer.trustManagerProviders.get(providerDN);
   }
@@ -3964,8 +3937,7 @@
    *                     provider.
    * @param  provider    The trust manager provider to register with the server.
    */
-  public static void registerTrustManagerProvider(DN providerDN,
-                                                  TrustManagerProvider provider)
+  public static void registerTrustManagerProvider(DN providerDN, TrustManagerProvider<?> provider)
   {
     directoryServer.trustManagerProviders.put(providerDN, provider);
   }
@@ -3988,7 +3960,7 @@
    * @return  The set of certificate mappers registered with the Directory
    *          Server.
    */
-  public static Map<DN,CertificateMapper> getCertificateMappers()
+  public static Map<DN, CertificateMapper<?>> getCertificateMappers()
   {
     return directoryServer.certificateMappers;
   }
@@ -4002,7 +3974,7 @@
    *          {@code null} if there is no such certificate mapper registered
    *          with the server.
    */
-  public static CertificateMapper getCertificateMapper(DN mapperDN)
+  public static CertificateMapper<?> getCertificateMapper(DN mapperDN)
   {
     return directoryServer.certificateMappers.get(mapperDN);
   }
@@ -4013,8 +3985,7 @@
    * @param  mapperDN  The DN with which to register the certificate mapper.
    * @param  mapper    The certificate mapper to register with the server.
    */
-  public static void registerCertificateMapper(DN mapperDN,
-                                               CertificateMapper mapper)
+  public static void registerCertificateMapper(DN mapperDN, CertificateMapper<?> mapper)
   {
     directoryServer.certificateMappers.put(mapperDN, mapper);
   }
@@ -4110,7 +4081,7 @@
    *                              retrieve the real entry DN.
    *
    * @return  The real entry DN for the root user with the provided alternate
-   *          bind DN, or <CODE>null</CODE> if no such mapping has been defined.
+   *          bind DN, or {@code null} if no such mapping has been defined.
    */
   public static DN getActualRootBindDN(DN alternateRootBindDN)
   {
@@ -4151,7 +4122,7 @@
    * @param  alternateRootBindDN  The alternate root bind DN to be deregistered.
    *
    * @return  The actual root entry DN to which the provided alternate bind DN
-   *          was mapped, or <CODE>null</CODE> if there was no mapping for the
+   *          was mapped, or {@code null} if there was no mapping for the
    *          provided DN.
    */
   public static DN deregisterAlternateRootBindDN(DN alternateRootBindDN)
@@ -4355,9 +4326,9 @@
    * @return  The set of backends that have been registered with the Directory
    *          Server.
    */
-  public static Map<String, Backend> getBackends()
+  public static Map<String, Backend<?>> getBackends()
   {
-    return new TreeMap<String, Backend>(directoryServer.backends);
+    return new TreeMap<>(directoryServer.backends);
   }
 
   /**
@@ -4414,26 +4385,24 @@
         LocalizableMessage message = ERR_REGISTER_BACKEND_ALREADY_EXISTS.get(backendID);
         throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
       }
-      else
+
+      newBackends.put(backendID, backend);
+      directoryServer.backends = newBackends;
+
+      for (String oid : backend.getSupportedControls())
       {
-        newBackends.put(backendID, backend);
-        directoryServer.backends = newBackends;
-
-        for (String oid : backend.getSupportedControls())
-        {
-          registerSupportedControl(oid);
-        }
-
-        for (String oid : backend.getSupportedFeatures())
-        {
-          registerSupportedFeature(oid);
-        }
-
-        BackendMonitor monitor = new BackendMonitor(backend);
-        monitor.initializeMonitorProvider(null);
-        backend.setBackendMonitor(monitor);
-        registerMonitorProvider(monitor);
+        registerSupportedControl(oid);
       }
+
+      for (String oid : backend.getSupportedFeatures())
+      {
+        registerSupportedFeature(oid);
+      }
+
+      BackendMonitor monitor = new BackendMonitor(backend);
+      monitor.initializeMonitorProvider(null);
+      backend.setBackendMonitor(monitor);
+      registerMonitorProvider(monitor);
     }
   }
 
@@ -4479,7 +4448,7 @@
    *
    * @return  The entire set of base DNs registered with the Directory Server.
    */
-  public static Map<DN,Backend> getBaseDNs()
+  public static Map<DN, Backend<?>> getBaseDNs()
   {
     return directoryServer.baseDnRegistry.getBaseDnMap();
   }
@@ -4516,7 +4485,7 @@
       return directoryServer.rootDSEBackend;
     }
 
-    Map<DN,Backend> baseDNs = directoryServer.baseDnRegistry.getBaseDnMap();
+    Map<DN, Backend<?>> baseDNs = directoryServer.baseDnRegistry.getBaseDnMap();
     Backend<?> b = baseDNs.get(entryDN);
     while (b == null)
     {
@@ -4606,7 +4575,6 @@
     ifNull(baseDN);
 
     synchronized(directoryServer) {
-
       List<LocalizableMessage> warnings =
               directoryServer.baseDnRegistry.deregisterBaseDN(baseDN);
 
@@ -4630,7 +4598,7 @@
    *
    * @return  The set of public naming contexts defined in the Directory Server.
    */
-  public static Map<DN,Backend> getPublicNamingContexts()
+  public static Map<DN, Backend<?>> getPublicNamingContexts()
   {
     return directoryServer.baseDnRegistry.getPublicNamingContextsMap();
   }
@@ -4642,7 +4610,7 @@
    * @return  The set of private naming contexts defined in the Directory
    *          Server.
    */
-  public static Map<DN,Backend> getPrivateNamingContexts()
+  public static Map<DN, Backend<?>> getPrivateNamingContexts()
   {
     return directoryServer.baseDnRegistry.getPrivateNamingContextsMap();
   }
@@ -4705,7 +4673,7 @@
    * Retrieves the DN of the entry containing the server schema definitions.
    *
    * @return  The DN of the entry containing the server schema definitions, or
-   *          <CODE>null</CODE> if none has been defined (e.g., if no schema
+   *          {@code null} if none has been defined (e.g., if no schema
    *          backend has been configured).
    */
   public static DN getSchemaDN()
@@ -4731,7 +4699,7 @@
    *
    * @param entryDN
    *          The DN of the entry to retrieve.
-   * @return The requested entry, or <CODE>null</CODE> if it does not exist.
+   * @return The requested entry, or {@code null} if it does not exist.
    * @throws DirectoryException
    *           If a problem occurs while attempting to retrieve the entry.
    */
@@ -4897,8 +4865,7 @@
    * @return  The set of extended operations that may be processed by the
    *         Directory Server.
    */
-  public static ConcurrentMap<String, ExtendedOperationHandler>
-                     getSupportedExtensions()
+  public static ConcurrentMap<String, ExtendedOperationHandler<?>> getSupportedExtensions()
   {
     return directoryServer.extendedOperationHandlers;
   }
@@ -4909,9 +4876,9 @@
    * @param  oid  The OID of the extended operation to retrieve.
    *
    * @return  The handler for the specified extended operation, or
-   *          <CODE>null</CODE> if there is none.
+   *          {@code null} if there is none.
    */
-  public static ExtendedOperationHandler getExtendedOperationHandler(String oid)
+  public static ExtendedOperationHandler<?> getExtendedOperationHandler(String oid)
   {
     return directoryServer.extendedOperationHandlers.get(oid);
   }
@@ -4924,8 +4891,7 @@
    * @param  handler  The extended operation handler to register with the
    *                  Directory Server.
    */
-  public static void registerSupportedExtension(String oid,
-                          ExtendedOperationHandler handler)
+  public static void registerSupportedExtension(String oid, ExtendedOperationHandler<?> handler)
   {
     directoryServer.extendedOperationHandlers.put(toLowerCase(oid), handler);
   }
@@ -4948,8 +4914,7 @@
    * @return  The set of SASL mechanisms that are supported by the Directory
    *          Server.
    */
-  public static ConcurrentMap<String, SASLMechanismHandler>
-                     getSupportedSASLMechanisms()
+  public static ConcurrentMap<String, SASLMechanismHandler<?>> getSupportedSASLMechanisms()
   {
     return directoryServer.saslMechanismHandlers;
   }
@@ -4959,10 +4924,10 @@
    *
    * @param  name  The name of the SASL mechanism to retrieve.
    *
-   * @return  The handler for the specified SASL mechanism, or <CODE>null</CODE>
+   * @return  The handler for the specified SASL mechanism, or {@code null}
    *          if there is none.
    */
-  public static SASLMechanismHandler getSASLMechanismHandler(String name)
+  public static SASLMechanismHandler<?> getSASLMechanismHandler(String name)
   {
     return directoryServer.saslMechanismHandlers.get(name);
   }
@@ -4974,8 +4939,7 @@
    * @param  handler  The SASL mechanism handler to register with the Directory
    *                  Server.
    */
-  public static void registerSASLMechanismHandler(String name,
-                                                  SASLMechanismHandler handler)
+  public static void registerSASLMechanismHandler(String name, SASLMechanismHandler<?> handler)
   {
     // FIXME -- Should we force this name to be lowercase?  If so, then will
     // that cause the lower name to be used in the root DSE?
@@ -5016,12 +4980,14 @@
    */
   public static synchronized void registerSupportedLDAPVersion(
                                        int supportedLDAPVersion,
-                                       ConnectionHandler connectionHandler)
+                                       ConnectionHandler<?> connectionHandler)
   {
-    List<ConnectionHandler> handlers = directoryServer.supportedLDAPVersions.get(supportedLDAPVersion);
+    List<ConnectionHandler<?>> handlers = directoryServer.supportedLDAPVersions.get(supportedLDAPVersion);
     if (handlers == null)
     {
-      directoryServer.supportedLDAPVersions.put(supportedLDAPVersion, newLinkedList(connectionHandler));
+      handlers = new LinkedList<>();
+      handlers.add(connectionHandler);
+      directoryServer.supportedLDAPVersions.put(supportedLDAPVersion, handlers);
     }
     else if (!handlers.contains(connectionHandler))
     {
@@ -5039,10 +5005,9 @@
    */
   public static synchronized void deregisterSupportedLDAPVersion(
                                        int supportedLDAPVersion,
-                                       ConnectionHandler connectionHandler)
+      ConnectionHandler<?> connectionHandler)
   {
-    List<ConnectionHandler> handlers =
-         directoryServer.supportedLDAPVersions.get(supportedLDAPVersion);
+    List<ConnectionHandler<?>> handlers = directoryServer.supportedLDAPVersions.get(supportedLDAPVersion);
     if (handlers != null)
     {
       handlers.remove(connectionHandler);
@@ -5061,7 +5026,7 @@
    * @return  The set of identity mappers defined in the Directory Server
    *          configuration.
    */
-  public static ConcurrentMap<DN, IdentityMapper> getIdentityMappers()
+  public static ConcurrentMap<DN, IdentityMapper<?>> getIdentityMappers()
   {
     return directoryServer.identityMappers;
   }
@@ -5073,11 +5038,11 @@
    * @param  configEntryDN  The DN of the configuration entry for the identity
    *                        mapper to retrieve.
    *
-   * @return  The requested identity mapper, or <CODE>null</CODE> if the
+   * @return  The requested identity mapper, or {@code null} if the
    *          provided entry DN is not associated with an active identity
    *          mapper.
    */
-  public static IdentityMapper getIdentityMapper(DN configEntryDN)
+  public static IdentityMapper<?> getIdentityMapper(DN configEntryDN)
   {
     return directoryServer.identityMappers.get(configEntryDN);
   }
@@ -5089,8 +5054,7 @@
    *                         identity mapper definition resides.
    * @param  identityMapper  The identity mapper to be registered.
    */
-  public static void registerIdentityMapper(DN configEntryDN,
-                                            IdentityMapper identityMapper)
+  public static void registerIdentityMapper(DN configEntryDN, IdentityMapper<?> identityMapper)
   {
     directoryServer.identityMappers.put(configEntryDN, identityMapper);
   }
@@ -5112,7 +5076,7 @@
    *
    * @return  The DN of the configuration entry for the identity mapper that
    *          should be used in conjunction with proxied authorization V2
-   *          controls, or <CODE>null</CODE> if none is defined.
+   *          controls, or {@code null} if none is defined.
    */
   public static DN getProxiedAuthorizationIdentityMapperDN()
   {
@@ -5142,17 +5106,12 @@
    *
    * @return  The identity mapper that should be used to resolve authorization
    *          IDs contained in proxied authorization V2 controls, or
-   *          <CODE>null</CODE> if none is defined.
+   *          {@code null} if none is defined.
    */
-  public static IdentityMapper getProxiedAuthorizationIdentityMapper()
+  public static IdentityMapper<?> getProxiedAuthorizationIdentityMapper()
   {
-    if (directoryServer.proxiedAuthorizationIdentityMapperDN == null)
-    {
-      return null;
-    }
-
-    return directoryServer.identityMappers.get(
-                directoryServer.proxiedAuthorizationIdentityMapperDN);
+    DN dnMapper = directoryServer.proxiedAuthorizationIdentityMapperDN;
+    return dnMapper != null ? directoryServer.identityMappers.get(dnMapper) : null;
   }
 
   /**
@@ -5161,7 +5120,7 @@
    *
    * @return  The set of connection handlers configured in the Directory Server.
    */
-  public static List<ConnectionHandler> getConnectionHandlers()
+  public static List<ConnectionHandler<?>> getConnectionHandlers()
   {
     return directoryServer.connectionHandlers;
   }
@@ -5172,8 +5131,7 @@
    * @param  handler  The connection handler to register with the Directory
    *                  Server.
    */
-  public static void registerConnectionHandler(ConnectionHandler<? extends ConnectionHandlerCfg>
-                               handler)
+  public static void registerConnectionHandler(ConnectionHandler<? extends ConnectionHandlerCfg> handler)
   {
     synchronized (directoryServer.connectionHandlers)
     {
@@ -5192,7 +5150,7 @@
    * @param  handler  The connection handler to deregister with the Directory
    *                  Server.
    */
-  public static void deregisterConnectionHandler(ConnectionHandler handler)
+  public static void deregisterConnectionHandler(ConnectionHandler<?> handler)
   {
     synchronized (directoryServer.connectionHandlers)
     {
@@ -5250,7 +5208,7 @@
     }
 
     // At this point, we should be ready to go.
-    for (ConnectionHandler handler : connectionHandlers)
+    for (ConnectionHandler<?> handler : connectionHandlers)
     {
       handler.start();
     }
@@ -5261,7 +5219,7 @@
    *
    * @return  A reference to the Directory Server work queue.
    */
-  public static WorkQueue getWorkQueue()
+  public static WorkQueue<?> getWorkQueue()
   {
     return directoryServer.workQueue;
   }
@@ -5367,12 +5325,9 @@
               }
             }
 
-            user = clientConnection.getAuthenticationInfo()
-                .getAuthorizationDN();
-            message = ERR_ENQUEUE_MUST_CHANGE_PASSWORD
-                .get(user != null ? user : "anonymous");
-            throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION,
-                                         message);
+            user = clientConnection.getAuthenticationInfo().getAuthorizationDN();
+            message = ERR_ENQUEUE_MUST_CHANGE_PASSWORD.get(user != null ? user : "anonymous");
+            throw new DirectoryException(ResultCode.CONSTRAINT_VIOLATION, message);
           }
 
           break;
@@ -5446,13 +5401,11 @@
   }
 
   /**
-   * Deregisters the provided synchronization provider with the Directory
-   * Server.
+   * Deregisters the provided synchronization provider with the Directory Server.
    *
    * @param  provider  The synchronization provider to deregister.
    */
-  public static void deregisterSynchronizationProvider(SynchronizationProvider
-                                                            provider)
+  public static void deregisterSynchronizationProvider(SynchronizationProvider<?> provider)
   {
     directoryServer.synchronizationProviders.remove(provider);
   }
@@ -5942,12 +5895,11 @@
     shutdownMonitor.start();
 
     // Shut down the connection handlers.
-    for (ConnectionHandler handler : directoryServer.connectionHandlers)
+    for (ConnectionHandler<?> handler : directoryServer.connectionHandlers)
     {
       try
       {
-        handler.finalizeConnectionHandler(
-                INFO_CONNHANDLER_CLOSED_BY_SHUTDOWN.get());
+        handler.finalizeConnectionHandler(INFO_CONNHANDLER_CLOSED_BY_SHUTDOWN.get());
       }
       catch (Exception e)
       {
@@ -5963,8 +5915,7 @@
     }
 
     // shutdown replication
-    for (SynchronizationProvider provider :
-         directoryServer.synchronizationProviders)
+    for (SynchronizationProvider<?> provider : directoryServer.synchronizationProviders)
     {
       provider.finalizeSynchronizationProvider();
     }
@@ -6002,7 +5953,7 @@
     }
 
     // Shut down all of the alert handlers.
-    for (AlertHandler alertHandler : directoryServer.alertHandlers)
+    for (AlertHandler<?> alertHandler : directoryServer.alertHandlers)
     {
       alertHandler.finalizeAlertHandler();
     }
@@ -6010,7 +5961,7 @@
     // Deregister all of the JMX MBeans.
     if (directoryServer.mBeanServer != null)
     {
-      Set mBeanSet = directoryServer.mBeanServer.queryMBeans(null, null);
+      Set<?> mBeanSet = directoryServer.mBeanServer.queryMBeans(null, null);
       for (Object o : mBeanSet)
       {
         if (o instanceof DirectoryServerMBean)
@@ -6029,8 +5980,7 @@
     }
 
     // Finalize all of the SASL mechanism handlers.
-    for (SASLMechanismHandler handler :
-         directoryServer.saslMechanismHandlers.values())
+    for (SASLMechanismHandler<?> handler : directoryServer.saslMechanismHandlers.values())
     {
       try
       {
@@ -6043,8 +5993,7 @@
     }
 
     // Finalize all of the extended operation handlers.
-    for (ExtendedOperationHandler handler :
-         directoryServer.extendedOperationHandlers.values())
+    for (ExtendedOperationHandler<?> handler : directoryServer.extendedOperationHandlers.values())
     {
       try
       {
@@ -6070,7 +6019,7 @@
     }
 
     // Finalize the access control handler
-    AccessControlHandler accessControlHandler =
+    AccessControlHandler<?> accessControlHandler =
         AccessControlConfigManager.getInstance().getAccessControlHandler();
     if (accessControlHandler != null)
     {
@@ -6093,7 +6042,7 @@
     // NYI
 
     // Shut down the monitor providers.
-    for (MonitorProvider monitor : directoryServer.monitorProviders.values())
+    for (MonitorProvider<?> monitor : directoryServer.monitorProviders.values())
     {
       try
       {
@@ -7229,7 +7178,7 @@
    * @param provider The monitor provider for which a DN is desired.
    * @return The DN of the monitor provider entry.
    */
-  public static DN getMonitorProviderDN(MonitorProvider provider)
+  public static DN getMonitorProviderDN(MonitorProvider<?> provider)
   {
     // Get a complete DN which could be a tree naming schema
     return DN.valueOf("cn=" + provider.getMonitorInstanceName() + "," + DN_MONITOR_ROOT);
@@ -7291,7 +7240,6 @@
    */
   private static int checkStartability(ArgumentParser argParser)
   {
-    int returnValue;
     boolean isServerRunning;
 
     BooleanArgument noDetach =
@@ -7335,70 +7283,57 @@
       isServerRunning = true;
     }
 
-    boolean configuredAsService = isRunningAsWindowsService();
-
+    final boolean configuredAsWindowsService = isRunningAsWindowsService();
     if (isServerRunning)
     {
-      if (configuredAsService && !windowsNetStartPresent)
+      if (configuredAsWindowsService && !windowsNetStartPresent)
       {
-        returnValue = START_AS_WINDOWS_SERVICE;
+        return START_AS_WINDOWS_SERVICE;
       }
       else
       {
-        returnValue = SERVER_ALREADY_STARTED;
+        return SERVER_ALREADY_STARTED;
       }
     }
+    else if (configuredAsWindowsService)
+    {
+      if (noDetachPresent)
+      {
+        // Conflicting arguments
+        System.err.println(ERR_DSCORE_ERROR_NODETACH_AND_WINDOW_SERVICE.get());
+        return CHECK_ERROR;
+      }
+      else if (windowsNetStartPresent)
+      {
+        // start-ds.bat is being called through net start, so return
+        // START_AS_DETACH_CALLED_FROM_WINDOWS_SERVICE so that the batch
+        // file actually starts the server.
+        return START_AS_DETACH_CALLED_FROM_WINDOWS_SERVICE;
+      }
+      else
+      {
+        return START_AS_WINDOWS_SERVICE;
+      }
+    }
+    else if (noDetachPresent)
+    {
+      if (quietMode.isPresent())
+      {
+        return START_AS_NON_DETACH_QUIET;
+      }
+      else
+      {
+        return START_AS_NON_DETACH;
+      }
+    }
+    else if (quietMode.isPresent())
+    {
+      return START_AS_DETACH_QUIET;
+    }
     else
     {
-      if (configuredAsService)
-      {
-        if (noDetachPresent)
-        {
-          // Conflicting arguments
-          returnValue = CHECK_ERROR;
-          LocalizableMessage message = ERR_DSCORE_ERROR_NODETACH_AND_WINDOW_SERVICE.get();
-          System.err.println(message);
-
-        }
-        else
-        {
-          if (windowsNetStartPresent)
-          {
-            // start-ds.bat is being called through net start, so return
-            // START_AS_DETACH_CALLED_FROM_WINDOWS_SERVICE so that the batch
-            // file actually starts the server.
-            returnValue = START_AS_DETACH_CALLED_FROM_WINDOWS_SERVICE;
-          }
-          else
-          {
-            returnValue = START_AS_WINDOWS_SERVICE;
-          }
-        }
-      }
-      else
-      {
-        if (noDetachPresent)
-        {
-          if (quietMode.isPresent())
-          {
-            returnValue = START_AS_NON_DETACH_QUIET;
-          }
-          else
-          {
-            returnValue = START_AS_NON_DETACH;
-          }
-        }
-        else if (quietMode.isPresent())
-        {
-          returnValue = START_AS_DETACH_QUIET;
-        }
-        else
-        {
-          returnValue = START_AS_DETACH;
-        }
-      }
+      return START_AS_DETACH;
     }
-    return returnValue;
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
index a3d2afa..1af0aef 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/EncodePassword.java
@@ -77,8 +77,6 @@
     }
   }
 
-
-
   /**
    * Processes the command-line arguments and performs the requested action.
    *
@@ -91,8 +89,6 @@
     return encodePassword(args, true, System.out, System.err);
   }
 
-
-
   /**
    * Processes the command-line arguments and performs the requested action.
    *
@@ -129,7 +125,6 @@
     StringArgument    configFile           = null;
     StringArgument    schemeName           = null;
 
-
     // Create the command-line argument parser for use with this program.
     LocalizableMessage toolDescription = INFO_ENCPW_TOOL_DESCRIPTION.get();
     ArgumentParser argParser =
@@ -210,7 +205,6 @@
       return OPERATIONS_ERROR;
     }
 
-
     // Parse the command-line arguments provided to this program.
     try
     {
@@ -222,7 +216,6 @@
       return OPERATIONS_ERROR;
     }
 
-
     // If we should just display usage or version information,
     // then we've already done it so just return without doing anything else.
     if (argParser.usageOrVersionDisplayed())
@@ -267,7 +260,6 @@
       return OPERATIONS_ERROR;
     }
 
-
     // Determine whether we're encoding the clear-text password or comparing it
     // against an already-encoded password.
     boolean compareMode;
@@ -287,7 +279,6 @@
       compareMode = false;
     }
 
-
     if (initializeServer)
     {
       try
@@ -303,7 +294,6 @@
       }
     }
 
-
     // If we are only trying to list the available schemes, then do so and exit.
     if (listSchemes.isPresent())
     {
@@ -318,7 +308,6 @@
       return SUCCESS;
     }
 
-
     // Either encode the clear-text password using the provided scheme, or
     // compare the clear-text password against the encoded password.
     ByteString clearPW = null;
@@ -531,7 +520,7 @@
   }
 
   private static void listPasswordStorageSchemes(PrintStream out, PrintStream err,
-      ConcurrentHashMap<String, PasswordStorageScheme> storageSchemes, boolean authPasswordSchemeName)
+      ConcurrentHashMap<String, PasswordStorageScheme<?>> storageSchemes, boolean authPasswordSchemeName)
   {
     if (storageSchemes.isEmpty())
     {
@@ -678,13 +667,9 @@
     return password;
   }
 
-
-  /**
-   * Thread that mask user input.
-   */
+  /** Thread that mask user input. */
   private class ErasingThread extends Thread
   {
-
     private boolean stop;
     private String prompt;
 
@@ -698,9 +683,7 @@
       this.prompt = prompt;
     }
 
-    /**
-     * Begin masking until asked to stop.
-     */
+    /** Begin masking until asked to stop. */
     @Override
     public void run()
     {
@@ -723,14 +706,10 @@
       }
     }
 
-    /**
-     * Instruct the thread to stop masking.
-     */
+    /** Instruct the thread to stop masking. */
     public void stopMasking()
     {
       this.stop = true;
     }
   }
-
 }
-
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/DirectoryConfig.java b/opendj-server-legacy/src/main/java/org/opends/server/types/DirectoryConfig.java
index 313986f..2fc6c67 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/DirectoryConfig.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/DirectoryConfig.java
@@ -62,8 +62,6 @@
     return DirectoryServer.getCryptoManager();
   }
 
-
-
   /**
    * Retrieves the operating system on which the Directory Server is
    * running.
@@ -88,8 +86,6 @@
     return DirectoryServer.getServerRoot();
   }
 
-
-
   /**
    * Retrieves the time that the Directory Server was started, in
    * milliseconds since the epoch.
@@ -102,8 +98,6 @@
     return DirectoryServer.getStartTime();
   }
 
-
-
   /**
    * Retrieves the time that the Directory Server was started,
    * formatted in UTC.
@@ -116,8 +110,6 @@
     return DirectoryServer.getStartTimeUTC();
   }
 
-
-
   /**
    * Retrieves a reference to the Directory Server schema.
    *
@@ -128,8 +120,6 @@
     return DirectoryServer.getSchema();
   }
 
-
-
   /**
    * Retrieves the set of matching rules registered with the Directory
    * Server.
@@ -142,8 +132,6 @@
     return DirectoryServer.getMatchingRules();
   }
 
-
-
   /**
    * Retrieves the matching rule with the specified name or OID.
    *
@@ -158,8 +146,6 @@
     return DirectoryServer.getMatchingRule(lowerName);
   }
 
-
-
   /**
    * Retrieves the approximate matching rule with the specified name
    * or OID.
@@ -177,8 +163,6 @@
     return DirectoryServer.getMatchingRule(lowerName);
   }
 
-
-
   /**
    * Retrieves the equality matching rule with the specified name or
    * OID.
@@ -196,8 +180,6 @@
     return DirectoryServer.getMatchingRule(lowerName);
   }
 
-
-
   /**
    * Retrieves the ordering matching rule with the specified name or
    * OID.
@@ -215,8 +197,6 @@
     return DirectoryServer.getMatchingRule(lowerName);
   }
 
-
-
   /**
    * Retrieves the substring matching rule with the specified name or
    * OID.
@@ -234,8 +214,6 @@
     return DirectoryServer.getMatchingRule(lowerName);
   }
 
-
-
   /**
    * Retrieves the set of objectclasses registered with the Directory
    * Server.  The mapping will be between the lowercase name or OID
@@ -252,8 +230,6 @@
     return DirectoryServer.getObjectClasses();
   }
 
-
-
   /**
    * Retrieves the objectclass for the provided lowercase name or OID.
    * It can optionally return a generated "default" version if the
@@ -276,8 +252,6 @@
     return DirectoryServer.getObjectClass(lowerName, returnDefault);
   }
 
-
-
   /**
    * Retrieves the "top" objectClass, which should be the topmost
    * objectclass in the inheritance chain for most other
@@ -290,8 +264,6 @@
     return DirectoryServer.getTopObjectClass();
   }
 
-
-
   /**
    * Retrieves the set of attribute type definitions that have been
    * defined in the Directory Server.  The mapping will be between the
@@ -318,8 +290,6 @@
     return DirectoryServer.getObjectClassAttributeType();
   }
 
-
-
   /**
    * Retrieves the set of attribute syntaxes defined in the Directory
    * Server.
@@ -346,8 +316,6 @@
     return DirectoryServer.getDefaultBinarySyntax();
   }
 
-
-
   /**
    * Retrieves the default attribute syntax that should be used for
    * attributes that are not defined in the server schema and are
@@ -362,8 +330,6 @@
     return DirectoryServer.getDefaultBooleanSyntax();
   }
 
-
-
   /**
    * Retrieves the default attribute syntax that should be used for
    * attributes that are not defined in the server schema and are
@@ -378,8 +344,6 @@
     return DirectoryServer.getDefaultDNSyntax();
   }
 
-
-
   /**
    * Retrieves the default attribute syntax that should be used for
    * attributes that are not defined in the server schema and are
@@ -394,8 +358,6 @@
     return DirectoryServer.getDefaultIntegerSyntax();
   }
 
-
-
   /**
    * Retrieves the default attribute syntax that should be used for
    * attributes that are not defined in the server schema and are
@@ -410,8 +372,6 @@
     return DirectoryServer.getDefaultStringSyntax();
   }
 
-
-
   /**
    * Retrieves the set of matching rule uses defined in the Directory
    * Server.  The mapping will be between the matching rule and its
@@ -427,8 +387,6 @@
     return DirectoryServer.getMatchingRuleUses();
   }
 
-
-
   /**
    * Retrieves the matching rule use associated with the provided
    * matching rule.
@@ -445,8 +403,6 @@
     return DirectoryServer.getMatchingRuleUse(matchingRule);
   }
 
-
-
   /**
    * Retrieves the set of DIT content rules defined in the Directory
    * Server.  The mapping will be between the structural objectclass
@@ -462,8 +418,6 @@
     return DirectoryServer.getDITContentRules();
   }
 
-
-
   /**
    * Retrieves the DIT content rule associated with the specified
    * objectclass.
@@ -480,8 +434,6 @@
     return DirectoryServer.getDITContentRule(objectClass);
   }
 
-
-
   /**
    * Retrieves the set of DIT structure rules defined in the Directory
    * Server.  The mapping will be between the name form and its
@@ -497,8 +449,6 @@
     return DirectoryServer.getDITStructureRules();
   }
 
-
-
   /**
    * Retrieves the DIT structure rule associated with the provided
    * rule ID.
@@ -514,8 +464,6 @@
     return DirectoryServer.getDITStructureRule(ruleID);
   }
 
-
-
   /**
    * Retrieves the DIT structure rule associated with the provided
    * name form.
@@ -532,8 +480,6 @@
     return DirectoryServer.getDITStructureRule(nameForm);
   }
 
-
-
   /**
    * Retrieves the set of name forms defined in the Directory Server.
    * The mapping will be between the structural objectclass and its
@@ -547,8 +493,6 @@
     return DirectoryServer.getNameForms();
   }
 
-
-
   /**
    * Retrieves the list of name forms associated with the specified
    * structural objectclass.
@@ -564,8 +508,6 @@
     return DirectoryServer.getNameForm(objectClass);
   }
 
-
-
   /**
    * Retrieves the name form associated with the specified name or
    * OID.
@@ -592,8 +534,6 @@
     DirectoryServer.registerAlertGenerator(alertGenerator);
   }
 
-
-
   /**
    * Deregisters the provided alert generator with the Directory
    * Server.
@@ -606,8 +546,6 @@
     DirectoryServer.deregisterAlertGenerator(alertGenerator);
   }
 
-
-
   /**
    * Sends an alert notification with the provided information.
    *
@@ -626,8 +564,6 @@
             alertMessage);
   }
 
-
-
   /**
    * Retrieves the result code that should be used when the Directory
    * Server encounters an internal server error.
@@ -640,8 +576,6 @@
     return DirectoryServer.getServerErrorResultCode();
   }
 
-
-
   /**
    * Retrieves the entry with the requested DN.  It will first
    * determine which backend should be used for this DN and will then
@@ -662,8 +596,6 @@
     return DirectoryServer.getEntry(entryDN);
   }
 
-
-
   /**
    * Indicates whether the specified entry exists in the Directory
    * Server.  The caller is not required to hold any locks when
@@ -684,8 +616,6 @@
     return DirectoryServer.entryExists(entryDN);
   }
 
-
-
   /**
    * Retrieves the set of OIDs for the supported controls registered
    * with the Directory Server.
@@ -698,8 +628,6 @@
     return DirectoryServer.getSupportedControls();
   }
 
-
-
   /**
    * Indicates whether the specified OID is registered with the
    * Directory Server as a supported control.
@@ -716,8 +644,6 @@
     return DirectoryServer.isSupportedControl(controlOID);
   }
 
-
-
   /**
    * Registers the provided OID as a supported control for the
    * Directory Server.  This will have no effect if the specified
@@ -731,8 +657,6 @@
     DirectoryServer.registerSupportedControl(controlOID);
   }
 
-
-
   /**
    * Deregisters the provided OID as a supported control for the
    * Directory Server.  This will have no effect if the specified
@@ -747,8 +671,6 @@
     DirectoryServer.deregisterSupportedControl(controlOID);
   }
 
-
-
   /**
    * Retrieves the set of OIDs for the supported features registered
    * with the Directory Server.
@@ -761,8 +683,6 @@
     return DirectoryServer.getSupportedFeatures();
   }
 
-
-
   /**
    * Indicates whether the specified OID is registered with the
    * Directory Server as a supported feature.
@@ -779,8 +699,6 @@
     return DirectoryServer.isSupportedFeature(featureOID);
   }
 
-
-
   /**
    * Registers the provided OID as a supported feature for the
    * Directory Server.  This will have no effect if the specified
@@ -794,8 +712,6 @@
     DirectoryServer.registerSupportedFeature(featureOID);
   }
 
-
-
   /**
    * Deregisters the provided OID as a supported feature for the
    * Directory Server.  This will have no effect if the specified
@@ -810,8 +726,6 @@
     DirectoryServer.deregisterSupportedFeature(featureOID);
   }
 
-
-
   /**
    * Retrieves the set of extended operations that may be processed by
    * the Directory Server.  The mapping will be between the OID and
@@ -822,14 +736,11 @@
    * @return  The set of extended operations that may be processed by
    *          the Directory Server.
    */
-  public static Map<String,ExtendedOperationHandler>
-                     getSupportedExtensions()
+  public static Map<String, ExtendedOperationHandler<?>> getSupportedExtensions()
   {
     return DirectoryServer.getSupportedExtensions();
   }
 
-
-
   /**
    * Retrieves the handler for the extended operation for the provided
    * extended operation OID.
@@ -839,14 +750,11 @@
    * @return  The handler for the specified extended operation, or
    *          <CODE>null</CODE> if there is none.
    */
-  public static ExtendedOperationHandler
-       getExtendedOperationHandler(String oid)
+  public static ExtendedOperationHandler<?> getExtendedOperationHandler(String oid)
   {
     return DirectoryServer.getExtendedOperationHandler(oid);
   }
 
-
-
   /**
    * Registers the provided extended operation handler with the
    * Directory Server.
@@ -855,14 +763,11 @@
    * @param  handler  The extended operation handler to register with
    *                  the Directory Server.
    */
-  public static void registerSupportedExtension(String oid,
-                          ExtendedOperationHandler handler)
+  public static void registerSupportedExtension(String oid, ExtendedOperationHandler<?> handler)
   {
     DirectoryServer.registerSupportedExtension(oid, handler);
   }
 
-
-
   /**
    * Deregisters the provided extended operation handler with the
    * Directory Server.
@@ -874,8 +779,6 @@
     DirectoryServer.deregisterSupportedExtension(oid);
   }
 
-
-
   /**
    * Retrieves the set of SASL mechanisms that are supported by the
    * Directory Server.  The mapping will be between the mechanism name
@@ -885,14 +788,11 @@
    * @return  The set of SASL mechanisms that are supported by the
    *          Directory Server.
    */
-  public static Map<String,SASLMechanismHandler>
-                     getSupportedSASLMechanisms()
+  public static Map<String, SASLMechanismHandler<?>> getSupportedSASLMechanisms()
   {
     return DirectoryServer.getSupportedSASLMechanisms();
   }
 
-
-
   /**
    * Retrieves the handler for the specified SASL mechanism.
    *
@@ -901,14 +801,11 @@
    * @return  The handler for the specified SASL mechanism, or
    *          <CODE>null</CODE> if there is none.
    */
-  public static SASLMechanismHandler
-       getSASLMechanismHandler(String name)
+  public static SASLMechanismHandler<?> getSASLMechanismHandler(String name)
   {
     return DirectoryServer.getSASLMechanismHandler(name);
   }
 
-
-
   /**
    * Registers the provided SASL mechanism handler with the Directory
    * Server.
@@ -917,15 +814,11 @@
    * @param  handler  The SASL mechanism handler to register with the
    *                  Directory Server.
    */
-  public static void
-       registerSASLMechanismHandler(String name,
-                                    SASLMechanismHandler handler)
+  public static void registerSASLMechanismHandler(String name, SASLMechanismHandler<?> handler)
   {
     DirectoryServer.registerSASLMechanismHandler(name, handler);
   }
 
-
-
   /**
    * Deregisters the provided SASL mechanism handler with the
    * Directory Server.
@@ -950,8 +843,6 @@
     DirectoryServer.registerShutdownListener(listener);
   }
 
-
-
   /**
    * Deregisters the provided shutdown listener with the Directory
    * Server.
@@ -965,8 +856,6 @@
     DirectoryServer.deregisterShutdownListener(listener);
   }
 
-
-
   /**
    * Retrieves the full version string for the Directory Server.
    *
@@ -977,4 +866,3 @@
     return DirectoryServer.getVersionString();
   }
 }
-
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/backends/GenericBackendTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/backends/GenericBackendTestCase.java
index f801b7e..af92aff 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/backends/GenericBackendTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/backends/GenericBackendTestCase.java
@@ -20,13 +20,14 @@
 import static org.testng.Assert.*;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
 
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.api.Backend;
 import org.opends.server.api.Backend.BackendOperation;
 import org.opends.server.core.DirectoryServer;
-import org.forgerock.opendj.ldap.DN;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
@@ -51,7 +52,7 @@
   @DataProvider(name = "backends")
   public Object[][] getBackends()
   {
-    ArrayList<Backend> backendList = new ArrayList<>(DirectoryServer.getBackends().values());
+    List<Backend<?>> backendList = new ArrayList<>(DirectoryServer.getBackends().values());
     Object[][] objectArray = new Object[backendList.size()][1];
     for (int i=0; i < objectArray.length; i++)
     {
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
index 552048e..1a6f96a 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/DefaultEntryCacheTestCase.java
@@ -16,27 +16,28 @@
  */
 package org.opends.server.extensions;
 
+import static org.testng.Assert.*;
+
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-import org.opends.server.TestCaseUtils;
-import org.testng.annotations.BeforeClass;
-import org.forgerock.opendj.server.config.meta.*;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.server.config.meta.FIFOEntryCacheCfgDefn;
+import org.forgerock.opendj.server.config.meta.SoftReferenceEntryCacheCfgDefn;
 import org.forgerock.opendj.server.config.server.EntryCacheCfg;
+import org.opends.server.TestCaseUtils;
 import org.opends.server.api.EntryCache;
 import org.opends.server.core.DirectoryServer;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.Entry;
 import org.opends.server.util.ServerConstants;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.AfterGroups;
+import org.testng.annotations.BeforeClass;
 import org.testng.annotations.BeforeGroups;
 import org.testng.annotations.Test;
 
-import static org.testng.Assert.*;
-
 /**
  * A set of test cases for default entry cache implementation.
  */
@@ -73,7 +74,7 @@
     TestCaseUtils.startServer();
 
     // Get default cache.
-    super.cache = DirectoryServer.getEntryCache();
+    super.cache = (EntryCache<EntryCacheCfg>) DirectoryServer.getEntryCache();
 
     // Configure and initialize all entry cache implementations.
     softRefCache = new SoftReferenceEntryCache();
@@ -114,11 +115,12 @@
     // Plug all cache implementations into default entry cache.
     final Method[] defaultCacheMethods =
         super.cache.getClass().getDeclaredMethods();
-    for (int i = 0; i < defaultCacheMethods.length; ++i) {
-      if (defaultCacheMethods[i].getName().equals("setCacheOrder")) {
-        defaultCacheMethods[i].setAccessible(true);
+    for (Method defaultCacheMethod : defaultCacheMethods)
+    {
+      if (defaultCacheMethod.getName().equals("setCacheOrder")) {
+        defaultCacheMethod.setAccessible(true);
         Object arglist[] = new Object[] { cacheOrderMap };
-        defaultCacheMethods[i].invoke(cache, arglist);
+        defaultCacheMethod.invoke(cache, arglist);
       }
     }
 
@@ -194,11 +196,12 @@
     SortedMap<Integer, EntryCache<? extends EntryCacheCfg>> emptyCacheOrderMap = new TreeMap<>();
     final Method[] defaultCacheMethods =
         super.cache.getClass().getDeclaredMethods();
-    for (int i = 0; i < defaultCacheMethods.length; ++i) {
-      if (defaultCacheMethods[i].getName().equals("setCacheOrder")) {
-        defaultCacheMethods[i].setAccessible(true);
+    for (Method defaultCacheMethod : defaultCacheMethods)
+    {
+      if (defaultCacheMethod.getName().equals("setCacheOrder")) {
+        defaultCacheMethod.setAccessible(true);
         Object arglist[] = new Object[] { emptyCacheOrderMap };
-        defaultCacheMethods[i].invoke(cache, arglist);
+        defaultCacheMethod.invoke(cache, arglist);
       }
     }
 
@@ -405,8 +408,7 @@
 
 
   @BeforeGroups(groups = "testDefaultCacheConcurrency")
-  public void cacheConcurrencySetup()
-         throws Exception
+  public void cacheConcurrencySetup() throws Exception
   {
     assertNull(cache.toVerboseString(),
       "Expected empty cache.  " + "Cache contents:" + ServerConstants.EOL +
@@ -416,8 +418,7 @@
 
 
   @AfterGroups(groups = "testDefaultCacheConcurrency")
-  public void cacheConcurrencyCleanup()
-         throws Exception
+  public void cacheConcurrencyCleanup() throws Exception
   {
     // Clear the cache so that other tests can start from scratch.
     super.cache.clear();
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/protocols/jmx/JmxTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/protocols/jmx/JmxTestCase.java
index d45474f..12fa6f6 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/protocols/jmx/JmxTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/protocols/jmx/JmxTestCase.java
@@ -27,13 +27,13 @@
 import java.util.concurrent.Callable;
 
 import org.assertj.core.api.Assertions;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.DirectoryServerTestCase;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.api.ConnectionHandler;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.ModifyOperationBasis;
 import org.opends.server.types.Attributes;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.Modification;
 import org.opends.server.util.TestTimer;
 import org.testng.annotations.BeforeClass;
@@ -68,7 +68,7 @@
    */
   protected JmxConnectionHandler getJmxConnectionHandler() throws Exception
   {
-    List<ConnectionHandler> handlers = DirectoryServer.getConnectionHandlers();
+    List<ConnectionHandler<?>> handlers = DirectoryServer.getConnectionHandlers();
     assertNotNull(handlers);
     JmxConnectionHandler jmxConnectionHandler = getJmxConnectionHandler(handlers);
     if (jmxConnectionHandler == null)
@@ -96,7 +96,7 @@
     return jmxConnectionHandler;
   }
 
-  private JmxConnectionHandler getJmxConnectionHandler(List<ConnectionHandler> handlers)
+  private JmxConnectionHandler getJmxConnectionHandler(List<ConnectionHandler<?>> handlers)
   {
     for (ConnectionHandler<?> handler : handlers)
     {

--
Gitblit v1.10.0