From 5eb3efb5b57237f20e1e39044378ba962c586dbb Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 23 Oct 2014 08:37:48 +0000
Subject: [PATCH] CoreConfigManager.java: Increased redability by extracting methods and using static imports.

---
 opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java |  324 ++++++++++++++++++++++++-----------------------------
 1 files changed, 145 insertions(+), 179 deletions(-)

diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java
index e9c78cc..67f1794 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/CoreConfigManager.java
@@ -29,17 +29,21 @@
 import java.util.*;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.server.ServerManagementContext;
 import org.opends.server.admin.std.meta.GlobalCfgDefn;
-import org.opends.server.admin.std.meta.GlobalCfgDefn.WorkflowConfigurationMode;
+import org.opends.server.admin.std.meta.GlobalCfgDefn.DisabledPrivilege;
+import org.opends.server.admin.std.meta.GlobalCfgDefn.InvalidAttributeSyntaxBehavior;
+import org.opends.server.admin.std.meta.GlobalCfgDefn.SingleStructuralObjectclassBehavior;
 import org.opends.server.admin.std.server.GlobalCfg;
 import org.opends.server.admin.std.server.RootCfg;
 import org.opends.server.api.AuthenticationPolicy;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ResultCode;
+
 import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.core.DirectoryServer.*;
 import static org.opends.server.util.ServerConstants.*;
 
 /**
@@ -124,87 +128,100 @@
    */
   private static void applyGlobalConfiguration(GlobalCfg globalConfig)
   {
-    DirectoryServer.setCheckSchema(globalConfig.isCheckSchema());
+    setCheckSchema(globalConfig.isCheckSchema());
+    setDefaultPasswordPolicyDN(globalConfig.getDefaultPasswordPolicyDN());
+    setAddMissingRDNAttributes(globalConfig.isAddMissingRDNAttributes());
+    setAllowAttributeNameExceptions(globalConfig.isAllowAttributeNameExceptions());
+    setSyntaxEnforcementPolicy(convert(globalConfig.getInvalidAttributeSyntaxBehavior()));
+    setServerErrorResultCode(ResultCode.valueOf(globalConfig.getServerErrorResultCode()));
+    setSingleStructuralObjectClassPolicy(convert(globalConfig.getSingleStructuralObjectclassBehavior()));
 
-    DirectoryServer.setDefaultPasswordPolicyDN(
-         globalConfig.getDefaultPasswordPolicyDN());
+    setNotifyAbandonedOperations(globalConfig.isNotifyAbandonedOperations());
+    setSizeLimit(globalConfig.getSizeLimit());
+    setTimeLimit((int) globalConfig.getTimeLimit());
+    setProxiedAuthorizationIdentityMapperDN(globalConfig.getProxiedAuthorizationIdentityMapperDN());
+    setWritabilityMode(convert(globalConfig.getWritabilityMode()));
+    setRejectUnauthenticatedRequests(globalConfig.isRejectUnauthenticatedRequests());
+    setBindWithDNRequiresPassword(globalConfig.isBindWithDNRequiresPassword());
+    setLookthroughLimit(globalConfig.getLookthroughLimit());
 
-    DirectoryServer.setAddMissingRDNAttributes(
-         globalConfig.isAddMissingRDNAttributes());
+    setMailServerPropertySets(getMailServerProperties(globalConfig.getSMTPServer()));
+    setAllowedTasks(globalConfig.getAllowedTask());
+    setDisabledPrivileges(convert(globalConfig.getDisabledPrivilege()));
+    setReturnBindErrorMessages(globalConfig.isReturnBindErrorMessages());
+    setIdleTimeLimit(globalConfig.getIdleTimeLimit());
+    setSaveConfigOnSuccessfulStartup(globalConfig.isSaveConfigOnSuccessfulStartup());
 
-    DirectoryServer.setAllowAttributeNameExceptions(
-         globalConfig.isAllowAttributeNameExceptions());
-
-    switch (globalConfig.getInvalidAttributeSyntaxBehavior())
+    // If the workflow configuration mode has changed then reconfigure
+    // the workflows-only if the server is running. If the server is not
+    // running (ie. the server is starting up) simply update the workflow
+    // configuration mode as the workflow configuration is processed
+    // elsewhere.
+    WorkflowConfigurationMode oldMode =
+      DirectoryServer.getWorkflowConfigurationMode();
+    WorkflowConfigurationMode newMode =
+      globalConfig.getWorkflowConfigurationMode();
+    if (DirectoryServer.isRunning())
     {
-      case ACCEPT:
-        DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.ACCEPT);
-        break;
-      case WARN:
-        DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.WARN);
-        break;
-      case REJECT:
-      default:
-        DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.REJECT);
-        break;
+      DirectoryServer.reconfigureWorkflows(oldMode, newMode);
+    }
+    else
+    {
+      DirectoryServer.setWorkflowConfigurationMode(newMode);
     }
 
