From 9681e2c7eca97e6288d0c7b50178ee28f4955135 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)

---
 opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java |  111 ++++++++++++++-----------------------------------------
 1 files changed, 29 insertions(+), 82 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java b/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
index e7dadb6..e2f26cd 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/BackupBackend.java
@@ -33,14 +33,12 @@
 
 import org.opends.server.api.Backend;
 import org.opends.server.config.ConfigException;
-import org.opends.server.config.ConfigEntry;
 import org.opends.server.core.AddOperation;
 import org.opends.server.core.DeleteOperation;
 import org.opends.server.core.DirectoryServer;
 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.schema.BooleanSyntax;
 import org.opends.server.schema.GeneralizedTimeSyntax;
@@ -72,9 +70,10 @@
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
+import org.opends.server.util.Validator;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.BackupBackendCfg;
-import org.opends.server.admin.std.meta.BackupBackendCfgDefn;
+import org.opends.server.admin.Configuration;
 
 
 /**
@@ -125,25 +124,32 @@
   }
 
 
-
   /**
    * {@inheritDoc}
    */
-  public void initializeBackend(ConfigEntry configEntry, DN[] baseDNs)
-         throws ConfigException, InitializationException
+  public void configureBackend(Configuration config) throws ConfigException
   {
     // Make sure that a configuration entry was provided.  If not, then we will
     // not be able to complete initialization.
-    if (configEntry == null)
+    if (config == null)
     {
       int    msgID   = MSGID_BACKUP_CONFIG_ENTRY_NULL;
       String message = getMessage(msgID);
       throw new ConfigException(msgID, message);
     }
 
-    BackupBackendCfg cfg = getBackupBackendCfg(configEntry);
 
+    Validator.ensureTrue(config instanceof BackupBackendCfg);
 
+    currentConfig = (BackupBackendCfg)config;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  public void initializeBackend()
+         throws ConfigException, InitializationException
+  {
     // Create the set of base DNs that we will handle.  In this case, it's just
     // the DN of the base backup entry.
     try
@@ -167,7 +173,7 @@
 
 
     // Determine the set of backup directories that we will use by default.
-    Set<String> values = cfg.getBackupDirectory();
+    Set<String> values = currentConfig.getBackupDirectory();
     backupDirectories = new LinkedHashSet<File>(values.size());
     for (String s : values)
     {
@@ -215,8 +221,7 @@
 
 
     // Register this as a change listener.
-    currentConfig = cfg;
-    cfg.addBackupChangeListener(this);
+    currentConfig.addBackupChangeListener(this);
 
 
     // Register the backup base as a private suffix.
@@ -1063,20 +1068,9 @@
 
 
   /**
-   * Exports the contents of this backend to LDIF.  This method should only be
-   * called if <CODE>supportsLDIFExport</CODE> returns <CODE>true</CODE>.  Note
-   * that the server will not explicitly initialize this backend before calling
-   * this method.
-   *
-   * @param  configEntry   The configuration entry for this backend.
-   * @param  baseDNs       The set of base DNs configured for this backend.
-   * @param  exportConfig  The configuration to use when performing the export.
-   *
-   * @throws  DirectoryException  If a problem occurs while performing the LDIF
-   *                              export.
+   * {@inheritDoc}
    */
-  public void exportLDIF(ConfigEntry configEntry, DN[] baseDNs,
-                         LDIFExportConfig exportConfig)
+  public void exportLDIF(LDIFExportConfig exportConfig)
          throws DirectoryException
   {
     int    msgID   = MSGID_BACKUP_EXPORT_NOT_SUPPORTED;
@@ -1103,20 +1097,9 @@
 
 
   /**
-   * Imports information from an LDIF file into this backend.  This method
-   * should only be called if <CODE>supportsLDIFImport</CODE> returns
-   * <CODE>true</CODE>.  Note that the server will not explicitly initialize
-   * this backend before calling this method.
-   *
-   * @param  configEntry   The configuration entry for this backend.
-   * @param  baseDNs       The set of base DNs configured for this backend.
-   * @param  importConfig  The configuration to use when performing the import.
-   *
-   * @throws  DirectoryException  If a problem occurs while performing the LDIF
-   *                              import.
+   * {@inheritDoc}
    */
-  public void importLDIF(ConfigEntry configEntry, DN[] baseDNs,
-                         LDIFImportConfig importConfig)
+  public void importLDIF(LDIFImportConfig importConfig)
          throws DirectoryException
   {
     // This backend does not support LDIF imports.
@@ -1172,20 +1155,10 @@
 
 
   /**
-   * Creates a backup of the contents of this backend in a form that may be
-   * restored at a later date if necessary.  This method should only be called
-   * if <CODE>supportsBackup</CODE> returns <CODE>true</CODE>.  Note that the
-   * server will not explicitly initialize this backend before calling this
-   * method.
-   *
-   * @param  configEntry   The configuration entry for this backend.
-   * @param  backupConfig  The configuration to use when performing the backup.
-   *
-   * @throws  DirectoryException  If a problem occurs while performing the
-   *                              backup.
+   * {@inheritDoc}
    */
-  public void createBackup(ConfigEntry configEntry, BackupConfig backupConfig)
-         throws DirectoryException
+  public void createBackup(BackupConfig backupConfig)
+  throws DirectoryException
   {
     // This backend does not provide a backup/restore mechanism.
     int    msgID   = MSGID_BACKUP_BACKUP_AND_RESTORE_NOT_SUPPORTED;
@@ -1236,20 +1209,9 @@
 
 
   /**
-   * Restores a backup of the contents of this backend.  This method should only
-   * be called if <CODE>supportsRestore</CODE> returns <CODE>true</CODE>.  Note
-   * that the server will not explicitly initialize this backend before calling
-   * this method.
-   *
-   * @param  configEntry    The configuration entry for this backend.
-   * @param  restoreConfig  The configuration to use when performing the
-   *                        restore.
-   *
-   * @throws  DirectoryException  If a problem occurs while performing the
-   *                              restore.
+   * {@inheritDoc}
    */
-  public void restoreBackup(ConfigEntry configEntry,
-                            RestoreConfig restoreConfig)
+  public void restoreBackup(RestoreConfig restoreConfig)
          throws DirectoryException
   {
     // This backend does not provide a backup/restore mechanism.
@@ -1265,8 +1227,7 @@
    * {@inheritDoc}
    */
   public boolean isConfigurationChangeAcceptable(
-       BackupBackendCfg configEntry,
-       List<String> unacceptableReasons)
+       BackupBackendCfg cfg, List<String> unacceptableReasons)
   {
     // We'll accept anything here.  The only configurable attribute is the
     // default set of backup directories, but that doesn't require any
@@ -1278,22 +1239,21 @@
   /**
    * {@inheritDoc}
    */
-  public ConfigChangeResult applyConfigurationChange(
-       BackupBackendCfg configEntry)
+  public ConfigChangeResult applyConfigurationChange(BackupBackendCfg cfg)
   {
     ResultCode        resultCode          = ResultCode.SUCCESS;
     boolean           adminActionRequired = false;
     ArrayList<String> messages            = new ArrayList<String>();
 
 
-    Set<String> values = configEntry.getBackupDirectory();
+    Set<String> values = cfg.getBackupDirectory();
     backupDirectories = new LinkedHashSet<File>(values.size());
     for (String s : values)
     {
       backupDirectories.add(getFileForPath(s));
     }
 
-    currentConfig = configEntry;
+    currentConfig = cfg;
     return new ConfigChangeResult(resultCode, adminActionRequired, messages);
   }
 
@@ -1314,18 +1274,5 @@
   }
 
 
-  /**
-   * Gets the backup backend configuration corresponding to a backup
-   * backend config entry.
-   *
-   * @param configEntry A backup backend config entry.
-   * @return Returns the backup backend configuration.
-   * @throws ConfigException If the config entry could not be decoded.
-   */
-  static BackupBackendCfg getBackupBackendCfg(ConfigEntry configEntry)
-      throws ConfigException {
-    return BackendConfigManager.getConfiguration(
-         BackupBackendCfgDefn.getInstance(), configEntry);
-  }
 }
 

--
Gitblit v1.10.0