From 833ef2eb5fc04139d6b41b4bb96dc4db84e828d5 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Fri, 30 Aug 2013 10:02:05 +0000
Subject: [PATCH] More code cleanup and use of interfaces in dsreplication and ADS.

---
 opends/src/server/org/opends/server/tools/dsreplication/ReplicationUserData.java |    8 +-
 opends/src/ads/org/opends/admin/ads/TopologyCache.java                           |   30 ++-------
 opends/src/ads/org/opends/admin/ads/util/PreferredConnection.java                |   13 ++--
 opends/src/ads/org/opends/admin/ads/TopologyCacheException.java                  |    4 
 opends/src/ads/org/opends/admin/ads/util/ServerLoader.java                       |   19 ++----
 opends/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java  |   62 ++++++++++----------
 6 files changed, 60 insertions(+), 76 deletions(-)

diff --git a/opends/src/ads/org/opends/admin/ads/TopologyCache.java b/opends/src/ads/org/opends/admin/ads/TopologyCache.java
index 27603a8..475a322 100644
--- a/opends/src/ads/org/opends/admin/ads/TopologyCache.java
+++ b/opends/src/ads/org/opends/admin/ads/TopologyCache.java
@@ -23,7 +23,7 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011-2012 ForgeRock AS
+ *      Portions copyright 2011-2013 ForgeRock AS
  */
 package org.opends.admin.ads;
 
@@ -77,10 +77,9 @@
       new HashSet<ServerDescriptor>();
   private final Set<SuffixDescriptor> suffixes =
       new HashSet<SuffixDescriptor>();
-  private final LinkedHashSet<PreferredConnection> preferredConnections =
+  private final Set<PreferredConnection> preferredConnections =
       new LinkedHashSet<PreferredConnection>();
   private final TopologyCacheFilter filter = new TopologyCacheFilter();
-  private final boolean isMultiThreaded = true;
   private final static int MULTITHREAD_TIMEOUT = 90 * 1000;
   private static final Logger LOG =
       Logger.getLogger(TopologyCache.class.getName());
@@ -125,20 +124,10 @@
       for (Map<ServerProperty, Object> serverProperties : adsServers)
       {
         ServerLoader t = getServerLoader(serverProperties);
-        if (isMultiThreaded)
-        {
-          t.start();
-          threadSet.add(t);
-        }
-        else
-        {
-          t.run();
-        }
+        t.start();
+        threadSet.add(t);
       }
-      if (isMultiThreaded)
-      {
-        joinThreadSet(threadSet);
-      }
+      joinThreadSet(threadSet);
       /*
        * Try to consolidate things (even if the data is not complete).
        */