-    DirectoryServer.setServerErrorResultCode(
-         ResultCode.valueOf(globalConfig.getServerErrorResultCode()));
+    setUseNanoTime(globalConfig.getEtimeResolution() == GlobalCfgDefn.EtimeResolution.NANOSECONDS);
+    setMaxAllowedConnections(globalConfig.getMaxAllowedClientConnections());
+    setMaxPersistentSearchLimit(globalConfig.getMaxPsearches());
+    setMaxInternalBufferSize((int) globalConfig.getMaxInternalBufferSize());
+  }
 
-    switch (globalConfig.getSingleStructuralObjectclassBehavior())
+  private static AcceptRejectWarn convert(InvalidAttributeSyntaxBehavior invalidAttributeSyntaxBehavior)
+  {
+    switch (invalidAttributeSyntaxBehavior)
     {
-      case ACCEPT:
-        DirectoryServer.setSingleStructuralObjectClassPolicy(
-             AcceptRejectWarn.ACCEPT);
-        break;
-      case WARN:
-        DirectoryServer.setSingleStructuralObjectClassPolicy(
-             AcceptRejectWarn.WARN);
-        break;
-      case REJECT:
-      default:
-        DirectoryServer.setSingleStructuralObjectClassPolicy(
-             AcceptRejectWarn.REJECT);
-        break;
+    case ACCEPT:
+      return AcceptRejectWarn.ACCEPT;
+    case WARN:
+      return AcceptRejectWarn.WARN;
+    case REJECT:
+    default:
+      return AcceptRejectWarn.REJECT;
     }
+  }
 
-    DirectoryServer.setNotifyAbandonedOperations(
-         globalConfig.isNotifyAbandonedOperations());
-
-    DirectoryServer.setSizeLimit(globalConfig.getSizeLimit());
-
-    DirectoryServer.setTimeLimit((int) globalConfig.getTimeLimit());
-
-    DirectoryServer.setProxiedAuthorizationIdentityMapperDN(
-         globalConfig.getProxiedAuthorizationIdentityMapperDN());
-
-    switch (globalConfig.getWritabilityMode())
+  private static AcceptRejectWarn convert(SingleStructuralObjectclassBehavior singleStructuralObjectclassBehavior)
+  {
+    switch (singleStructuralObjectclassBehavior)
     {
-      case ENABLED:
-        DirectoryServer.setWritabilityMode(WritabilityMode.ENABLED);
-        break;
-      case INTERNAL_ONLY:
-        DirectoryServer.setWritabilityMode(WritabilityMode.INTERNAL_ONLY);
-        break;
-      case DISABLED:
-      default:
-        DirectoryServer.setWritabilityMode(WritabilityMode.DISABLED);
-        break;
+    case ACCEPT:
+      return AcceptRejectWarn.ACCEPT;
+    case WARN:
+      return AcceptRejectWarn.WARN;
+    case REJECT:
+    default:
+      return AcceptRejectWarn.REJECT;
     }
+  }
 
-    DirectoryServer.setRejectUnauthenticatedRequests(
-         globalConfig.isRejectUnauthenticatedRequests());
+  private static WritabilityMode convert(GlobalCfgDefn.WritabilityMode writabilityMode)
+  {
+    switch (writabilityMode)
+    {
+    case ENABLED:
+      return WritabilityMode.ENABLED;
+    case INTERNAL_ONLY:
+      return WritabilityMode.INTERNAL_ONLY;
+    case DISABLED:
+    default:
+      return WritabilityMode.DISABLED;
+    }
+  }
 
