From 03bbaa5fcbf6a65c1f7347fa3c189d08f79c060f Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Sun, 24 Jun 2007 22:19:02 +0000
Subject: [PATCH] Migrate the attribute syntax configuration to the admin framework.
---
opends/src/server/org/opends/server/core/SchemaConfigManager.java | 229 --------------------------------------------------------
1 files changed, 3 insertions(+), 226 deletions(-)
diff --git a/opends/src/server/org/opends/server/core/SchemaConfigManager.java b/opends/src/server/org/opends/server/core/SchemaConfigManager.java
index 2cb2cc6..d677b71 100644
--- a/opends/src/server/org/opends/server/core/SchemaConfigManager.java
+++ b/opends/src/server/org/opends/server/core/SchemaConfigManager.java
@@ -34,7 +34,6 @@
import java.util.LinkedList;
import java.util.List;
-import org.opends.server.api.AttributeSyntax;
import org.opends.server.api.ConfigAddListener;
import org.opends.server.api.ConfigChangeListener;
import org.opends.server.api.ConfigDeleteListener;
@@ -418,231 +417,9 @@
public void initializeAttributeSyntaxes()
throws ConfigException, InitializationException
{
- // First, get the attribute syntax configuration base entry.
- ConfigEntry syntaxBaseEntry;
- try
- {
- DN syntaxBaseDN = DN.decode(DN_SYNTAX_CONFIG_BASE);
- syntaxBaseEntry = configHandler.getConfigEntry(syntaxBaseDN);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- int msgID = MSGID_CONFIG_SCHEMA_CANNOT_GET_SYNTAX_BASE;
- String message = getMessage(msgID, String.valueOf(e));
- throw new ConfigException(msgID, message, e);
- }
-
- if (syntaxBaseEntry == null)
- {
- // The syntax base entry does not exist. This is not acceptable, so throw
- // an exception.
- int msgID = MSGID_CONFIG_SCHEMA_SYNTAX_BASE_DOES_NOT_EXIST;
- String message = getMessage(msgID);
- throw new ConfigException(msgID, message);
- }
-
-
- // Register add and delete listeners with the syntax base entry. We don't
- // care about modifications to it.
- syntaxBaseEntry.registerAddListener(this);
- syntaxBaseEntry.registerDeleteListener(this);
-
-
- // See if the syntax base has any children. If not, then this is very
- // bad, since we won't know how to deal with any attribute types.
- if (! syntaxBaseEntry.hasChildren())
- {
- int msgID = MSGID_CONFIG_SCHEMA_NO_SYNTAXES;
- String message = getMessage(msgID);
- throw new ConfigException(msgID, message);
- }
-
-
- // Iterate through the child entries and process them as syntax entries.
- for (ConfigEntry childEntry : syntaxBaseEntry.getChildren().values())
- {
- DN syntaxEntryDN = childEntry.getDN();
-
-
- // Register as a change listener for this syntax entry so that we will be
- // notified of any changes that may be made to it.
- childEntry.registerChangeListener(this);
-
-
- // Check to see if this entry appears to contain an attribute syntax
- // configuration. If not, log a warning and skip it.
- if (! childEntry.hasObjectClass(OC_ATTRIBUTE_SYNTAX))
- {
- int msgID = MSGID_CONFIG_SCHEMA_ENTRY_DOES_NOT_HAVE_SYNTAX_CONFIG;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN));
- logError(ErrorLogCategory.CONFIGURATION,
- ErrorLogSeverity.SEVERE_WARNING, message, msgID);
- continue;
- }
-
-
- // See if the entry contains an attribute that indicates whether the
- // syntax should be enabled. If it does not, or if it is not set to
- // "true", then skip it.
- int msgID = MSGID_CONFIG_SCHEMA_SYNTAX_ATTR_DESCRIPTION_ENABLED;
- BooleanConfigAttribute enabledStub =
- new BooleanConfigAttribute(ATTR_SYNTAX_ENABLED, getMessage(msgID),
- false);
- try
- {
- BooleanConfigAttribute enabledAttr =
- (BooleanConfigAttribute)
- childEntry.getConfigAttribute(enabledStub);
- if (enabledAttr == null)
- {
- // The attribute is not present, so this syntax will be disabled. Log
- // a message and continue.
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_NO_ENABLED_ATTR;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN));
- logError(ErrorLogCategory.CONFIGURATION,
- ErrorLogSeverity.SEVERE_WARNING, message, msgID);
- continue;
- }
- else if (! enabledAttr.activeValue())
- {
- // The syntax is explicitly disabled. Log a mild warning and
- // continue.
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_DISABLED;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN));
- logError(ErrorLogCategory.CONFIGURATION,
- ErrorLogSeverity.INFORMATIONAL, message, msgID);
- continue;
- }
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_UNABLE_TO_DETERMINE_ENABLED_STATE;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN),
- getExceptionMessage(e));
- logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
- message, msgID);
- continue;
- }
-
-
- // See if the entry contains an attribute that specifies the class name
- // for the syntax implementation. If it does, then load it and make sure
- // that it's a valid syntax implementation. If there is no such
- // attribute, the specified class cannot be loaded, or it does not contain
- // a valid syntax implementation, then log an error and skip it.
- String className;
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_ATTR_DESCRIPTION_CLASS;
- StringConfigAttribute classStub =
- new StringConfigAttribute(ATTR_SYNTAX_CLASS, getMessage(msgID),
- true, false, true);
- try
- {
- StringConfigAttribute classAttr =
- (StringConfigAttribute)
- childEntry.getConfigAttribute(classStub);
- if (classAttr == null)
- {
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_NO_CLASS_ATTR;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN));
- logError(ErrorLogCategory.CONFIGURATION,
- ErrorLogSeverity.SEVERE_ERROR, message, msgID);
- continue;
- }
- else
- {
- className = classAttr.activeValue();
- }
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_GET_CLASS;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN),
- getExceptionMessage(e));
- logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
- message, msgID);
- continue;
- }
-
- AttributeSyntax syntax;
- try
- {
- Class syntaxClass = DirectoryServer.loadClass(className);
- syntax = (AttributeSyntax) syntaxClass.newInstance();
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_INSTANTIATE;
- String message = getMessage(msgID, String.valueOf(className),
- String.valueOf(syntaxEntryDN),
- getExceptionMessage(e));
- logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
- message, msgID);
- continue;
- }
-
-
- // Perform the necessary initialization for the syntax.
- try
- {
- syntax.initializeSyntax(childEntry);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, e);
- }
-
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CANNOT_INITIALIZE;
- String message = getMessage(msgID, String.valueOf(className),
- String.valueOf(syntaxEntryDN),
- getExceptionMessage(e));
- logError(ErrorLogCategory.CONFIGURATION, ErrorLogSeverity.SEVERE_ERROR,
- message, msgID);
- continue;
- }
-
-
- // Register the syntax with the server schema.
- try
- {
- schema.registerSyntax(syntax, false);
- }
- catch (DirectoryException de)
- {
- if (debugEnabled())
- {
- TRACER.debugCaught(DebugLogLevel.ERROR, de);
- }
-
- msgID = MSGID_CONFIG_SCHEMA_SYNTAX_CONFLICTING_SYNTAX;
- String message = getMessage(msgID, String.valueOf(syntaxEntryDN),
- de.getErrorMessage());
- logError(ErrorLogCategory.CONFIGURATION,
- ErrorLogSeverity.SEVERE_WARNING, message, msgID);
- continue;
- }
- }
+ AttributeSyntaxConfigManager syntaxConfigManager =
+ new AttributeSyntaxConfigManager();
+ syntaxConfigManager.initializeAttributeSyntaxes();
}
--
Gitblit v1.10.0