From 35af51f9683f5ef8cec66baca7b89aa1e1cbc44e Mon Sep 17 00:00:00 2001
From: coulbeck <coulbeck@localhost>
Date: Fri, 11 May 2007 23:27:30 +0000
Subject: [PATCH] Issue 1532: Remove ConfigEntry from Backend API. (DS-1532)
---
opends/src/server/org/opends/server/backends/MonitorBackend.java | 129 +++++++++++++------------------------------
1 files changed, 39 insertions(+), 90 deletions(-)
diff --git a/opends/src/server/org/opends/server/backends/MonitorBackend.java b/opends/src/server/org/opends/server/backends/MonitorBackend.java
index 3dd69e2..25990d1 100644
--- a/opends/src/server/org/opends/server/backends/MonitorBackend.java
+++ b/opends/src/server/org/opends/server/backends/MonitorBackend.java
@@ -45,7 +45,6 @@
import org.opends.server.core.ModifyOperation;
import org.opends.server.core.ModifyDNOperation;
import org.opends.server.core.SearchOperation;
-import org.opends.server.core.BackendConfigManager;
import org.opends.server.protocols.asn1.ASN1OctetString;
import org.opends.server.types.Attribute;
import org.opends.server.types.AttributeType;
@@ -68,6 +67,7 @@
import org.opends.server.util.DynamicConstants;
import org.opends.server.util.LDIFWriter;
import org.opends.server.util.TimeThread;
+import org.opends.server.util.Validator;
import static org.opends.server.config.ConfigConstants.*;
import static org.opends.server.loggers.debug.DebugLogger.debugCaught;
@@ -80,6 +80,7 @@
import static org.opends.server.util.StaticUtils.*;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.BackendCfg;
+import org.opends.server.admin.Configuration;
/**
@@ -132,13 +133,18 @@
}
-
/**
* {@inheritDoc}
*/
- public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs)
- throws ConfigException, InitializationException
+ public void configureBackend(Configuration config) throws ConfigException
{
+ Validator.ensureNotNull(config);
+ Validator.ensureTrue(config instanceof BackendCfg);
+
+ BackendCfg cfg = (BackendCfg)config;
+ ConfigEntry configEntry = DirectoryServer.getConfigEntry(cfg.dn());
+
+
// Make sure that a configuration entry was provided. If not, then we will
// not be able to complete initialization.
if (configEntry == null)
@@ -148,7 +154,6 @@
throw new ConfigException(msgID, message);
}
- BackendCfg cfg = BackendConfigManager.getBackendCfg(configEntry);
configEntryDN = configEntry.getDN();
@@ -180,6 +185,20 @@
}
+ // Construct the set of objectclasses to include in the base monitor entry.
+ monitorObjectClasses = new LinkedHashMap<ObjectClass,String>(2);
+ ObjectClass topOC = DirectoryServer.getObjectClass(OC_TOP, true);
+ monitorObjectClasses.put(topOC, OC_TOP);
+
+ ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_ENTRY,
+ true);
+ monitorObjectClasses.put(monitorOC, OC_MONITOR_ENTRY);
+
+
+ // Define an empty sets for the supported controls and features.
+ supportedControls = new HashSet<String>(0);
+ supportedFeatures = new HashSet<String>(0);
+
// Create the set of base DNs that we will handle. In this case, it's just
// the DN of the base monitor entry.
try
@@ -195,31 +214,24 @@
int msgID = MSGID_MONITOR_CANNOT_DECODE_MONITOR_ROOT_DN;
String message = getMessage(msgID, getExceptionMessage(e));
- throw new InitializationException(msgID, message, e);
+ throw new ConfigException(msgID, message, e);
}
// FIXME -- Deal with this more correctly.
this.baseDNs = new DN[] { baseMonitorDN };
- // Construct the set of objectclasses to include in the base monitor entry.
- monitorObjectClasses = new LinkedHashMap<ObjectClass,String>(2);
- ObjectClass topOC = DirectoryServer.getObjectClass(OC_TOP, true);
- monitorObjectClasses.put(topOC, OC_TOP);
-
- ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_ENTRY,
- true);
- monitorObjectClasses.put(monitorOC, OC_MONITOR_ENTRY);
-
-
- // Define an empty sets for the supported controls and features.
- supportedControls = new HashSet<String>(0);
- supportedFeatures = new HashSet<String>(0);
-
-
- // Register with the Directory Server as a configurable component.
currentConfig = cfg;
- cfg.addChangeListener(this);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void initializeBackend()
+ throws ConfigException, InitializationException
+ {
+ // Register with the Directory Server as a configurable component.
+ currentConfig.addChangeListener(this);
// Register the monitor base as a private suffix.
@@ -951,72 +963,11 @@
/**
* {@inheritDoc}
*/
- public void exportLDIF(ConfigEntry configEntry, DN[] baseDNs,
- LDIFExportConfig exportConfig)
+ public void exportLDIF(LDIFExportConfig exportConfig)
throws DirectoryException
{
// TODO export-ldif reports nonsense for upTime etc.
- configEntryDN = configEntry.getDN();
-
-
- // Get the set of user-defined attributes for the configuration entry. Any
- // attributes that we don't recognize will be included directly in the base
- // monitor entry.
- userDefinedAttributes = new ArrayList<Attribute>();
- for (List<Attribute> attrs :
- configEntry.getEntry().getUserAttributes().values())
- {
- for (Attribute a : attrs)
- {
- if (! isMonitorConfigAttribute(a))
- {
- userDefinedAttributes.add(a);
- }
- }
- }
- for (List<Attribute> attrs :
- configEntry.getEntry().getOperationalAttributes().values())
- {
- for (Attribute a : attrs)
- {
- if (! isMonitorConfigAttribute(a))
- {
- userDefinedAttributes.add(a);
- }
- }
- }
-
-
- // Create the set of base DNs that we will handle. In this case, it's just
- // the DN of the base monitor entry.
- try
- {
- baseMonitorDN = DN.decode(DN_MONITOR_ROOT);
- }
- catch (Exception e)
- {
- if (debugEnabled())
- {
- debugCaught(DebugLogLevel.ERROR, e);
- }
-
- int msgID = MSGID_MONITOR_CANNOT_DECODE_MONITOR_ROOT_DN;
- String message = getMessage(msgID, getExceptionMessage(e));
- throw new DirectoryException(DirectoryServer.getServerErrorResultCode(),
- message, msgID, e);
- }
-
- // Construct the set of objectclasses to include in the base monitor entry.
- monitorObjectClasses = new LinkedHashMap<ObjectClass,String>(2);
- ObjectClass topOC = DirectoryServer.getObjectClass(OC_TOP, true);
- monitorObjectClasses.put(topOC, OC_TOP);
-
- ObjectClass monitorOC = DirectoryServer.getObjectClass(OC_MONITOR_ENTRY,
- true);
- monitorObjectClasses.put(monitorOC, OC_MONITOR_ENTRY);
-
-
// Create the LDIF writer.
LDIFWriter ldifWriter;
try
@@ -1140,8 +1091,7 @@
/**
* {@inheritDoc}
*/
- public void importLDIF(ConfigEntry configEntry, DN[] baseDNs,
- LDIFImportConfig importConfig)
+ public void importLDIF(LDIFImportConfig importConfig)
throws DirectoryException
{
// This backend does not support LDIF imports.
@@ -1199,7 +1149,7 @@
/**
* {@inheritDoc}
*/
- public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig)
+ public void createBackup(BackupConfig backupConfig)
throws DirectoryException
{
// This backend does not provide a backup/restore mechanism.
@@ -1253,8 +1203,7 @@
/**
* {@inheritDoc}
*/
- public void restoreBackup(ConfigEntry configEntry,
- RestoreConfig restoreConfig)
+ public void restoreBackup(RestoreConfig restoreConfig)
throws DirectoryException
{
// This backend does not provide a backup/restore mechanism.
--
Gitblit v1.10.0