From 552c93c9519eb3d7d4e61e168e422349db71be67 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 05 Sep 2007 22:59:43 +0000
Subject: [PATCH] Remove unused legacy class.

---
 /dev/null |  724 -------------------------------------------------------
 1 files changed, 0 insertions(+), 724 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/admin/server/AbstractOptionalConfigurationManager.java b/opendj-sdk/opends/src/server/org/opends/server/admin/server/AbstractOptionalConfigurationManager.java
deleted file mode 100644
index 93e86e0..0000000
--- a/opendj-sdk/opends/src/server/org/opends/server/admin/server/AbstractOptionalConfigurationManager.java
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
- * CDDL HEADER START
- *
- * The contents of this file are subject to the terms of the
- * Common Development and Distribution License, Version 1.0 only
- * (the "License").  You may not use this file except in compliance
- * with the License.
- *
- * You can obtain a copy of the license at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE
- * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
- * See the License for the specific language governing permissions
- * and limitations under the License.
- *
- * When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
- *      Portions Copyright [yyyy] [name of copyright owner]
- *
- * CDDL HEADER END
- *
- *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
- */
-package org.opends.server.admin.server;
-import org.opends.messages.Message;
-
-
-
-import static org.opends.server.util.StaticUtils.stackTraceToSingleLineString;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.opends.server.admin.ClassPropertyDefinition;
-import org.opends.server.admin.Configuration;
-import org.opends.server.config.ConfigException;
-import org.opends.server.core.DirectoryServer;
-import org.opends.messages.AdminMessages;
-
-import org.opends.server.types.ConfigChangeResult;
-import org.opends.server.types.InitializationException;
-import org.opends.server.types.ResultCode;
-
-
-
-/**
- * A skeleton implementation of a configuration manager. This type of
- * manager can be used for managing "optional" configurations (i.e.
- * where there is a one to zero or one relationship).
- * <p>
- * Configuration managers are responsible for initializing and
- * finalizing instances as required. During initialization, the
- * manager takes responsibility for loading and instantiating the
- * implementation class. It then initializes the implementation
- * instance by invoking a method having the following signature:
- *
- * <pre>
- * void initializeXXX(YYY config) throws ConfigException,
- *     InitializationException;
- * </pre>
- *
- * Where <code>XXX</code> is the simple name of the instance type
- * <code>T</code>, and <code>YYY</code> is the expected
- * configuration type for the implementation, which is either the
- * configuration type <code>C</code> or a sub-type thereof.
- *
- * @param <C>
- *          The type of configuration referenced by this manager.
- * @param <T>
- *          The type of component represented by the configuration.
- */
-public abstract class AbstractOptionalConfigurationManager
-    <C extends Configuration, T> {
-
-  /**
-   * Private add listener implementation.
-   */
-  private class AddListener implements ConfigurationAddListener<C> {
-
-    // Private constructor.
-    private AddListener() {
-      // No implementation required.
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public ConfigChangeResult applyConfigurationAdd(C config) {
-      // Default result code.
-      ResultCode resultCode = ResultCode.SUCCESS;
-      boolean adminActionRequired = false;
-      ArrayList<Message> messages = new ArrayList<Message>();
-
-      // We have committed to this change so always update the
-      // configuration.
-      setConfiguration(config);
-
-      if (isEnabled(config)) {
-        // The configuration is enabled so it should be instantiated.
-        try {
-          // Notify that a new instance has been added.
-          doRegisterInstance(getImplementation(config));
-        } catch (ConfigException e) {
-          messages.add(e.getMessageObject());
-          resultCode = DirectoryServer.getServerErrorResultCode();
-        } catch (InitializationException e) {
-          messages.add(e.getMessageObject());
-          resultCode = DirectoryServer.getServerErrorResultCode();
-        }
-      } else {
-        // Ignore this configuration if it is disabled - we don't need
-        // to set instance to null here since it should already be
-        // null, but we do just to make the behavior explicit.
-        if (instance != null) {
-          finalizeInstance(instance);
-          instance = null;
-        }
-        notifyDisableInstance(config);
-      }
-
-      // Return the configuration result.
-      return new ConfigChangeResult(resultCode, adminActionRequired,
-          messages);
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isConfigurationAddAcceptable(C config,
-        List<Message> unacceptableReasons) {
-      if (isEnabled(config)) {
-        // It's enabled so always validate the class.
-        return isJavaClassAcceptable(config, unacceptableReasons);
-      } else {
-        // It's disabled so ignore it.
-        return true;
-      }
-    }
-  }
-
-
-
-  /**
-   * Private change listener implementation.
-   */
-  private class ChangeListener implements
-      ConfigurationChangeListener<C> {
-
-    // Private constructor.
-    private ChangeListener() {
-      // No implementation required.
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public ConfigChangeResult applyConfigurationChange(C config) {
-      // Default result code.
-      ResultCode resultCode = ResultCode.SUCCESS;
-      boolean adminActionRequired = false;
-      ArrayList<Message> messages = new ArrayList<Message>();
-
-      // We have committed to this change so always update the
-      // configuration.
-      setConfiguration(config);
-
-      // See whether the configuration should be enabled.
-      if (instance == null) {
-        if (isEnabled(config)) {
-          // The configuration is enabled so it should be
-          // instantiated.
-          try {
-            // Notify that a new instance has been added.
-            doRegisterInstance(getImplementation(config));
-          } catch (ConfigException e) {
-            messages.add(e.getMessageObject());
-            resultCode = DirectoryServer.getServerErrorResultCode();
-          } catch (InitializationException e) {
-            messages.add(e.getMessageObject());
-            resultCode = DirectoryServer.getServerErrorResultCode();
-          }
-        } else {
-          // Do nothing: we could notify that the configuration is
-          // disabled, but it was already, so there's no point in
-          // notifying again.
-        }
-      } else if (isEnabled(config)) {
-        // The instance is currently active, so we don't need to do
-        // anything. Changes to the class name should not be applied
-        // dynamically, so if the class name did change then
-        // indicate that administrative action is required for that
-        // change to take effect.
-        String className = getJavaImplementationClass(config);
-        if (!className.equals(instance.getClass().getName())) {
-          adminActionRequired = true;
-        }
-      } else {
-        // We need to disable the instance.
-        if (instance != null) {
-          finalizeInstance(instance);
-          instance = null;
-        }
-        notifyDisableInstance(config);
-      }
-
-      // Return the configuration result.
-      return new ConfigChangeResult(resultCode, adminActionRequired,
-          messages);
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isConfigurationChangeAcceptable(C config,
-        List<Message> unacceptableReasons) {
-      if (isEnabled(config)) {
-        // It's enabled so always validate the class.
-        return isJavaClassAcceptable(config, unacceptableReasons);
-      } else if (isEnabled(getConfiguration())) {
-        return isDisableInstanceAcceptable(config,
-            unacceptableReasons);
-      } else {
-        // It's already disabled so ignore it.
-        return true;
-      }
-    }
-  }
-
-
-
-  /**
-   * Private delete listener implementation.
-   */
-  private class DeleteListener implements
-      ConfigurationDeleteListener<C> {
-
-    // Private constructor.
-    private DeleteListener() {
-      // No implementation required.
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public ConfigChangeResult applyConfigurationDelete(C config) {
-      // Default result code.
-      ResultCode resultCode = ResultCode.SUCCESS;
-      boolean adminActionRequired = false;
-
-      // We have committed to this change so always update the
-      // configuration and finalize the instance.
-      setConfiguration(null);
-
-      if (instance != null) {
-        finalizeInstance(instance);
-        instance = null;
-      }
-      notifyDeleteInstance(config);
-
-      return new ConfigChangeResult(resultCode, adminActionRequired);
-    }
-
-
-
-    /**
-     * {@inheritDoc}
-     */
-    public boolean isConfigurationDeleteAcceptable(C config,
-        List<Message> unacceptableReasons) {
-      if (isEnabled(getConfiguration())) {
-        return isDisableInstanceAcceptable(config,
-            unacceptableReasons);
-      } else {
-        return true;
-      }
-    }
-  }
-
-  // The property definition defining the Java implementation class.
-  private final ClassPropertyDefinition propertyDefinition;
-
-  // The instance class.
-  private final Class<T> theClass;
-
-  // Configuration add listener.
-  private final AddListener addListener;
-
-  // Configuration change listener.
-  private final ChangeListener changeListener;
-
-  // Configuration delete listener.
-  private final DeleteListener deleteListener;
-
-  // Indicates whether or not the parent listeners have been
-  // registered.
-  private boolean listenersRegistered;
-
-  // The current active configuration.
-  private C currentConfig;
-
-  // The current active instance.
-  private T instance;
-
-
-
-  /**
-   * Create a new optional configuration manager.
-   *
-   * @param theClass
-   *          The instance class.
-   * @param propertyDefinition
-   *          The property definition defining the Java implementation
-   *          class.
-   */
-  protected AbstractOptionalConfigurationManager(Class<T> theClass,
-      ClassPropertyDefinition propertyDefinition) {
-    this.currentConfig = null;
-    this.instance = null;
-    this.theClass = theClass;
-    this.propertyDefinition = propertyDefinition;
-    this.listenersRegistered = false;
-
-    this.addListener = new AddListener();
-    this.deleteListener = new DeleteListener();
-    this.changeListener = new ChangeListener();
-  }
-
-
-
-  /**
-   * Performs any finalization that may be necessary for this manager.
-   */
-  public final void finalizeManager() {
-    deregisterAddListener(addListener);
-    deregisterDeleteListener(deleteListener);
-
-    if (currentConfig != null) {
-      deregisterChangeListener(changeListener, currentConfig);
-    }
-
-    if (instance != null) {
-      finalizeInstance(instance);
-    }
-  }
-
-
-
-  /**
-   * Get the current active configuration.
-   *
-   * @return Returns the current active configuration.
-   */
-  public final C getConfiguration() {
-    return currentConfig;
-  }
-
-
-
-  /**
-   * Get the current active instance.
-   *
-   * @return Returns the current active instance.
-   */
-  public final T getInstance() {
-    return instance;
-  }
-
-
-
-  /**
-   * Initializes this manager based on the information in the provided
-   * configuration if available. The implementation of this method
-   * will first register this manager as an add/delete listener before
-   * processing the provided initial configuration if it is available.
-   * <p>
-   * It is safe to initialize the manager more than once. This is
-   * useful during testing as an easy way to set the manager's
-   * configuration.
-   *
-   * @param config
-   *          The configuration (can be <code>null</code> if there
-   *          is no initial configuration.
-   * @throws ConfigException
-   *           If there is a problem with the configuration.
-   * @throws InitializationException
-   *           If a problem occurs during initialization.
-   */
-  public final void initialize(C config) throws ConfigException,
-      InitializationException {
-    // Register to be notified when a configuration is added or
-    // removed (only do this once).
-    if (!listenersRegistered) {
-      registerAddListener(addListener);
-      registerDeleteListener(deleteListener);
-      listenersRegistered = true;
-    }
-
-    // Make sure that there is no current instance.
-    instance = null;
-
-    if (config != null) {
-      // Always register as a listener.
-      setConfiguration(config);
-
-      if (isEnabled(config)) {
-        // We have a configuration and it is enabled.
-        doRegisterInstance(getImplementation(config));
-      } else {
-        // There is a configuration present but it is disabled. Don't
-        // process the configuration in case it is invalid. We don't
-        // want to issue warnings for components which are disabled.
-        notifyDisableInstance(config);
-      }
-    }
-  }
-
-
-
-  /**
-   * Deregisters an add listener.
-   *
-   * @param listener
-   *          The configuration add listener.
-   */
-  protected abstract void deregisterAddListener(
-      ConfigurationAddListener<C> listener);
-
-
-
-  /**
-   * Deregisters a change listener.
-   *
-   * @param listener
-   *          The configuration change listener.
-   * @param config
-   *          The configuration from which to deregister the change
-   *          listener.
-   */
-  protected abstract void deregisterChangeListener(
-      ConfigurationChangeListener<C> listener, C config);
-
-
-
-  /**
-   * Deregisters a delete listener.
-   *
-   * @param listener
-   *          The configuration delete listener.
-   */
-  protected abstract void deregisterDeleteListener(
-      ConfigurationDeleteListener<C> listener);
-
-
-
-  /**
-   * Finalizes a previously activate instance.
-   *
-   * @param instance
-   *          The instance to be finalized.
-   */
-  protected abstract void finalizeInstance(T instance);
-
-
-
-  /**
-   * Get the name of the Java implementation class.
-   * <p>
-   * Sub-classes should usually implement this method using a call to
-   * the configuration's <code>getJavaImplementationClass()</code>
-   * method.
-   *
-   * @param config
-   *          The active configuration.
-   * @return Returns the name of the Java implementation class.
-   */
-  protected abstract String getJavaImplementationClass(C config);
-
-
-
-  /**
-   * Indicates whether the active instance can be disabled or deleted.
-   *
-   * @param config
-   *          The configuration that will be disabled or deleted.
-   * @param unacceptableReasons
-   *          A list that can be used to hold messages about why the
-   *          active instance cannot be disabled or deleted..
-   * @return Returns <code>true</code> if the active instance can be
-   *         disabled or deleted.
-   */
-  protected abstract boolean isDisableInstanceAcceptable(C config,
-      List<Message> unacceptableReasons);
-
-
-
-  /**
-   * Determines whether or not the active configuration is enabled or
-   * not.
-   * <p>
-   * Sub-classes should usually implement this method using a call to
-   * the configuration's <code>isEnabled()</code> method.
-   *
-   * @param config
-   *          The active configuration.
-   * @return Returns <code>true</code> if the configuration is
-   *         enabled.
-   */
-  protected abstract boolean isEnabled(C config);
-
-
-
-  /**
-   * Notify that the configuration has been deleted. This may involve
-   * logging a message. Implementations do not need to worry about
-   * finalizing the instance, since that is performed by the
-   * {@link #finalizeInstance(Object)} method.
-   *
-   * @param config
-   *          The deleted configuration.
-   */
-  protected abstract void notifyDeleteInstance(C config);
-
-
-
-  /**
-   * Notify that the configuration has been disabled. This may involve
-   * logging a message. Implementations do not need to worry about
-   * finalizing the instance, since that is performed by the
-   * {@link #finalizeInstance(Object)} method.
-   *
-   * @param config
-   *          The disabled configuration.
-   */
-  protected abstract void notifyDisableInstance(C config);
-
-
-
-  /**
-   * Register to be notified when the configuration is added.
-   *
-   * @param listener
-   *          The configuration add listener.
-   * @throws ConfigException
-   *           If the add listener could not be registered.
-   */
-  protected abstract void registerAddListener(
-      ConfigurationAddListener<C> listener) throws ConfigException;
-
-
-
-  /**
-   * Register to be notified when a configuration is changed.
-   *
-   * @param listener
-   *          The configuration change listener.
-   * @param config
-   *          Receive change notifications for this configuration.
-   */
-  protected abstract void registerChangeListener(
-      ConfigurationChangeListener<C> listener, C config);
-
-
-
-  /**
-   * Register to be notified when the configuration is deleted.
-   *
-   * @param listener
-   *          The configuration delete listener.
-   * @throws ConfigException
-   *           If the add listener could not be registered.
-   */
-  protected abstract void registerDeleteListener(
-      ConfigurationDeleteListener<C> listener) throws ConfigException;
-
-
-
-  /**
-   * Registers a newly activated instance. This may involve updating
-   * the parent configuration, starting a thread, etc. This manager
-   * will have already invoked <code>initialize(C config)</code>
-   * against the instance.
-   *
-   * @param instance
-   *          The new instance.
-   * @throws InitializationException
-   *           If a problem occurs during initialization.
-   */
-  protected abstract void registerInstance(T instance)
-      throws InitializationException;
-
-
-
-  // Notify listeners that a new instance has been added and/or
-  // enabled.
-  private void doRegisterInstance(T instance)
-      throws InitializationException {
-    this.instance = instance;
-
-    // Let sub-class implementation decide what to do with the new
-    // instance.
-    registerInstance(instance);
-  }
-
-
-
-  // Load, instantiate, and initialize the class named in the Java
-  // implementation class property of the provided configuration.
-  private T getImplementation(C config) throws ConfigException {
-    String className = getJavaImplementationClass(config);
-
-    // Load the class and cast it to a T.
-    Class<? extends T> implClass;
-    T instance;
-
-    try {
-      implClass = propertyDefinition.loadClass(className, theClass);
-      instance = implClass.newInstance();
-    } catch (Exception e) {
-      Message message = AdminMessages.ERR_ADMIN_CANNOT_INSTANTIATE_CLASS.
-          get(String.valueOf(className), String.valueOf(config.dn()),
-              stackTraceToSingleLineString(e));
-      throw new ConfigException(message, e);
-    }
-
-    // Perform the necessary initialization for the instance.
-    try {
-      // Determine the initialization method to use: it must take a
-      // single parameter which is the exact type of the configuration
-      // object.
-      String name = getInitializationMethodName();
-      Method method = implClass.getMethod(name, config.definition()
-          .getServerConfigurationClass());
-
-      method.invoke(instance, config);
-    } catch (Exception e) {
-      Message message = AdminMessages.ERR_ADMIN_CANNOT_INITIALIZE_COMPONENT.
-          get(String.valueOf(className), String.valueOf(config.dn()),
-              stackTraceToSingleLineString(e));
-      throw new ConfigException(message, e);
-    }
-
-    // The instance has been successfully initialized.
-    return instance;
-  }
-
-
-
-  // Get the name of the method which should be used
-  // to initialize instances.
-  private String getInitializationMethodName() {
-    return "initialize" + theClass.getSimpleName();
-  }
-
-
-
-  // Determines whether or not the new configuration's implementation
-  // class is acceptable.
-  private boolean isJavaClassAcceptable(C config,
-      List<Message> unacceptableReasons) {
-    String className = getJavaImplementationClass(config);
-
-    // Load the class and cast it to a T.
-    Class<? extends T> implClass;
-
-    try {
-      implClass = propertyDefinition.loadClass(className, theClass);
-      implClass.newInstance();
-    } catch (Exception e) {
-      unacceptableReasons.add(
-              AdminMessages.ERR_ADMIN_CANNOT_INSTANTIATE_CLASS.get(
-                      String.valueOf(className),
-                      String.valueOf(config.dn()),
-                      stackTraceToSingleLineString(e)));
-      return false;
-    }
-
-    // Perform the necessary initialization for the instance.
-    try {
-      // Determine the initialization method to use: it must take a
-      // single parameter which is the exact type of the configuration
-      // object.
-      String name = getInitializationMethodName();
-      implClass.getMethod(name, config.definition()
-          .getServerConfigurationClass());
-    } catch (Exception e) {
-      unacceptableReasons.add(
-              AdminMessages.ERR_ADMIN_CANNOT_INITIALIZE_COMPONENT.get(
-                      String.valueOf(className), String.valueOf(config.dn()),
-                      stackTraceToSingleLineString(e)));
-      return false;
-    }
-
-    // The class is valid as far as we can tell.
-    return true;
-  }
-
-
-
-  // Set the new configuration and register for change events.
-  private void setConfiguration(C config) {
-    // We only need to register for change events if there was no
-    // previous configuration. This is because the notification
-    // frameworks ensures that listeners are preserved when a new
-    // configuration replaces an old one.
-    if (currentConfig == null && config != null) {
-      registerChangeListener(changeListener, config);
-    }
-    currentConfig = config;
-  }
-}

--
Gitblit v1.10.0