From ad85b8dfd8775fa342dcf6d0deaa380be53d080f Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 20 Apr 2015 09:32:50 +0000
Subject: [PATCH] Code cleanup: Extracted methods, used ternary operator.

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java |    2 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java   |   20 -
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java         |   79 +++----
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java         |  110 +++++------
 opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java     |  173 ++++++++++--------
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java       |   58 +++--
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java   |   31 ++-
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java        |   59 ++----
 8 files changed, 267 insertions(+), 265 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
index 7859642..4c22237 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
@@ -31,6 +31,7 @@
 import java.util.TreeSet;
 
 import org.opends.admin.ads.ADSContext;
+import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
 
 /** The class that describes the backend configuration. */
 public class BackendDescriptor
@@ -52,6 +53,7 @@
     /** The backend is a backup backend. */
     BACKUP,
     /** The backend is a local backend. */
+    @RemoveOnceLocalDBBackendIsPluggable
     LOCAL_DB,
     /** The backend is a LDIF backend. */
     LDIF,
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
index 22fb8be..0a413d6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
@@ -24,9 +24,11 @@
  *      Copyright 2008-2010 Sun Microsystems, Inc.
  *      Portions Copyright 2015 ForgeRock AS
  */
-
 package org.opends.guitools.controlpanel.datamodel;
 
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
+
+import java.util.Collections;
 import java.util.Set;
 import java.util.SortedSet;
 import java.util.TreeSet;
@@ -40,7 +42,8 @@
 public class IndexDescriptor extends AbstractIndexDescriptor
 {
 
-  private static final String[] DATABASE_INDEXES = new String[] {"dn2id", "id2children", "id2subtree"};
+  private static final String[] DATABASE_INDEXES = new String[] {
+    DN2ID_INDEX_NAME, ID2CHILDREN_INDEX_NAME, ID2SUBTREE_INDEX_NAME };
 
   private final SortedSet<IndexTypeDescriptor> types = new TreeSet<IndexTypeDescriptor>();
   private final boolean isDatabaseIndex;
@@ -51,6 +54,17 @@
   /**
    * Constructor of the index descriptor.
    *
+   * @param indexName
+   *          name of the index.
+   */
+  public IndexDescriptor(String indexName)
+  {
+    this(indexName, null, null, Collections.EMPTY_SET, -1);
+  }
+
+  /**
+   * Constructor of the index descriptor.
+   *
    * @param name
    *          name of the index.
    * @param attr
@@ -62,9 +76,8 @@
    * @param entryLimit
    *          the entry limit for the index.
    */
-  public IndexDescriptor(String name, AttributeType attr,
-      BackendDescriptor backend,
-      Set<IndexTypeDescriptor> types, int entryLimit)
+  public IndexDescriptor(
+      String name, AttributeType attr, BackendDescriptor backend, Set<IndexTypeDescriptor> types, int entryLimit)
   {
     super(name, backend);
     this.attr = attr;
@@ -134,7 +147,6 @@
         return true;
       }
     }
-
     return false;
   }
 
@@ -159,9 +171,9 @@
 
   private boolean backendIdEqual(IndexDescriptor index)
   {
-    return getBackend() != null
-        && index.getBackend() != null
-        && getBackend().getBackendID().equals(index.getBackend().getBackendID());
+    BackendDescriptor backend1 = getBackend();
+    BackendDescriptor backend2 = index.getBackend();
+    return backend1 != null && backend2 != null && backend1.getBackendID().equals(backend2.getBackendID());
   }
 
   /**
@@ -188,5 +200,4 @@
     }
     hashCode = (getName()+sb+entryLimit).hashCode();
   }
-
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
index 917d9ba..fd0534c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
@@ -24,7 +24,6 @@
  *      Copyright 2008-2009 Sun Microsystems, Inc.
  *      Portions Copyright 2014-2015 ForgeRock AS
  */
-
 package org.opends.guitools.controlpanel.ui;
 
 import static org.opends.messages.AdminToolMessages.*;
@@ -33,11 +32,10 @@
 import java.awt.GridBagConstraints;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.SortedSet;
@@ -49,6 +47,7 @@
 import javax.swing.ListCellRenderer;
 import javax.swing.SwingUtilities;
 
