From 1649148841be6bc4ac6381d0592dc9ab52438044 Mon Sep 17 00:00:00 2001
From: abobrov <abobrov@localhost>
Date: Sun, 02 Sep 2007 13:05:17 +0000
Subject: [PATCH] - [Issue 1481] Ability to set any JE property in config.ldif - [Issue 2031] provide core JE configurable attributes for FileSystemEntryCache - fixes to entry cache config manager for proper configuration, re-configuration, error reporting.
---
opends/src/server/org/opends/server/extensions/EntryCacheCommon.java | 70 ++++++++++++++++++++++++++++++++--
1 files changed, 65 insertions(+), 5 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/EntryCacheCommon.java b/opends/src/server/org/opends/server/extensions/EntryCacheCommon.java
index 40caf11..e7641c3 100644
--- a/opends/src/server/org/opends/server/extensions/EntryCacheCommon.java
+++ b/opends/src/server/org/opends/server/extensions/EntryCacheCommon.java
@@ -95,6 +95,10 @@
// or PHASE_APPLY.
private boolean _isAcceptable;
+ // Indicates whether administrative action is required or not. Used when
+ // _configPhase is PHASE_APPLY.
+ private boolean _isAdminActionRequired;
+
/**
* Create an error handler.
*
@@ -111,11 +115,12 @@
ArrayList<Message> errorMessages
)
{
- _configPhase = configPhase;
- _unacceptableReasons = unacceptableReasons;
- _errorMessages = errorMessages;
- _resultCode = ResultCode.SUCCESS;
- _isAcceptable = true;
+ _configPhase = configPhase;
+ _unacceptableReasons = unacceptableReasons;
+ _errorMessages = errorMessages;
+ _resultCode = ResultCode.SUCCESS;
+ _isAcceptable = true;
+ _isAdminActionRequired = false;
}
/**
@@ -135,6 +140,49 @@
{
case PHASE_INIT:
{
+ _errorMessages.add (error);
+ _isAcceptable = isAcceptable;
+ break;
+ }
+ case PHASE_ACCEPTABLE:
+ {
+ _unacceptableReasons.add (error);
+ _isAcceptable = isAcceptable;
+ break;
+ }
+ case PHASE_APPLY:
+ {
+ _errorMessages.add (error);
+ _isAcceptable = isAcceptable;
+ if (_resultCode == ResultCode.SUCCESS)
+ {
+ _resultCode = resultCode;
+ }
+ break;
+ }
+ }
+ }
+
+ /**
+ * Report an error.
+ *
+ * @param error the error to report
+ * @param isAcceptable <code>true</code> if the configuration is acceptable
+ * @param resultCode the change result for the current configuration
+ * @param isAdminActionRequired <code>true</code> if administrative action
+ * is required or <code>false</code> otherwise
+ */
+ public void reportError(
+ Message error,
+ boolean isAcceptable,
+ ResultCode resultCode,
+ boolean isAdminActionRequired
+ )
+ {
+ switch (_configPhase)
+ {
+ case PHASE_INIT:
+ {
logError (error);
break;
}
@@ -152,6 +200,7 @@
{
_resultCode = resultCode;
}
+ _isAdminActionRequired = isAdminActionRequired;
break;
}
}
@@ -212,6 +261,17 @@
{
return _configPhase;
}
+
+ /**
+ * Get the current isAdminActionRequired flag as determined after apply
+ * action has been taken on a given configuration.
+ *
+ * @return the isAdminActionRequired flag
+ */
+ public boolean getIsAdminActionRequired()
+ {
+ return _isAdminActionRequired;
+ }
} // ConfigErrorHandler
--
Gitblit v1.10.0