-    DirectoryServer.setBindWithDNRequiresPassword(
-         globalConfig.isBindWithDNRequiresPassword());
-
-    DirectoryServer.setLookthroughLimit(globalConfig.getLookthroughLimit());
-
-
+  private static List<Properties> getMailServerProperties(Set<String> smtpServers)
+  {
     List<Properties> mailServerProperties = new ArrayList<Properties>();
-    Set<String> smtpServers = globalConfig.getSMTPServer();
-    if ((smtpServers != null) && (! smtpServers.isEmpty()))
+    if (smtpServers != null && !smtpServers.isEmpty())
     {
       for (String smtpServer : smtpServers)
       {
@@ -229,128 +246,77 @@
         mailServerProperties.add(properties);
       }
     }
-    DirectoryServer.setMailServerPropertySets(mailServerProperties);
+    return mailServerProperties;
+  }
 
-    DirectoryServer.setAllowedTasks(globalConfig.getAllowedTask());
-
-
+  private static HashSet<Privilege> convert(Set<DisabledPrivilege> configuredDisabledPrivs)
+  {
     HashSet<Privilege> disabledPrivileges = new HashSet<Privilege>();
-    Set<GlobalCfgDefn.DisabledPrivilege> configuredDisabledPrivs =
-         globalConfig.getDisabledPrivilege();
     if (configuredDisabledPrivs != null)
     {
-      for (GlobalCfgDefn.DisabledPrivilege p : configuredDisabledPrivs)
+      for (DisabledPrivilege p : configuredDisabledPrivs)
       {
-        switch (p)
+        final Privilege privilege = convert(p);
+        if (privilege != null)
         {
-          case BACKEND_BACKUP:
-            disabledPrivileges.add(Privilege.BACKEND_BACKUP);
-            break;
-          case BACKEND_RESTORE:
-            disabledPrivileges.add(Privilege.BACKEND_RESTORE);
-            break;
-          case BYPASS_ACL:
-            disabledPrivileges.add(Privilege.BYPASS_ACL);
-            break;
-          case CANCEL_REQUEST:
-            disabledPrivileges.add(Privilege.CANCEL_REQUEST);
-            break;
-          case CONFIG_READ:
-            disabledPrivileges.add(Privilege.CONFIG_READ);
-            break;
-          case CONFIG_WRITE:
-            disabledPrivileges.add(Privilege.CONFIG_WRITE);
-            break;
-          case DATA_SYNC:
-            disabledPrivileges.add(Privilege.DATA_SYNC);
-            break;
-          case DISCONNECT_CLIENT:
-            disabledPrivileges.add(Privilege.DISCONNECT_CLIENT);
-            break;
-          case JMX_NOTIFY:
-            disabledPrivileges.add(Privilege.JMX_NOTIFY);
-            break;
-          case JMX_READ:
-            disabledPrivileges.add(Privilege.JMX_READ);
-            break;
-          case JMX_WRITE:
-            disabledPrivileges.add(Privilege.JMX_WRITE);
-            break;
-          case LDIF_EXPORT:
-            disabledPrivileges.add(Privilege.LDIF_EXPORT);
-            break;
-          case LDIF_IMPORT:
-            disabledPrivileges.add(Privilege.LDIF_IMPORT);
-            break;
-          case MODIFY_ACL:
-            disabledPrivileges.add(Privilege.MODIFY_ACL);
-            break;
-          case PASSWORD_RESET:
-            disabledPrivileges.add(Privilege.PASSWORD_RESET);
-            break;
-          case PRIVILEGE_CHANGE:
-            disabledPrivileges.add(Privilege.PRIVILEGE_CHANGE);
-            break;
-          case PROXIED_AUTH:
-            disabledPrivileges.add(Privilege.PROXIED_AUTH);
-            break;
-          case SERVER_RESTART:
-            disabledPrivileges.add(Privilege.SERVER_RESTART);
-            break;
-          case SERVER_SHUTDOWN:
-            disabledPrivileges.add(Privilege.SERVER_SHUTDOWN);
-            break;
-          case UNINDEXED_SEARCH:
-            disabledPrivileges.add(Privilege.UNINDEXED_SEARCH);
-            break;
-          case UPDATE_SCHEMA:
-            disabledPrivileges.add(Privilege.UPDATE_SCHEMA);
-            break;
-          case SUBENTRY_WRITE:
-            disabledPrivileges.add(Privilege.SUBENTRY_WRITE);
-            break;
+          disabledPrivileges.add(privilege);
         }
       }
     }
-    DirectoryServer.setDisabledPrivileges(disabledPrivileges);
+    return disabledPrivileges;
+  }
 
