From 340c2c32c576a3496c6b89e887ccd000c05bf629 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 23 Dec 2014 11:47:22 +0000
Subject: [PATCH] BackendConfigManager.java: In applyConfiguration*(), replaced the triplet (resultCode, adminActionRequired, messages) with a single ConfigChangeResult object.
---
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java | 141 ++++++++++++++++++++++-------------------------
1 files changed, 66 insertions(+), 75 deletions(-)
diff --git a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
index d348131..ea199fe 100644
--- a/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
+++ b/opendj-sdk/opendj3-server-dev/src/server/org/opends/server/core/BackendConfigManager.java
@@ -26,7 +26,10 @@
*/
package org.opends.server.core;
-import java.util.ArrayList;
+import static org.forgerock.opendj.ldap.ResultCode.*;
+import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.StaticUtils.*;
+
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -56,10 +59,6 @@
import org.opends.server.types.InitializationException;
import org.opends.server.types.WritabilityMode;
-import static org.forgerock.opendj.ldap.ResultCode.*;
-import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.util.StaticUtils.*;
-
/**
* This class defines a utility that will be used to manage the configuration
* for the set of backends defined in the Directory Server. It will perform
@@ -402,10 +401,7 @@
{
DN backendDN = cfg.dn();
Backend<?> backend = registeredBackends.get(backendDN);
- ResultCode resultCode = ResultCode.SUCCESS;
- boolean adminActionRequired = false;
- ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
-
+ final ConfigChangeResult ccr = new ConfigChangeResult();
// See if the entry contains an attribute that indicates whether the
// backend should be enabled.
@@ -457,7 +453,7 @@
// FIXME -- Do we need to send an admin alert?
}
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
} // else already disabled, no need to do anything.
}
}
@@ -465,10 +461,10 @@
{
logger.traceException(e);
- messages.add(ERR_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE.get(
- backendDN, stackTraceToSingleLineString(e)));
- resultCode = DirectoryServer.getServerErrorResultCode();
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_CONFIG_BACKEND_UNABLE_TO_DETERMINE_ENABLED_STATE.get(backendDN,
+ stackTraceToSingleLineString(e)));
+ return ccr;
}
@@ -497,26 +493,26 @@
// It appears to be a valid backend class. We'll return that the
// change is successful, but indicate that some administrative
// action is required.
- messages.add(NOTE_CONFIG_BACKEND_ACTION_REQUIRED_TO_CHANGE_CLASS.get(
+ ccr.addMessage(NOTE_CONFIG_BACKEND_ACTION_REQUIRED_TO_CHANGE_CLASS.get(
backendDN, backend.getClass().getName(), className));
- adminActionRequired = true;
+ ccr.setAdminActionRequired(true);
}
else
{
// It is not a valid backend class. This is an error.
- messages.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get(className, backendDN));
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.addMessage(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get(className, backendDN));
}
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
catch (Exception e)
{
logger.traceException(e);
- messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
className, backendDN, stackTraceToSingleLineString(e)));
- resultCode = DirectoryServer.getServerErrorResultCode();
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
}
@@ -532,9 +528,9 @@
catch (Exception e)
{
// It is not a valid backend class. This is an error.
- messages.add(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get(className, backendDN));
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.addMessage(ERR_CONFIG_BACKEND_CLASS_NOT_BACKEND.get(className, backendDN));
+ return ccr;
}
@@ -555,10 +551,10 @@
logger.error(message);
// FIXME -- Do we need to send an admin alert?
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
- adminActionRequired = true;
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.setAdminActionRequired(true);
+ ccr.addMessage(message);
+ return ccr;
}
}
catch (Exception e)
@@ -570,10 +566,10 @@
logger.error(message);
// FIXME -- Do we need to send an admin alert?
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
- adminActionRequired = true;
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.setAdminActionRequired(true);
+ ccr.addMessage(message);
+ return ccr;
}
@@ -585,9 +581,9 @@
{
logger.traceException(e);
- messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
className, backendDN, stackTraceToSingleLineString(e)));
- resultCode = DirectoryServer.getServerErrorResultCode();
try
{
@@ -608,7 +604,7 @@
// FIXME -- Do we need to send an admin alert?
}
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@@ -634,21 +630,20 @@
logger.warn(message);
// FIXME -- Do we need to send an admin alert?
- resultCode = DirectoryServer.getServerErrorResultCode();
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(message);
+ return ccr;
}
registeredBackends.put(backendDN, backend);
}
- else if (resultCode == ResultCode.SUCCESS && backend != null)
+ else if (ccr.getResultCode() == ResultCode.SUCCESS && backend != null)
{
backend.setWritabilityMode(writabilityMode);
}
-
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@@ -734,9 +729,7 @@
public ConfigChangeResult applyConfigurationAdd(BackendCfg cfg)
{
DN backendDN = cfg.dn();
- ResultCode resultCode = ResultCode.SUCCESS;
- boolean adminActionRequired = false;
- ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
+ final ConfigChangeResult ccr = new ConfigChangeResult();
// Register as a change listener for this backend entry so that we will
@@ -753,8 +746,8 @@
// indicate that it won't be enabled and return.
LocalizableMessage message = INFO_CONFIG_BACKEND_DISABLED.get(backendDN);
logger.debug(message);
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.addMessage(message);
+ return ccr;
}
@@ -766,8 +759,8 @@
{
LocalizableMessage message = WARN_CONFIG_BACKEND_DUPLICATE_BACKEND_ID.get(backendDN, backendID);
logger.warn(message);
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.addMessage(message);
+ return ccr;
}
@@ -789,10 +782,10 @@
{
logger.traceException(e);
- messages.add(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
className, backendDN, stackTraceToSingleLineString(e)));
- resultCode = DirectoryServer.getServerErrorResultCode();
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@@ -814,10 +807,10 @@
logger.error(message);
// FIXME -- Do we need to send an admin alert?
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
- adminActionRequired = true;
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.setAdminActionRequired(true);
+ ccr.addMessage(message);
+ return ccr;
}
}
catch (Exception e)
@@ -829,10 +822,10 @@
logger.error(message);
// FIXME -- Do we need to send an admin alert?
- resultCode = ResultCode.CONSTRAINT_VIOLATION;
- adminActionRequired = true;
- messages.add(message);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(ResultCode.CONSTRAINT_VIOLATION);
+ ccr.setAdminActionRequired(true);
+ ccr.addMessage(message);
+ return ccr;
}
@@ -845,9 +838,9 @@
{
logger.traceException(e);
- messages.add(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
className, backendDN, stackTraceToSingleLineString(e)));
- resultCode = DirectoryServer.getServerErrorResultCode();
try
{
@@ -866,7 +859,7 @@
// FIXME -- Do we need to send an admin alert?
}
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@@ -893,13 +886,13 @@
logger.error(message);
// FIXME -- Do we need to send an admin alert?
- messages.add(message);
- resultCode = DirectoryServer.getServerErrorResultCode();
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(message);
+ return ccr;
}
registeredBackends.put(backendDN, backend);
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@SuppressWarnings("unchecked")
@@ -961,17 +954,14 @@
public ConfigChangeResult applyConfigurationDelete(BackendCfg configEntry)
{
DN backendDN = configEntry.dn();
- ResultCode resultCode = ResultCode.SUCCESS;
- boolean adminActionRequired = false;
- ArrayList<LocalizableMessage> messages = new ArrayList<LocalizableMessage>();
-
+ final ConfigChangeResult ccr = new ConfigChangeResult();
// See if this backend config manager has a backend registered with the
// provided DN. If not, then we don't care if the entry is deleted.
Backend<?> backend = registeredBackends.get(backendDN);
if (backend == null)
{
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
// See if the backend has any subordinate backends. If so, then it is not
@@ -979,8 +969,9 @@
Backend<?>[] subBackends = backend.getSubordinateBackends();
if (subBackends != null && subBackends.length > 0)
{
- messages.add(NOTE_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES.get(backendDN));
- return new ConfigChangeResult(UNWILLING_TO_PERFORM, adminActionRequired, messages);
+ ccr.setResultCode(UNWILLING_TO_PERFORM);
+ ccr.addMessage(NOTE_CONFIG_BACKEND_CANNOT_REMOVE_BACKEND_WITH_SUBORDINATES.get(backendDN));
+ return ccr;
}
registeredBackends.remove(backendDN);
@@ -1022,7 +1013,7 @@
// FIXME -- Do we need to send an admin alert?
}
- return new ConfigChangeResult(resultCode, adminActionRequired, messages);
+ return ccr;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
--
Gitblit v1.10.0