/*
* The contents of this file are subject to the terms of the Common Development and
* Distribution License (the License). You may not use this file except in compliance with the
* License.
*
* You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the
* specific language governing permission and limitations under the License.
*
* When distributing Covered Software, include this CDDL Header Notice in each file and include
* the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL
* Header, with the fields enclosed by brackets [] replaced by your own identifying
* information: "Portions Copyright [year] [name of copyright owner]".
*
* Copyright 2006-2008 Sun Microsystems, Inc.
*/
/**
* Defines the Directory Server plugin API. Plugins are classes
* containing user-defined code that will be executed at specific
* times points during operation processing. In particular, the
* plugin points for operation processing include:
*
*
* -
* Pre-parse plugins are invoked just before processing begins on
* an operation. They may be used to transparently alter the
* contents of the request in some way.
*
* -
* Pre-operation plugins are invoked after a significant amount of
* validation has been performed on the request but just before
* the real heart of the core processing begins (e.g., the backend
* processing).
*
* -
* Post-operation plugins are invoked just after the heart of the
* core processing on an operation but before the response is sent
* to the client. They may be used to modify the response that
* will be sent and/or perform alternate processing for an
* operation in the event that the real core processing failed.
*
* -
* Post-response plugins are invoked after the response has been
* sent to the client and all other processing for the operation
* has completed. They may be used for cases in which the plugin
* processing does not need to occur before the client receives
* the response for the operation.
*
*
*
* These plugins may be invoked for most kinds of operations, although
* certain types of operations like abandon and unbind do not have
* responses and therefore there is no ability to invoke post-response
* plugins for those kinds of operations.
*
* Other plugin Directory Server plugin points include:
*
*
* -
* Startup plugins may be used to invoke user-defined code when
* the Directory Server starts.
*
* -
* Shutdown plugins may be used to invoke user-defined code when
* the Directory Server performs a graceful shutdown.
*
* -
* Post-connect plugins may be used to invoke user-defined code
* whenever a new client connection is established.
*
* -
* Post-disconnect plugins may be used to invoke user-defined code
* whenever a client connection is terminated.
*
* -
* Search result entry plugins may be used to alter entries as
* they are sent to clients.
*
* -
* Search result reference plugins may be used to alter referrals
* as they are sent to clients.
*
* -
* Intermediate response plugins may be used to alter intermediate
* response messages as they are sent to clients.
*
* -
* LDIF import plugins may be used to alter entries as they are
* read from LDIF files.
*
* -
* LDIF export plugins may be used to alter entries as they are
* written to LDIF files.
*
*
*/
@org.opends.server.types.PublicAPI(
stability=org.opends.server.types.StabilityLevel.UNCOMMITTED)
package org.opends.server.api.plugin;