+import org.forgerock.i18n.LocalizableMessage;
 import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -66,7 +65,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.IndexCellRenderer;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.guitools.controlpanel.util.ViewPositions;
-import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * The panel that appears when the user wants to rebuild indexes.
@@ -84,12 +82,9 @@
   private final Map<String, SortedSet<AbstractIndexDescriptor>> hmIndexes =
       new HashMap<String, SortedSet<AbstractIndexDescriptor>>();
 
-  /**
-   * Constructor of the panel.
-   */
+  /** Constructor of the panel. */
   public RebuildIndexPanel()
   {
-    super();
     createLayout();
   }
 
@@ -203,8 +198,7 @@
   @Override
   public void configurationChanged(final ConfigurationChangeEvent ev)
   {
-    ServerDescriptor desc = ev.getNewDescriptor();
-    refreshContents(desc);
+    refreshContents(ev.getNewDescriptor());
   }
 
   /**
@@ -220,17 +214,7 @@
 
     updateBaseDNComboBoxModel((DefaultComboBoxModel) baseDNs.getModel(), desc);
 
-    // Check that all backends
-    boolean allDisabled = false;
-    for (BackendDescriptor backend : desc.getBackends())
-    {
-      if (displayBackend(backend) && backend.isEnabled())
-      {
-        allDisabled = false;
-        break;
-      }
-    }
-    if (!allDisabled)
+    if (!allDisabled(desc.getBackends()))
     {
       updateErrorPaneAndOKButtonIfAuthRequired(desc,
               isLocal() ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_DISABLE_BACKEND.get()
@@ -274,6 +258,18 @@
     });
   }
 
+  private boolean allDisabled(Set<BackendDescriptor> backends)
+  {
+    for (BackendDescriptor backend : backends)
+    {
+      if (displayBackend(backend) && backend.isEnabled())
+      {
+        return false;
+      }
+    }
+    return true;
+  }
+
   /** {@inheritDoc} */
   @Override
   public void cancelClicked()
@@ -361,13 +357,8 @@
 
   private String getSelectedBaseDN()
   {
-    String dn = null;
     CategorizedComboBoxElement o = (CategorizedComboBoxElement) baseDNs.getSelectedItem();
-    if (o != null)
-    {
-      dn = (String) o.getValue();
-    }
-    return dn;
+    return o != null ? (String) o.getValue() : null;
   }
 
   private void filterIndexes(final Map<String, SortedSet<AbstractIndexDescriptor>> hmIndexes)
@@ -375,32 +366,28 @@
     // Remove the indexes that are not to be added.
     for (SortedSet<AbstractIndexDescriptor> indexes : hmIndexes.values())
     {
-      List<AbstractIndexDescriptor> toRemove = new ArrayList<AbstractIndexDescriptor>();
-      for (AbstractIndexDescriptor index : indexes)
+      for (Iterator<AbstractIndexDescriptor> it = indexes.iterator(); it.hasNext();)
       {
-        if (!mustBeDisplayed(index))
+        if (!mustBeDisplayed(it.next()))
         {
-          toRemove.add(index);
+          it.remove();
         }
       }
-      indexes.removeAll(toRemove);
     }
   }
 
   private boolean mustBeDisplayed(final AbstractIndexDescriptor index)
   {
-    boolean mustBeDisplayed = true;
     if (index instanceof IndexDescriptor)
     {
       for (String name : RebuildIndexTask.INDEXES_NOT_TO_SPECIFY)
       {
         if (name.equalsIgnoreCase(index.getName()))
         {
-          mustBeDisplayed = false;
-          break;
+          return false;
         }
       }
     }
-    return mustBeDisplayed;
+    return true;
   }
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index 4a5ba6e..cf491c1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -59,6 +59,7 @@
 import javax.naming.directory.SearchControls;
 import javax.naming.directory.SearchResult;
 import javax.swing.Box;
+import javax.swing.ComboBoxModel;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JComboBox;
 import javax.swing.JComponent;
@@ -792,16 +793,7 @@
       {
         if (selectedItem == null)
         {
-          // Look for the first element that is not a category
-          for (int i = 0; i < combo.getModel().getSize(); i++)
-          {
-            Object item = combo.getModel().getElementAt(i);
-            if (item instanceof CategorizedComboBoxElement && !isCategory(item))
-            {
-              selectedItem = item;
-              break;
-            }
-          }
+          selectedItem = firstNonCategoryItem(combo.getModel());
         }
         if (selectedItem != null)
         {
@@ -817,6 +809,19 @@
         selectedItem = o;
       }
     }