-    DirectoryServer.setReturnBindErrorMessages(
-         globalConfig.isReturnBindErrorMessages());
-
-    DirectoryServer.setIdleTimeLimit(globalConfig.getIdleTimeLimit());
-
-    DirectoryServer.setSaveConfigOnSuccessfulStartup(
-         globalConfig.isSaveConfigOnSuccessfulStartup());
-
-    // If the workflow configuration mode has changed then reconfigure
-    // the workflows-only if the server is running. If the server is not
-    // running (ie. the server is starting up) simply update the workflow
-    // configuration mode as the workflow configuration is processed
-    // elsewhere.
-    WorkflowConfigurationMode oldMode =
-      DirectoryServer.getWorkflowConfigurationMode();
-    WorkflowConfigurationMode newMode =
-      globalConfig.getWorkflowConfigurationMode();
-    if (DirectoryServer.isRunning())
+  private static Privilege convert(DisabledPrivilege privilege)
+  {
+    switch (privilege)
     {
-      DirectoryServer.reconfigureWorkflows(oldMode, newMode);
+      case BACKEND_BACKUP:
+        return Privilege.BACKEND_BACKUP;
+      case BACKEND_RESTORE:
+        return Privilege.BACKEND_RESTORE;
+      case BYPASS_ACL:
+        return Privilege.BYPASS_ACL;
+      case CANCEL_REQUEST:
+        return Privilege.CANCEL_REQUEST;
+      case CONFIG_READ:
+        return Privilege.CONFIG_READ;
+      case CONFIG_WRITE:
+        return Privilege.CONFIG_WRITE;
+      case DATA_SYNC:
+        return Privilege.DATA_SYNC;
+      case DISCONNECT_CLIENT:
+        return Privilege.DISCONNECT_CLIENT;
+      case JMX_NOTIFY:
+        return Privilege.JMX_NOTIFY;
+      case JMX_READ:
+        return Privilege.JMX_READ;
+      case JMX_WRITE:
+        return Privilege.JMX_WRITE;
+      case LDIF_EXPORT:
+        return Privilege.LDIF_EXPORT;
+      case LDIF_IMPORT:
+        return Privilege.LDIF_IMPORT;
+      case MODIFY_ACL:
+        return Privilege.MODIFY_ACL;
+      case PASSWORD_RESET:
+        return Privilege.PASSWORD_RESET;
+      case PRIVILEGE_CHANGE:
+        return Privilege.PRIVILEGE_CHANGE;
+      case PROXIED_AUTH:
+        return Privilege.PROXIED_AUTH;
+      case SERVER_RESTART:
+        return Privilege.SERVER_RESTART;
+      case SERVER_SHUTDOWN:
+        return Privilege.SERVER_SHUTDOWN;
+      case UNINDEXED_SEARCH:
+        return Privilege.UNINDEXED_SEARCH;
+      case UPDATE_SCHEMA:
+        return Privilege.UPDATE_SCHEMA;
+      case SUBENTRY_WRITE:
+        return Privilege.SUBENTRY_WRITE;
+      default:
+        return null;
     }
-    else
-    {
-      DirectoryServer.setWorkflowConfigurationMode(newMode);
-    }
-
-    DirectoryServer.setUseNanoTime(globalConfig.getEtimeResolution() ==
-      GlobalCfgDefn.EtimeResolution.NANOSECONDS);
-
-    DirectoryServer.setMaxAllowedConnections(
-        globalConfig.getMaxAllowedClientConnections());
-
-    DirectoryServer.setMaxPersistentSearchLimit(
-        globalConfig.getMaxPsearches());
-
-    DirectoryServer.setMaxInternalBufferSize((int) globalConfig
-        .getMaxInternalBufferSize());
   }
 
 

--
Gitblit v1.10.0