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/server/extensions/FileBasedKeyManagerProvider.java |  173 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 94 insertions(+), 79 deletions(-)

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