+
+    private Object firstNonCategoryItem(ComboBoxModel model)
+    {
+      for (int i = 0; i < model.getSize(); i++)
+      {
+        Object item = model.getElementAt(i);
+        if (item instanceof CategorizedComboBoxElement && !isCategory(item))
+        {
+          return item;
+        }
+      }
+      return null;
+    }
   }
 
   /**
@@ -1219,22 +1224,7 @@
   private void updatePane(final JEditorPane pane, final LocalizableMessage title, final Font titleFont,
       final LocalizableMessage details, final Font detailsFont, final PanelType type)
   {
-    String text;
-    switch (type)
-    {
-    case ERROR:
-      text = Utilities.getFormattedError(title, titleFont, details, detailsFont);
-      break;
-    case CONFIRMATION:
-      text = Utilities.getFormattedConfirmation(title, titleFont, details, detailsFont);
-      break;
-    case WARNING:
-      text = Utilities.getFormattedWarning(title, titleFont, details, detailsFont);
-      break;
-    default:
-      text = Utilities.getFormattedSuccess(title, titleFont, details, detailsFont);
-      break;
-    }
+    String text = getText(type, title, titleFont, details, detailsFont);
     if (!text.equals(lastDisplayedError))
     {
       LocalizableMessage wrappedTitle = Utilities.wrapHTML(title, 80);
@@ -1274,6 +1264,22 @@
     }
   }
 
+  private String getText(
+      PanelType type, LocalizableMessage title, Font titleFont, LocalizableMessage details, Font detailsFont)
+  {
+    switch (type)
+    {
+    case ERROR:
+      return Utilities.getFormattedError(title, titleFont, details, detailsFont);
+    case CONFIRMATION:
+      return Utilities.getFormattedConfirmation(title, titleFont, details, detailsFont);
+    case WARNING:
+      return Utilities.getFormattedWarning(title, titleFont, details, detailsFont);
+    default:
+      return Utilities.getFormattedSuccess(title, titleFont, details, detailsFont);
+    }
+  }
+
   /**
    * Commodity method used to update the elements of a combo box that contains
    * the different user backends. If no backends are found the combo box will be
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
index 542bc6e..4afa638 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
@@ -52,6 +52,7 @@
 import javax.swing.ListCellRenderer;
 import javax.swing.SwingUtilities;
 
+import org.forgerock.i18n.LocalizableMessage;
 import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
 import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -71,7 +72,6 @@
 import org.opends.guitools.controlpanel.ui.renderer.IndexComboBoxCellRenderer;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.guitools.controlpanel.util.ViewPositions;
-import org.forgerock.i18n.LocalizableMessage;
 
 /**
  * The panel that appears when the user wants to verify an index.
@@ -92,9 +92,7 @@
   private JLabel lIndex;
   private JLabel lNoBaseDNsFound;
 
-  /**
-   * Constructor of the panel.
-   */
+  /** Constructor of the panel. */
   public VerifyIndexPanel()
   {
     super();
@@ -102,6 +100,7 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public void setInfo(ControlPanelInfo info)
   {
     super.setInfo(info);
@@ -112,12 +111,14 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public void indexModified(IndexModifiedEvent ev)
   {
     refreshContents(getInfo().getServerDescriptor());
   }
 
   /** {@inheritDoc} */
+  @Override
   public void backendIndexesModified(IndexModifiedEvent ev)
   {
     refreshContents(getInfo().getServerDescriptor());
@@ -146,6 +147,7 @@
     baseDNs.addItemListener(listener);
     baseDNs.addItemListener(new ItemListener()
     {
+      @Override
       public void itemStateChanged(ItemEvent ev)
       {
         comboBoxSelected(hmIndexes, (CategorizedComboBoxElement) baseDNs.getSelectedItem(), addRemove);
@@ -229,6 +231,7 @@
     verifyIndexContents.setSelected(true);
     listener = new ItemListener()
     {
+      @Override
       public void itemStateChanged(ItemEvent ev)
       {
         addRemove.setEnabled(verifyIndexContents.isSelected());
@@ -241,18 +244,21 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public LocalizableMessage getTitle()
   {
     return INFO_CTRL_PANEL_VERIFY_INDEXES_PANEL_TITLE.get();
   }
 
   /** {@inheritDoc} */
+  @Override
   public Component getPreferredFocusComponent()
   {
     return baseDNs;
   }
 
   /** {@inheritDoc} */
+  @Override
   public void configurationChanged(ConfigurationChangeEvent ev)
   {
     refreshContents(ev.getNewDescriptor());
@@ -264,6 +270,7 @@
     updateBaseDNComboBoxModel((DefaultComboBoxModel) baseDNs.getModel(), desc);
     SwingUtilities.invokeLater(new Runnable()
     {
+      @Override
       public void run()
       {
         ViewPositions pos;
@@ -300,6 +307,7 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public void cancelClicked()
   {
     setPrimaryValid(lBaseDN);
@@ -309,6 +317,7 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   public void okClicked()
   {
     setPrimaryValid(lBaseDN);
@@ -381,6 +390,7 @@
   }
 
   /** {@inheritDoc} */
+  @Override
   protected boolean displayBackend(BackendDescriptor backend)
   {
     return !backend.isConfigBackend() && (backend.getType() == BackendDescriptor.Type.LOCAL_DB
@@ -389,24 +399,14 @@
 
   private String getSelectedBaseDN()
   {
-    String dn = null;
     CategorizedComboBoxElement o = (CategorizedComboBoxElement) baseDNs.getSelectedItem();
-    if (o != null)
-    {
-      dn = (String) o.getValue();
-    }
-    return dn;
+    return o != null ? (String) o.getValue() : null;
   }
 
   private AbstractIndexDescriptor getSelectedIndex()
   {
-    AbstractIndexDescriptor index = null;
     CategorizedComboBoxElement o = (CategorizedComboBoxElement) keyEntryIDs.getSelectedItem();
-    if (o != null)
-    {
-      index = (AbstractIndexDescriptor) o.getValue();
-    }
-    return index;
+    return o != null ? (AbstractIndexDescriptor) o.getValue() : null;
   }
 
   private void updateVerifyKeyEntriesComboBox()
@@ -481,18 +481,21 @@
     }
 
     /** {@inheritDoc} */
+    @Override
     public Type getType()
     {
       return Type.VERIFY_INDEXES;
     }
 
     /** {@inheritDoc} */
+    @Override
     public LocalizableMessage getTaskDescription()
     {
       return INFO_CTRL_PANEL_VERIFY_INDEX_TASK_DESCRIPTION.get(baseDN);
     }
 
     /** {@inheritDoc} */
+    @Override
     public boolean canLaunch(Task taskToBeLaunched, Collection<LocalizableMessage> incompatibilityReasons)
     {
       boolean canLaunch = true;
@@ -516,6 +519,7 @@
     }
 
     /** {@inheritDoc} */
+    @Override
     public void runTask()
     {
       state = State.RUNNING;
@@ -523,19 +527,10 @@
       try
       {
         List<String> arguments = getCommandLineArguments();
-        String[] args = new String[arguments.size()];
+        String[] args = arguments.toArray(new String[arguments.size()]);
 
-        arguments.toArray(args);
         returnCode = executeCommandLine(getCommandLinePath(), args);
-
-        if (returnCode != 0)
-        {
-          state = State.FINISHED_WITH_ERROR;
-        }
-        else
-        {
-          state = State.FINISHED_SUCCESSFULLY;
-        }
+        state = returnCode == 0 ? State.FINISHED_SUCCESSFULLY : State.FINISHED_WITH_ERROR;
       }
       catch (Throwable t)
       {
@@ -545,6 +540,7 @@
     }
 
     /** {@inheritDoc} */
+    @Override
     protected List<String> getCommandLineArguments()
     {
       List<String> args = new ArrayList<String>();
@@ -558,28 +554,13 @@
         for (AbstractIndexDescriptor index : model.getData())
         {
           args.add("--index");
-          if (index instanceof VLVIndexDescriptor)
-          {
-            args.add(Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index));
-          }
-          else
-          {
-            args.add(index.getName());
-          }
+          args.add(getName(index));
         }
       }
       else
       {
         args.add("--index");
-        AbstractIndexDescriptor index = getSelectedIndex();
-        if (index instanceof VLVIndexDescriptor)
-        {
-          args.add(Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index));
-        }
-        else
-        {
-          args.add(index.getName());
-        }
+        getName(getSelectedIndex());
         args.add("--clean");
       }
 
@@ -588,7 +569,17 @@
       return args;
     }
 
+    private String getName(AbstractIndexDescriptor index)
+    {
+      if (index instanceof VLVIndexDescriptor)
+      {
+        return Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index);
+      }
+      return index.getName();
+    }
+
     /** {@inheritDoc} */
+    @Override
     protected String getCommandLinePath()
     {
       return getCommandLinePath("verify-index");
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
index 6caa325..105ea17 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -27,6 +27,7 @@
 package org.opends.guitools.controlpanel.util;
 
 import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
 
 import java.net.InetAddress;
 import java.text.DateFormat;
@@ -96,7 +97,6 @@
 import org.opends.server.admin.std.client.SNMPConnectionHandlerCfgClient;
 import org.opends.server.admin.std.client.TaskBackendCfgClient;
 import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
-import org.opends.server.backends.pluggable.SuffixContainer;
 import org.opends.server.config.ConfigConstants;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.tools.tasks.TaskEntry;
@@ -492,13 +492,10 @@
   private void readBackendIndexes(final Set<IndexDescriptor> indexes, final List<OpenDsException> errors,
       final PluggableBackendCfgClient db)
   {
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+    indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
     // FIXME: Remove the two following indexes when they will be deleted
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+    indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+    indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
     try
     {
       for (final String indexName : db.listBackendIndexes())
@@ -555,14 +552,11 @@
       errors.add(oe);
     }
 
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+    indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
     if (localDBBackend.isSubordinateIndexesEnabled())
     {
-      indexes.add(new IndexDescriptor(
-          SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-      indexes.add(new IndexDescriptor(
-          SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+      indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+      indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
     }
 
     try
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
index 6035e22..d54f77b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
@@ -24,10 +24,10 @@
  *      Copyright 2008-2011 Sun Microsystems, Inc.
  *      Portions Copyright 2013-2015 ForgeRock AS.
  */
-
 package org.opends.guitools.controlpanel.util;
 
 import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
 
 import java.net.InetAddress;
 import java.util.ArrayList;
@@ -59,7 +59,6 @@
 import org.opends.server.admin.std.server.BackendVLVIndexCfg;
 import org.opends.server.admin.std.server.BackupBackendCfg;
 import org.opends.server.admin.std.server.ConnectionHandlerCfg;
-import org.opends.server.admin.std.server.CryptoManagerCfg;
 import org.opends.server.admin.std.server.HTTPConnectionHandlerCfg;
 import org.opends.server.admin.std.server.JMXConnectionHandlerCfg;
 import org.opends.server.admin.std.server.LDAPConnectionHandlerCfg;
@@ -79,7 +78,7 @@
 import org.opends.server.admin.std.server.RootDNUserCfg;
 import org.opends.server.admin.std.server.SNMPConnectionHandlerCfg;
 import org.opends.server.admin.std.server.TaskBackendCfg;
-import org.opends.server.backends.pluggable.SuffixContainer;
+import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.DN;
 import org.opends.server.types.OpenDsException;
@@ -234,46 +233,7 @@
         if (backend instanceof LocalDBBackendCfg)
         {
           type = BackendDescriptor.Type.LOCAL_DB;
-          final LocalDBBackendCfg db = (LocalDBBackendCfg) backend;
-          try
-          {
-            for (final String indexName : db.listLocalDBIndexes())
-            {
-              final LocalDBIndexCfg index = db.getLocalDBIndex(indexName);
-              indexes.add(new IndexDescriptor(index.getAttribute().getNameOrOID(), index.getAttribute(), null,
-                  IndexTypeDescriptor.fromLocalDBIndexTypes(index.getIndexType()), index.getIndexEntryLimit()));
-            }
-          }
-          catch (final ConfigException ce)
-          {
-            errors.add(toConfigException(ce));
-          }
-          indexes.add(new IndexDescriptor(
-              SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-          if (db.isSubordinateIndexesEnabled())
-          {
-            indexes.add(new IndexDescriptor(
-                SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-            indexes.add(new IndexDescriptor(
-                SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-          }
-
-          try
-          {
-            for (final String vlvIndexName : db.listLocalDBVLVIndexes())
-            {
-              final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName);
-              final String s = index.getSortOrder();
-              final List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
-              vlvIndexes.add(new VLVIndexDescriptor(
-                  index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()),
-                  index.getFilter(), sortOrder));
-            }
-          }
-          catch (final ConfigException ce)
-          {
-            errors.add(toConfigException(ce));
-          }
+          refreshLocalDBBackendConfig(errors, backend, indexes, vlvIndexes);
         }
         else if (backend instanceof PluggableBackendCfg)
         {
@@ -335,13 +295,10 @@
   private void readBackendIndexes(final Set<IndexDescriptor> indexes, final List<OpenDsException> errors,
       final PluggableBackendCfg db)
   {
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+    indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
     // FIXME: Remove the two following indexes when they will be deleted
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
-    indexes.add(new IndexDescriptor(
-        SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+    indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+    indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
     try
     {
       for (final String indexName : db.listBackendIndexes())
@@ -378,34 +335,73 @@
     }
   }
 
-  private boolean readIfReplicationIsSecure(final RootCfg root, final List<OpenDsException> errors)
+  @RemoveOnceLocalDBBackendIsPluggable
+  private void refreshLocalDBBackendConfig(final List<OpenDsException> errors, final BackendCfg backend,
+      final Set<IndexDescriptor> indexes, final Set<VLVIndexDescriptor> vlvIndexes)
   {
-    boolean isReplicationSecure = false;
+    final LocalDBBackendCfg db = (LocalDBBackendCfg) backend;
     try
     {
-      final CryptoManagerCfg cryptoManager = root.getCryptoManager();
-      isReplicationSecure = cryptoManager.isSSLEncryption();
+      for (final String indexName : db.listLocalDBIndexes())
+      {
+        final LocalDBIndexCfg index = db.getLocalDBIndex(indexName);
+        indexes.add(new IndexDescriptor(index.getAttribute().getNameOrOID(), index.getAttribute(), null,
+            IndexTypeDescriptor.fromLocalDBIndexTypes(index.getIndexType()), index.getIndexEntryLimit()));
+      }
     }
     catch (final ConfigException ce)
     {
       errors.add(toConfigException(ce));
     }
-    return isReplicationSecure;
+    indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
+    if (db.isSubordinateIndexesEnabled())
+    {
+      indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+      indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
+    }
+
+    try
+    {
+      for (final String vlvIndexName : db.listLocalDBVLVIndexes())
+      {
+        final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName);
+        final String s = index.getSortOrder();
+        final List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
+        vlvIndexes.add(new VLVIndexDescriptor(index.getName(), null, index.getBaseDN(), VLVIndexDescriptor
+            .toSearchScope(index.getScope()), index.getFilter(), sortOrder));
+      }
+    }
+    catch (final ConfigException ce)
+    {
+      errors.add(toConfigException(ce));
+    }
+  }
+
+  private boolean readIfReplicationIsSecure(final RootCfg root, final List<OpenDsException> errors)
+  {
+    try
+    {
+      return root.getCryptoManager().isSSLEncryption();
+    }
+    catch (final ConfigException ce)
+    {
+      errors.add(toConfigException(ce));
+      return false;
+    }
   }
 
   private ReplicationSynchronizationProviderCfg readSyncProviderIfExists(final RootCfg root)
   {
     replicationPort = -1;
-    ReplicationSynchronizationProviderCfg sync = null;
     try
     {
-      sync = (ReplicationSynchronizationProviderCfg) root.getSynchronizationProvider("Multimaster Synchronization");
+      return (ReplicationSynchronizationProviderCfg) root.getSynchronizationProvider("Multimaster Synchronization");
     }
     catch (final ConfigException ce)
     {
       // Ignore this one
+      return null;
     }
-    return sync;
   }
 
   private void readReplicationConfig(final Set<ConnectionHandlerDescriptor> connectionHandlers,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
index aa308fb..d05d9f1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
@@ -103,8 +103,7 @@
   public void initializeKeyManagerProvider(
       FileBasedKeyManagerProviderCfg configuration)
       throws ConfigException, InitializationException {
-    // Store the DN of the configuration entry and register as a change
-    // listener.
+    // Store the DN of the configuration entry and register as a change listener
     currentConfig = configuration;
     configEntryDN = configuration.dn();
     configuration.addFileBasedChangeListener(this);
@@ -188,18 +187,7 @@
         throw new InitializationException(message);
       }
 
-      String pinStr;
-      try {
-        BufferedReader br = new BufferedReader(
-            new FileReader(pinFile));
-        pinStr = br.readLine();
-        br.close();
-      } catch (IOException ioe) {
-        LocalizableMessage message = ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.
-            get(fileName, configEntryDN, getExceptionMessage(ioe));
-        throw new InitializationException(message, ioe);
-      }
-
+      String pinStr = readPinFromFile(fileName, pinFile);
       if (pinStr == null) {
         LocalizableMessage message = ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, configEntryDN);
         throw new InitializationException(message);
@@ -211,12 +199,28 @@
     }
   }
 
+  private String readPinFromFile(String fileName, File pinFile) throws InitializationException
+  {
+    BufferedReader br = null;
+    try
+    {
+      br = new BufferedReader(new FileReader(pinFile));
+      return br.readLine();
+    }
+    catch (IOException ioe)
+    {
+      LocalizableMessage message =
+          ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, configEntryDN, getExceptionMessage(ioe));
+      throw new InitializationException(message, ioe);
+    }
+    finally
+    {
+      close(br);
+    }
+  }
 
-
-  /**
-   * Performs any finalization that may be necessary for this key
-   * manager provider.
-   */
+  /** Performs any finalization that may be necessary for this key manager provider. */
+  @Override
   public void finalizeKeyManagerProvider()
   {
     currentConfig.removeFileBasedChangeListener(this);
@@ -234,8 +238,8 @@
    * @throws  DirectoryException  If a problem occurs while attempting to obtain
    *                              the set of key managers.
    */
-  public KeyManager[] getKeyManagers()
-         throws DirectoryException
+  @Override
+  public KeyManager[] getKeyManagers() throws DirectoryException
   {
     KeyStore keyStore;
     try
@@ -244,8 +248,14 @@
 
       FileInputStream inputStream =
            new FileInputStream(getFileForPath(keyStoreFile));
-      keyStore.load(inputStream, keyStorePIN);
-      inputStream.close();
+      try
+      {
+        keyStore.load(inputStream, keyStorePIN);
+      }
+      finally
+      {
+        close(inputStream);
+      }
     }
     catch (Exception e)
     {
@@ -259,16 +269,8 @@
 
     try {
       // Troubleshooting aid; Analyse the keystore for the presence of at least one private entry.
-      boolean foundOneKeyEntry = false;
-      Enumeration<String> aliases = keyStore.aliases();
-      while (aliases.hasMoreElements()) {
-        String alias = aliases.nextElement();
-        if (keyStore.entryInstanceOf(alias, KeyStore.PrivateKeyEntry.class)) {
-          foundOneKeyEntry = true;
-          break;
-        }
-      }
-      if (!foundOneKeyEntry) {
+      if (!findOneKeyEntry(keyStore))
+      {
         logger.warn(INFO_NO_KEY_ENTRY_IN_KEYSTORE, keyStoreFile);
       }
     }
@@ -295,7 +297,19 @@
     }
   }
 
-
+  private boolean findOneKeyEntry(KeyStore keyStore) throws KeyStoreException
+  {
+    Enumeration<String> aliases = keyStore.aliases();
+    while (aliases.hasMoreElements())
+    {
+      String alias = aliases.nextElement();
+      if (keyStore.entryInstanceOf(alias, KeyStore.PrivateKeyEntry.class))
+      {
+        return true;
+      }
+    }
+    return false;
+  }
 
   /** {@inheritDoc} */
   @Override
@@ -309,11 +323,12 @@
 
 
   /** {@inheritDoc} */
+  @Override
   public boolean isConfigurationChangeAcceptable(
                       FileBasedKeyManagerProviderCfg configuration,
                       List<LocalizableMessage> unacceptableReasons)
   {
-    boolean configAcceptable = true;
+    int startSize = unacceptableReasons.size();
     DN cfgEntryDN = configuration.dn();
 
 
@@ -325,7 +340,6 @@
       if (!f.exists() || !f.isFile())
       {
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_NO_SUCH_FILE.get(newKeyStoreFile, cfgEntryDN));
-        configAcceptable = false;
       }
     }
     catch (Exception e)
@@ -333,7 +347,6 @@
       logger.traceException(e);
 
       unacceptableReasons.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(cfgEntryDN, getExceptionMessage(e)));
-      configAcceptable = false;
     }
 
     // Get the keystore type. If none is specified, then use the default type.
@@ -349,7 +362,6 @@
 
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_INVALID_TYPE.get(
             configuration.getKeyStoreType(), cfgEntryDN, getExceptionMessage(kse)));
-        configAcceptable = false;
       }
     }
 
@@ -373,7 +385,6 @@
       if (pinStr == null)
       {
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(propertyName, cfgEntryDN));
-        configAcceptable = false;
       }
     }
     else if (configuration.getKeyStorePinEnvironmentVariable() != null)
@@ -384,7 +395,6 @@
       if (pinStr == null)
       {
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_ENVAR_NOT_SET.get(enVarName, cfgEntryDN));
-        configAcceptable = false;
       }
     }
     else if (configuration.getKeyStorePinFile() != null)
@@ -395,31 +405,13 @@
       if (!pinFile.exists())
       {
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_NO_SUCH_FILE.get(fileName, cfgEntryDN));
-        configAcceptable = false;
       }
       else
       {
-        String pinStr = null;
-        BufferedReader br = null;
-        try {
-          br = new BufferedReader(new FileReader(pinFile));
-          pinStr = br.readLine();
-        }
-        catch (IOException ioe)
-        {
-          unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
-              fileName, cfgEntryDN, getExceptionMessage(ioe)));
-          configAcceptable = false;
-        }
-        finally
-        {
-          close(br);
-        }
-
+        String pinStr = readPinFromFile(pinFile, fileName, cfgEntryDN, unacceptableReasons);
         if (pinStr == null)
         {
           unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, cfgEntryDN));
-          configAcceptable = false;
         }
       }
     }
@@ -429,16 +421,35 @@
       if (pinStr == null)
       {
         unacceptableReasons.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR.get(cfgEntryDN, null));
-        configAcceptable = false;
       }
     }
 
-    return configAcceptable;
+    return startSize != unacceptableReasons.size();
   }
 
-
+  private String readPinFromFile(File pinFile, String fileName, DN cfgEntryDN,
+      List<LocalizableMessage> unacceptableReasons)
+  {
+    BufferedReader br = null;
+    try
+    {
+      br = new BufferedReader(new FileReader(pinFile));
+      return br.readLine();
+    }
+    catch (IOException ioe)
+    {
+      unacceptableReasons.add(
+          ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, cfgEntryDN, getExceptionMessage(ioe)));
+      return null;
+    }
+    finally
+    {
+      close(br);
+    }
+  }
 
   /** {@inheritDoc} */
+  @Override
   public ConfigChangeResult applyConfigurationChange(
                                  FileBasedKeyManagerProviderCfg configuration)
   {
@@ -540,23 +551,7 @@
       }
       else
       {
-        String pinStr = null;
-        BufferedReader br = null;
-        try {
-          br = new BufferedReader(new FileReader(pinFile));
-          pinStr = br.readLine();
-        }
-        catch (IOException ioe)
-        {
-          ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
-          ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
-              fileName, configEntryDN, getExceptionMessage(ioe)));
-        }
-        finally
-        {
-          close(br);
-        }
-
+        String pinStr = readPinFromFile(pinFile, fileName, ccr);
         if (pinStr == null)
         {
           ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
@@ -583,4 +578,24 @@
 
     return ccr;
   }
+
+  private String readPinFromFile(File pinFile, String fileName, ConfigChangeResult ccr)
+  {
+    BufferedReader br = null;
+    try
+    {
+      br = new BufferedReader(new FileReader(pinFile));
+      return br.readLine();
+    }
+    catch (IOException ioe)
+    {
+      ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+      ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, configEntryDN, getExceptionMessage(ioe)));
+      return null;
+    }
+    finally
+    {
+      close(br);
+    }
+  }
 }

--
Gitblit v1.10.0