@@ -229,9 +218,6 @@
 
   /**
    * Reads the replication monitoring.
-   *
-   * @throws NamingException if an error occurs reading the replication
-   * monitoring.
    */
   private void readReplicationMonitoring()
   {
@@ -300,7 +286,7 @@
    *
    * @param cnx the list of preferred connections.
    */
-  public void setPreferredConnections(LinkedHashSet<PreferredConnection> cnx)
+  public void setPreferredConnections(Set<PreferredConnection> cnx)
   {
     preferredConnections.clear();
     preferredConnections.addAll(cnx);
@@ -421,12 +407,12 @@
    *
    * @return a set of error messages encountered in the TopologyCache.
    */
-  public LinkedHashSet<Message> getErrorMessages()
+  public Set<Message> getErrorMessages()
   {
     Set<TopologyCacheException> exceptions =
         new HashSet<TopologyCacheException>();
     Set<ServerDescriptor> theServers = getServers();
-    LinkedHashSet<Message> exceptionMsgs = new LinkedHashSet<Message>();
+    Set<Message> exceptionMsgs = new LinkedHashSet<Message>();
     for (ServerDescriptor server : theServers)
     {
       TopologyCacheException e = server.getLastException();
diff --git a/opends/src/ads/org/opends/admin/ads/TopologyCacheException.java b/opends/src/ads/org/opends/admin/ads/TopologyCacheException.java
index e4baf62..5918e5c 100644
--- a/opends/src/ads/org/opends/admin/ads/TopologyCacheException.java
+++ b/opends/src/ads/org/opends/admin/ads/TopologyCacheException.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2008 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.admin.ads;
@@ -149,8 +150,7 @@
   public String getHostPort()
   {
     int index = ldapUrl.indexOf("//");
-    String hostPort = ldapUrl.substring(index + 2);
-    return hostPort;
+    return ldapUrl.substring(index + 2);
   }
 
   /**
diff --git a/opends/src/ads/org/opends/admin/ads/util/PreferredConnection.java b/opends/src/ads/org/opends/admin/ads/util/PreferredConnection.java
index f856354..5a52a97 100644
--- a/opends/src/ads/org/opends/admin/ads/util/PreferredConnection.java
+++ b/opends/src/ads/org/opends/admin/ads/util/PreferredConnection.java
@@ -23,11 +23,13 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.admin.ads.util;
 
 import java.util.LinkedHashSet;
+import java.util.Set;
 
 import javax.naming.ldap.InitialLdapContext;
 
@@ -123,7 +125,7 @@
   /**
    * Commodity method that returns a PreferredConnection object with the
    * information on a given InitialLdapContext.
-   * @param ctx the connection we retrieve the inforamtion from.
+   * @param ctx the connection we retrieve the information from.
    * @return a preferred connection object.
    */
   public static PreferredConnection getPreferredConnection(
@@ -143,8 +145,7 @@
     {
       type = PreferredConnection.Type.LDAP;
     }
-    PreferredConnection cnx = new PreferredConnection(ldapUrl, type);
-    return cnx;
+    return new PreferredConnection(ldapUrl, type);
   }
 
 
@@ -152,14 +153,14 @@
   /**
    * Commodity method that generates a list of preferred connection (of just
    * one) with the information on a given InitialLdapContext.
-   * @param ctx the connection we retrieve the inforamtion from.
+   * @param ctx the connection we retrieve the information from.
    * @return a list containing the preferred connection object.
    */
-  public static LinkedHashSet<PreferredConnection> getPreferredConnections(
+  public static Set<PreferredConnection> getPreferredConnections(
       InitialLdapContext ctx)
   {
     PreferredConnection cnx = PreferredConnection.getPreferredConnection(ctx);
-    LinkedHashSet<PreferredConnection> returnValue =
+    Set<PreferredConnection> returnValue =
       new LinkedHashSet<PreferredConnection>();
     returnValue.add(cnx);
     return returnValue;
diff --git a/opends/src/ads/org/opends/admin/ads/util/ServerLoader.java b/opends/src/ads/org/opends/admin/ads/util/ServerLoader.java
index d8aa18f..bae1020 100644
--- a/opends/src/ads/org/opends/admin/ads/util/ServerLoader.java
+++ b/opends/src/ads/org/opends/admin/ads/util/ServerLoader.java
@@ -23,12 +23,14 @@
  *
  *
  *      Copyright 2008-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.admin.ads.util;
 
 import java.util.LinkedHashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -45,6 +47,8 @@
 import org.opends.admin.ads.TopologyCacheFilter;
 import org.opends.admin.ads.ADSContext.ServerProperty;
 
+import static org.opends.server.util.StaticUtils.close;
+
 /**
  * Class used to load the configuration of a server.  Basically the code
  * uses some provided properties and authentication information to connect
@@ -63,7 +67,7 @@
   private int timeout;
   private String dn;
   private String pwd;
-  private LinkedHashSet<PreferredConnection> preferredLDAPURLs;
+  private final LinkedHashSet<PreferredConnection> preferredLDAPURLs;
   private TopologyCacheFilter filter;
 
   private static final Logger LOG =
@@ -88,7 +92,7 @@
   public ServerLoader(Map<ServerProperty,Object> serverProperties,
       String dn, String pwd, ApplicationTrustManager trustManager,
       int timeout,
-      LinkedHashSet<PreferredConnection> preferredLDAPURLs,
+      Set<PreferredConnection> preferredLDAPURLs,
       TopologyCacheFilter filter)
   {
     this.serverProperties = serverProperties;
@@ -235,16 +239,7 @@
     finally
     {
       isOver = true;
-      try
-      {
-        if (ctx != null)
-        {
-          ctx.close();
-        }
-      }
-      catch (Throwable t)
-      {
-      }
+      close(ctx);
     }
   }
 
diff --git a/opends/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opends/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index a2f99b7..e38d677 100644
--- a/opends/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opends/src/server/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -846,7 +846,7 @@
       PurgeHistoricalUserData uData)
   {
     ReplicationCliReturnCode returnValue;
-    LinkedList<String> baseDNs = uData.getBaseDNs();
+    List<String> baseDNs = uData.getBaseDNs();
     checkSuffixesForLocalPurgeHistorical(baseDNs, false);
     if (!baseDNs.isEmpty())
     {
@@ -1001,7 +1001,7 @@
 
     if (ctx != null)
     {
-      LinkedList<String> baseDNs = uData.getBaseDNs();
+      List<String> baseDNs = uData.getBaseDNs();
       checkSuffixesForPurgeHistorical(baseDNs, ctx, false);
       if (!baseDNs.isEmpty())
       {
@@ -1663,7 +1663,7 @@
     String bindDn1 = argParser.getBindDn1();
     String pwd1 = argParser.getBindPassword1();
     String pwd = null;
-    LinkedHashMap<String, String> pwdFile = null;
+    Map<String, String> pwdFile = null;
     if (argParser.bindPassword1Arg.isPresent())
     {
       pwd = argParser.bindPassword1Arg.getValue();
@@ -2929,7 +2929,7 @@
     String hostSource = argParser.getHostNameSource();
     int portSource = argParser.getPortSource();
 
-    LinkedHashMap<String, String> pwdFile = null;
+    Map<String, String> pwdFile = null;
 
     if (argParser.getSecureArgsList().bindPasswordFileArg.isPresent())
     {
@@ -4118,7 +4118,7 @@
 
     if (errorMessages.isEmpty())
     {
-      LinkedList<String> suffixes = uData.getBaseDNs();
+      List<String> suffixes = uData.getBaseDNs();
       checkSuffixesForEnableReplication(suffixes, ctx1, ctx2, false, uData);
       if (!suffixes.isEmpty())
       {
@@ -4250,7 +4250,7 @@
       // This done is for the message informing that we are connecting.
       printProgress(formatter.getFormattedDone());
       printlnProgress();
-      LinkedList<String> suffixes = uData.getBaseDNs();
+      List<String> suffixes = uData.getBaseDNs();
       checkSuffixesForDisableReplication(suffixes, ctx, false,
           !uData.disableReplicationServer(), !uData.disableReplicationServer());
       if (!suffixes.isEmpty() || uData.disableReplicationServer() ||
@@ -4414,7 +4414,7 @@
 
     if ((ctxSource != null) && (ctxDestination != null))
     {
-      LinkedList<String> baseDNs = uData.getBaseDNs();
+      List<String> baseDNs = uData.getBaseDNs();
       checkSuffixesForInitializeReplication(baseDNs, ctxSource, ctxDestination,
           false);
       if (!baseDNs.isEmpty())
@@ -4531,7 +4531,7 @@
     }
     if (ctx != null)
     {
-      LinkedList<String> baseDNs = uData.getBaseDNs();
+      List<String> baseDNs = uData.getBaseDNs();
       checkSuffixesForInitializeReplication(baseDNs, ctx, false);
       if (!baseDNs.isEmpty())
       {
@@ -4618,7 +4618,7 @@
     }
     if (ctx != null)
     {
-      LinkedList<String> baseDNs = uData.getBaseDNs();
+      List<String> baseDNs = uData.getBaseDNs();
       checkSuffixesForInitializeReplication(baseDNs, ctx, false);
       if (!baseDNs.isEmpty())
       {
@@ -4707,7 +4707,7 @@
     }
     if (ctx != null)
     {
-      LinkedList<String> baseDNs = uData.getBaseDNs();
+      List<String> baseDNs = uData.getBaseDNs();
       checkSuffixesForInitializeReplication(baseDNs, ctx, false);
       if (!baseDNs.isEmpty())
       {
@@ -5509,12 +5509,12 @@
       InitialLdapContext ctx2, EnableReplicationUserData uData)
   throws ReplicationCliException
   {
-    LinkedHashSet<String> twoReplServers = new LinkedHashSet<String>();
-    LinkedHashSet<String> allRepServers = new LinkedHashSet<String>();
-    HashMap<String, LinkedHashSet<String>> hmRepServers =
-      new HashMap<String, LinkedHashSet<String>>();
-    Set<Integer> usedReplicationServerIds = new HashSet<Integer>();
-    HashMap<String, Set<Integer>> hmUsedReplicationDomainIds =
+    final Set<String> twoReplServers = new LinkedHashSet<String>();
+    final Set<String> allRepServers = new LinkedHashSet<String>();
+    final Map<String, Set<String>> hmRepServers =
+        new HashMap<String, Set<String>>();
+    final Set<Integer> usedReplicationServerIds = new HashSet<Integer>();
+    final Map<String, Set<Integer>> hmUsedReplicationDomainIds =
       new HashMap<String, Set<Integer>>();
 
     ServerDescriptor server1;
@@ -5555,10 +5555,10 @@
     {
       // Inform the user of the potential errors that we found in the already
       // registered servers.
-      LinkedHashSet<Message> messages = new LinkedHashSet<Message>();
+      final Set<Message> messages = new LinkedHashSet<Message>();
       try
       {
-        LinkedHashSet<PreferredConnection> cnx =
+        final Set<PreferredConnection> cnx =
           new LinkedHashSet<PreferredConnection>();
         cnx.addAll(PreferredConnection.getPreferredConnections(ctx1));
         cnx.addAll(PreferredConnection.getPreferredConnections(ctx2));
@@ -5898,7 +5898,7 @@
       printProgress(formatter.getFormattedDone());
       printlnProgress();
     }
-    LinkedList<String> baseDNs = uData.getBaseDNs();
+    List<String> baseDNs = uData.getBaseDNs();
     if (!adsAlreadyReplicated)
     {
       boolean found = false;
@@ -5928,7 +5928,7 @@
 
     try
     {
-      LinkedHashSet<PreferredConnection> cnx =
+      Set<PreferredConnection> cnx =
         new LinkedHashSet<PreferredConnection>();
       cnx.addAll(PreferredConnection.getPreferredConnections(ctx1));
       cnx.addAll(PreferredConnection.getPreferredConnections(ctx2));
@@ -5996,7 +5996,7 @@
 
     for (String baseDN : uData.getBaseDNs())
     {
-      LinkedHashSet<String> repServersForBaseDN = new LinkedHashSet<String>();
+      Set<String> repServersForBaseDN = new LinkedHashSet<String>();
       repServersForBaseDN.addAll(getReplicationServers(baseDN, cache1,
           server1));
       repServersForBaseDN.addAll(getReplicationServers(baseDN, cache2,
@@ -6327,7 +6327,7 @@
     if (!argParser.isInteractive())
     {
       // Inform the user of the potential errors that we found.
-      LinkedHashSet<Message> messages = new LinkedHashSet<Message>();
+      Set<Message> messages = new LinkedHashSet<Message>();
       if (cache != null)
       {
         messages.addAll(cache.getErrorMessages());
@@ -6400,7 +6400,7 @@
       // Inform the user
       if (beforeLastRepServer.size() > 0)
       {
-        LinkedHashSet<String> baseDNs = new LinkedHashSet<String>();
+        Set<String> baseDNs = new LinkedHashSet<String>();
         for (SuffixDescriptor suffix : beforeLastRepServer)
         {
           if (!Utils.areDnsEqual(suffix.getDN(),
@@ -6446,7 +6446,7 @@
       {
         // Check that there are other replicas and that this message, really
         // makes sense to be displayed.
-        LinkedHashSet<String> suffixArg = new LinkedHashSet<String>();
+        Set<String> suffixArg = new LinkedHashSet<String>();
         for (SuffixDescriptor suffix : lastRepServer)
         {
           boolean baseDNSpecified = false;
@@ -6832,7 +6832,7 @@
     if (!argParser.isInteractive())
     {
       // Inform the user of the potential errors that we found.
-      LinkedHashSet<Message> messages = new LinkedHashSet<Message>();
+      Set<Message> messages = new LinkedHashSet<Message>();
       messages.addAll(cache.getErrorMessages());
       if (!messages.isEmpty())
       {
@@ -7018,7 +7018,7 @@
    */
   private void displayStatus(
       List<Set<ReplicaDescriptor>> orderedReplicaLists,
-      boolean scriptFriendly, LinkedHashSet<PreferredConnection> cnx,
+      boolean scriptFriendly, Set<PreferredConnection> cnx,
       Set<ServerDescriptor> servers,
       Set<ReplicaDescriptor> replicasWithNoReplicationServer,
       Set<ServerDescriptor> serversWithNoReplica)
@@ -7309,7 +7309,7 @@
    * @param scriptFriendly wheter to display it on script-friendly mode or not.
    */
   private void displayStatus(Set<ServerDescriptor> servers,
-      boolean scriptFriendly, LinkedHashSet<PreferredConnection> cnx)
+      boolean scriptFriendly, Set<PreferredConnection> cnx)
   {
     TableBuilder tableBuilder = new TableBuilder();
     tableBuilder.appendHeading(INFO_REPLICATION_STATUS_HEADER_SERVERPORT.get());
@@ -7546,7 +7546,7 @@
    */
   private void configureAsReplicationServer(InitialLdapContext ctx,
       int replicationPort, boolean useSecureReplication,
-      LinkedHashSet<String> replicationServers,
+      Set<String> replicationServers,
       Set<Integer> usedReplicationServerIds) throws OpenDsException
   {
     printProgress(formatter.getFormattedWithPoints(
@@ -8592,7 +8592,7 @@
   private void removeReferencesInServer(ServerDescriptor server,
       String replicationServer, String bindDn, String pwd,
       Collection<String> baseDNs, boolean updateReplicationServers,
-      LinkedHashSet<PreferredConnection> cnx)
+      Set<PreferredConnection> cnx)
   throws ReplicationCliException
   {
     TopologyCacheFilter filter = new TopologyCacheFilter();
@@ -9570,7 +9570,7 @@
       ReplicationUserData uData)
   throws ArgumentException
   {
-    LinkedList<String> baseDNs = uData.getBaseDNs();
+    List<String> baseDNs = uData.getBaseDNs();
     StringArgument baseDNsArg = new StringArgument("baseDNs",
         OPTION_SHORT_BASEDN,
         OPTION_LONG_BASEDN, false, true, true, INFO_BASEDN_PLACEHOLDER.get(),
@@ -10570,7 +10570,7 @@
     PointAdder pointAdder = new PointAdder(this);
     try
     {
-      LinkedHashSet<PreferredConnection> cnx =
+      Set<PreferredConnection> cnx =
         new LinkedHashSet<PreferredConnection>();
       cnx.addAll(PreferredConnection.getPreferredConnections(
           adsCtx1.getDirContext()));
diff --git a/opends/src/server/org/opends/server/tools/dsreplication/ReplicationUserData.java b/opends/src/server/org/opends/server/tools/dsreplication/ReplicationUserData.java
index 5ab46c5..0d7c70f 100644
--- a/opends/src/server/org/opends/server/tools/dsreplication/ReplicationUserData.java
+++ b/opends/src/server/org/opends/server/tools/dsreplication/ReplicationUserData.java
@@ -23,11 +23,13 @@
  *
  *
  *      Copyright 2008-2009 Sun Microsystems, Inc.
+ *      Portions Copyright 2013 ForgeRock AS.
  */
 
 package org.opends.server.tools.dsreplication;
 
 import java.util.LinkedList;
+import java.util.List;
 
 /**
  * This class is used to store the information provided by the user in the
@@ -37,7 +39,7 @@
  */
 public abstract class ReplicationUserData
 {
-  private LinkedList<String> baseDNs = new LinkedList<String>();
+  private final LinkedList<String> baseDNs = new LinkedList<String>();
   private String adminUid;
   private String adminPwd;
 
@@ -81,7 +83,7 @@
    * Returns the Base DNs to replicate.
    * @return the Base DNs to replicate.
    */
-  public LinkedList<String> getBaseDNs()
+  public List<String> getBaseDNs()
   {
     return new LinkedList<String>(baseDNs);
   }
@@ -90,7 +92,7 @@
    * Sets the Base DNs to replicate.
    * @param baseDNs the Base DNs to replicate.
    */
-  public void setBaseDNs(LinkedList<String> baseDNs)
+  public void setBaseDNs(List<String> baseDNs)
   {
     this.baseDNs.clear();
     this.baseDNs.addAll(baseDNs);

--
Gitblit v1.10.0