org.apache.directory.server.core.partition
Class PartitionNexusProxy

java.lang.Object
  extended byorg.apache.directory.server.core.partition.PartitionNexus
      extended byorg.apache.directory.server.core.partition.PartitionNexusProxy
All Implemented Interfaces:
Partition

public class PartitionNexusProxy
extends PartitionNexus

A decorator that wraps other PartitionNexus to enable InterceptorChain and InvocationStack support. All Invocations made to this nexus is automatically pushed to InvocationStack of the current thread, and popped when the operation ends. All invocations are filtered by InterceptorChain.

Version:
$Rev: 438396 $, $Date: 2006-08-30 08:36:15 +0200 (Wed, 30 Aug 2006) $
Author:
Apache Directory Project

Field Summary
static java.lang.String BYPASS_ALL
          Bypass String to use when ALL interceptors should be skipped
static java.util.Collection BYPASS_ALL_COLLECTION
          Bypass String to use when ALL interceptors should be skipped
static java.util.Collection GETMATCHEDDN_BYPASS
          safe to use set of bypass instructions to getMatchedDn
static java.util.Collection LOOKUP_BYPASS
          safe to use set of bypass instructions to lookup raw entries
static java.util.Collection LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS
          safe to use set of bypass instructions to lookup raw entries excluding operational attributes
 
Fields inherited from class org.apache.directory.server.core.partition.PartitionNexus
ADMIN_PASSWORD, ADMIN_PRINCIPAL, ADMIN_PRINCIPAL_NORMALIZED, ADMIN_UID, GROUPS_BASE_NAME, SYSTEM_PARTITION_SUFFIX, USERS_BASE_NAME
 
Fields inherited from interface org.apache.directory.server.core.partition.Partition
ALIAS_ATTRIBUTE, ALIAS_OBJECT
 
Constructor Summary
PartitionNexusProxy(javax.naming.Context caller, DirectoryService service)
          Creates a new instance.
 
Method Summary
 void add(LdapDN normName, javax.naming.directory.Attributes entry)
          Adds an entry to this ContextPartition.
 void add(LdapDN normName, javax.naming.directory.Attributes entry, java.util.Collection bypass)
           
 void addContextPartition(PartitionConfiguration config)
           
 void addContextPartition(PartitionConfiguration config, java.util.Collection bypass)
           
 void addNamingListener(javax.naming.event.EventContext ctx, javax.naming.Name name, ExprNode filter, javax.naming.directory.SearchControls searchControls, javax.naming.event.NamingListener namingListener)
           
 void bind(LdapDN bindDn, byte[] credentials, java.util.List mechanisms, java.lang.String saslAuthId)
          Represents a bind operation issued to authenticate a client.
 void bind(LdapDN bindDn, byte[] credentials, java.util.List mechanisms, java.lang.String saslAuthId, java.util.Collection bypass)
          TODO : check if we can find another way to procect ourselves from recursion.
 void close()
           
 boolean compare(LdapDN name, java.lang.String oid, java.lang.Object value)
          Performs a comparison check to see if an attribute of an entry has a specified value.
 boolean compare(LdapDN name, java.lang.String oid, java.lang.Object value, java.util.Collection bypass)
           
 void delete(LdapDN name)
          Deletes a leaf entry from this ContextPartition: non-leaf entries cannot be deleted until this operation has been applied to their children.
 void delete(LdapDN name, java.util.Collection bypass)
           
 void destroy()
          Deinitialized this partition.
 javax.naming.ldap.LdapContext getLdapContext()
          Gets the LdapContext associated with the calling thread.
 LdapDN getMatchedName(LdapDN dn)
          Gets the most significant Dn that exists within the server for any Dn.
 LdapDN getMatchedName(LdapDN dn, java.util.Collection bypass)
           
 Partition getPartition(LdapDN dn)
          Get's the partition corresponding to a distinguished name.
 javax.naming.directory.Attributes getRootDSE()
          Get's the RootDSE entry for the DSA.
 javax.naming.directory.Attributes getRootDSE(java.util.Collection bypass)
           
 LdapDN getSuffix()
          Gets the distinguished/absolute name of the suffix for all entries stored within this ContextPartition.
 LdapDN getSuffix(LdapDN dn)
          Gets the distinguished name of the suffix that would hold an entry with the supplied distinguished name parameter.
 LdapDN getSuffix(LdapDN dn, java.util.Collection bypass)
           
 Partition getSystemPartition()
           
 LdapDN getUpSuffix()
          Gets the distinguished/absolute name of the suffix for all entries stored within this ContextPartition.
 boolean hasEntry(LdapDN name)
          Fast operation to check and see if a particular entry exists.
 boolean hasEntry(LdapDN name, java.util.Collection bypass)
           
 void init(DirectoryServiceConfiguration factoryCfg, PartitionConfiguration cfg)
          Initializes this partition.
 boolean isInitialized()
          Checks to see if this partition is initialized or not.
 boolean isSuffix(LdapDN name)
          Checks to see if name is a context suffix.
 boolean isSuffix(LdapDN name, java.util.Collection bypass)
           
 javax.naming.NamingEnumeration list(LdapDN base)
          A specialized form of one level search used to return a minimal set of information regarding child entries under a base.
 javax.naming.NamingEnumeration list(LdapDN base, java.util.Collection bypass)
           
 java.util.Iterator listSuffixes()
          Gets an iteration over the Name suffixes of the partitions managed by this PartitionNexus.
 java.util.Iterator listSuffixes(java.util.Collection bypass)
           
 javax.naming.directory.Attributes lookup(LdapDN name)
          Looks up an entry by distinguished/absolute name.
 javax.naming.directory.Attributes lookup(LdapDN name, java.util.Collection bypass)
           
 javax.naming.directory.Attributes lookup(LdapDN dn, java.lang.String[] attrIds)
          Looks up an entry by distinguished/absolute name.
 javax.naming.directory.Attributes lookup(LdapDN dn, java.lang.String[] attrIds, java.util.Collection bypass)
           
 void modify(LdapDN name, int modOp, javax.naming.directory.Attributes mods)
          Modifies an entry by adding, removing or replacing a set of attributes.
 void modify(LdapDN name, int modOp, javax.naming.directory.Attributes mods, java.util.Collection bypass)
           
 void modify(LdapDN name, javax.naming.directory.ModificationItem[] mods)
          Modifies an entry by using a combination of adds, removes or replace operations using a set of ModificationItems.
 void modify(LdapDN name, javax.naming.directory.ModificationItem[] mods, java.util.Collection bypass)
           
 void modifyRn(LdapDN name, java.lang.String newRn, boolean deleteOldRn)
          Modifies an entry by changing its relative name.
 void modifyRn(LdapDN name, java.lang.String newRn, boolean deleteOldRn, java.util.Collection bypass)
           
 void move(LdapDN oriChildName, LdapDN newParentName)
          Transplants a child entry, to a position in the namespace under a new parent entry.
 void move(LdapDN oriChildName, LdapDN newParentName, java.util.Collection bypass)
           
 void move(LdapDN oriChildName, LdapDN newParentName, java.lang.String newRn, boolean deleteOldRn)
          Transplants a child entry, to a position in the namespace under a new parent entry and changes the RN of the child entry which can optionally have its old RN attributes removed.
 void move(LdapDN oriChildName, LdapDN newParentName, java.lang.String newRn, boolean deleteOldRn, java.util.Collection bypass)
           
 void registerSupportedExtensions(java.util.Set extensionOids)
          Adds a set of supportedExtension (OID Strings) to the RootDSE.
 void removeContextPartition(LdapDN suffix)
           
 void removeContextPartition(LdapDN suffix, java.util.Collection bypass)
           
 void removeNamingListener(javax.naming.event.EventContext ctx, javax.naming.event.NamingListener namingListener)
           
 javax.naming.NamingEnumeration search(LdapDN base, java.util.Map env, ExprNode filter, javax.naming.directory.SearchControls searchCtls)
          Conducts a search against this ContextPartition.
 javax.naming.NamingEnumeration search(LdapDN base, java.util.Map env, ExprNode filter, javax.naming.directory.SearchControls searchCtls, java.util.Collection bypass)
           
 void sync()
          Flushes any changes made to this partition now.
 void unbind(LdapDN bindDn)
          Represents an unbind operation issued by an authenticated client.
 void unbind(LdapDN bindDn, java.util.Collection bypass)
           
 
Methods inherited from class org.apache.directory.server.core.partition.PartitionNexus
getAdminName, getGroupsBaseName, getUsersBaseName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOOKUP_BYPASS

public static final java.util.Collection LOOKUP_BYPASS
safe to use set of bypass instructions to lookup raw entries


GETMATCHEDDN_BYPASS

public static final java.util.Collection GETMATCHEDDN_BYPASS
safe to use set of bypass instructions to getMatchedDn


LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS

public static final java.util.Collection LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS
safe to use set of bypass instructions to lookup raw entries excluding operational attributes


BYPASS_ALL

public static final java.lang.String BYPASS_ALL
Bypass String to use when ALL interceptors should be skipped

See Also:
Constant Field Values

BYPASS_ALL_COLLECTION

public static final java.util.Collection BYPASS_ALL_COLLECTION
Bypass String to use when ALL interceptors should be skipped

Constructor Detail

PartitionNexusProxy

public PartitionNexusProxy(javax.naming.Context caller,
                           DirectoryService service)
Creates a new instance.

Parameters:
caller - a JNDI Context object that will call this proxy
service - a JNDI service
Method Detail

getLdapContext

public javax.naming.ldap.LdapContext getLdapContext()
Description copied from class: PartitionNexus
Gets the LdapContext associated with the calling thread.

Specified by:
getLdapContext in class PartitionNexus
Returns:
The LdapContext associated with the thread of execution or null if no context is associated with the calling thread.

init

public void init(DirectoryServiceConfiguration factoryCfg,
                 PartitionConfiguration cfg)
Description copied from interface: Partition
Initializes this partition.


destroy

public void destroy()
Description copied from interface: Partition
Deinitialized this partition.


getSystemPartition

public Partition getSystemPartition()
Specified by:
getSystemPartition in class PartitionNexus

getPartition

public Partition getPartition(LdapDN dn)
                       throws javax.naming.NamingException
Description copied from class: PartitionNexus
Get's the partition corresponding to a distinguished name. This name need not be the name of the partition suffix. When used in conjunction with get suffix this can properly find the partition associated with the DN. Make sure to use the normalized DN.

Specified by:
getPartition in class PartitionNexus
Parameters:
dn - the normalized distinguished name to get a partition for
Returns:
the partition containing the entry represented by the dn
Throws:
javax.naming.NamingException - if there is no partition for the dn

getSuffix

public LdapDN getSuffix()
                 throws javax.naming.NamingException
Description copied from interface: Partition
Gets the distinguished/absolute name of the suffix for all entries stored within this ContextPartition.

Returns:
Name representing the distinguished/absolute name of this ContextPartitions root context.
Throws:
javax.naming.NamingException

getUpSuffix

public LdapDN getUpSuffix()
                   throws javax.naming.NamingException
Description copied from interface: Partition
Gets the distinguished/absolute name of the suffix for all entries stored within this ContextPartition.

Returns:
Name representing the distinguished/absolute name of this ContextPartitions root context.
Throws:
javax.naming.NamingException

sync

public void sync()
          throws javax.naming.NamingException
Description copied from interface: Partition
Flushes any changes made to this partition now.

Throws:
javax.naming.NamingException

close

public void close()
           throws javax.naming.NamingException
Throws:
javax.naming.NamingException

isInitialized

public boolean isInitialized()
Description copied from interface: Partition
Checks to see if this partition is initialized or not.


getMatchedName

public LdapDN getMatchedName(LdapDN dn)
                      throws javax.naming.NamingException
Description copied from class: PartitionNexus
Gets the most significant Dn that exists within the server for any Dn.

Specified by:
getMatchedName in class PartitionNexus
Parameters:
dn - the normalized distinguished name to use for matching.
Returns:
a distinguished name representing the matching portion of dn, as originally provided by the user on creation of the matched entry or the empty string distinguished name if no match was found.
Throws:
javax.naming.NamingException - if there are any problems

getMatchedName

public LdapDN getMatchedName(LdapDN dn,
                             java.util.Collection bypass)
                      throws javax.naming.NamingException
Throws:
javax.naming.NamingException

getSuffix

public LdapDN getSuffix(LdapDN dn)
                 throws javax.naming.NamingException
Description copied from class: PartitionNexus
Gets the distinguished name of the suffix that would hold an entry with the supplied distinguished name parameter. If the DN argument does not fall under a partition suffix then the empty string Dn is returned.

Specified by:
getSuffix in class PartitionNexus
Parameters:
dn - the normalized distinguished name to use for finding a suffix.
Returns:
the suffix portion of dn, or the valid empty string Dn if no naming context was found for dn.
Throws:
javax.naming.NamingException - if there are any problems

getSuffix

public LdapDN getSuffix(LdapDN dn,
                        java.util.Collection bypass)
                 throws javax.naming.NamingException
Throws:
javax.naming.NamingException

listSuffixes

public java.util.Iterator listSuffixes()
                                throws javax.naming.NamingException
Description copied from class: PartitionNexus
Gets an iteration over the Name suffixes of the partitions managed by this PartitionNexus.

Specified by:
listSuffixes in class PartitionNexus
Returns:
Iteration over ContextPartition suffix names as Names.
Throws:
javax.naming.NamingException - if there are any problems

listSuffixes

public java.util.Iterator listSuffixes(java.util.Collection bypass)
                                throws javax.naming.NamingException
Throws:
javax.naming.NamingException

compare

public boolean compare(LdapDN name,
                       java.lang.String oid,
                       java.lang.Object value)
                throws javax.naming.NamingException
Description copied from class: PartitionNexus
Performs a comparison check to see if an attribute of an entry has a specified value.

Specified by:
compare in class PartitionNexus
Parameters:
name - the normalized name of the entry
oid - the attribute being compared
value - the value the attribute is compared to
Returns:
true if the entry contains an attribute with the value, false otherwise
Throws:
javax.naming.NamingException - if there is a problem accessing the entry and its values

compare

public boolean compare(LdapDN name,
                       java.lang.String oid,
                       java.lang.Object value,
                       java.util.Collection bypass)
                throws javax.naming.NamingException
Throws:
javax.naming.NamingException

delete

public void delete(LdapDN name)
            throws javax.naming.NamingException
Description copied from interface: Partition
Deletes a leaf entry from this ContextPartition: non-leaf entries cannot be deleted until this operation has been applied to their children.

Parameters:
name - the normalized distinguished/absolute name of the entry to delete from this ContextPartition.
Throws:
javax.naming.NamingException - if there are any problems

delete

public void delete(LdapDN name,
                   java.util.Collection bypass)
            throws javax.naming.NamingException
Throws:
javax.naming.NamingException

add

public void add(LdapDN normName,
                javax.naming.directory.Attributes entry)
         throws javax.naming.NamingException
Description copied from interface: Partition
Adds an entry to this ContextPartition.

Parameters:
normName -
entry - the entry to add to this ContextPartition
Throws:
javax.naming.NamingException - if there are any problems

add

public void add(LdapDN normName,
                javax.naming.directory.Attributes entry,
                java.util.Collection bypass)
         throws javax.naming.NamingException
Throws:
javax.naming.NamingException

modify

public void modify(LdapDN name,
                   int modOp,
                   javax.naming.directory.Attributes mods)
            throws javax.naming.NamingException
Description copied from interface: Partition
Modifies an entry by adding, removing or replacing a set of attributes.

Parameters:
name - the normalized distinguished/absolute name of the entry to modify
modOp - the modification operation to perform on the entry which is one of constants specified by the DirContext interface: ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE.
mods - the attributes and their values used to affect the modification with.
Throws:
javax.naming.NamingException - if there are any problems
See Also:
DirContext, DirContext.ADD_ATTRIBUTE, DirContext.REMOVE_ATTRIBUTE, DirContext.REPLACE_ATTRIBUTE

modify

public void modify(LdapDN name,
                   int modOp,
                   javax.naming.directory.Attributes mods,
                   java.util.Collection bypass)
            throws javax.naming.NamingException
Throws:
javax.naming.NamingException

modify

public void modify(LdapDN name,
                   javax.naming.directory.ModificationItem[] mods)
            throws javax.naming.NamingException
Description copied from interface: Partition
Modifies an entry by using a combination of adds, removes or replace operations using a set of ModificationItems.

Parameters:
name - the normalized distinguished/absolute name of the entry to modify
mods - the ModificationItems used to affect the modification with
Throws:
javax.naming.NamingException - if there are any problems
See Also:
ModificationItem

modify

public void modify(LdapDN name,
                   javax.naming.directory.ModificationItem[] mods,
                   java.util.Collection bypass)
            throws javax.naming.NamingException
Throws:
javax.naming.NamingException

list

public javax.naming.NamingEnumeration list(LdapDN base)
                                    throws javax.naming.NamingException
Description copied from interface: Partition
A specialized form of one level search used to return a minimal set of information regarding child entries under a base. Convenience method used to optimize operations rather than conducting a full search with retrieval.

Parameters:
base - the base distinguished/absolute name for the search/listing
Returns:
a NamingEnumeration containing objects of type SearchResult
Throws:
javax.naming.NamingException - if there are any problems

list

public javax.naming.NamingEnumeration list(LdapDN base,
                                           java.util.Collection bypass)
                                    throws javax.naming.NamingException
Throws:
javax.naming.NamingException

search

public javax.naming.NamingEnumeration search(LdapDN base,
                                             java.util.Map env,
                                             ExprNode filter,
                                             javax.naming.directory.SearchControls searchCtls)
                                      throws javax.naming.NamingException
Description copied from interface: Partition
Conducts a search against this ContextPartition. Namespace specific parameters for search are contained within the environment using namespace specific keys into the hash. For example in the LDAP namespace a ContextPartition implementation may look for search Controls using a namespace specific or implementation specific key for the set of LDAP Controls.

Parameters:
base - the normalized distinguished/absolute name of the search base
env - the environment under which operation occurs
filter - the root node of the filter expression tree
searchCtls - the search controls
Returns:
a NamingEnumeration containing objects of type SearchResult.
Throws:
javax.naming.NamingException - if there are any problems

search

public javax.naming.NamingEnumeration search(LdapDN base,
                                             java.util.Map env,
                                             ExprNode filter,
                                             javax.naming.directory.SearchControls searchCtls,
                                             java.util.Collection bypass)
                                      throws javax.naming.NamingException
Throws:
javax.naming.NamingException

lookup

public javax.naming.directory.Attributes lookup(LdapDN name)
                                         throws javax.naming.NamingException
Description copied from interface: Partition
Looks up an entry by distinguished/absolute name. This is a simplified version of the search operation used to point read an entry used for convenience.

Parameters:
name - the normalized distinguished name of the object to lookup
Returns:
an Attributes object representing the entry
Throws:
javax.naming.NamingException - if there are any problems

lookup

public javax.naming.directory.Attributes lookup(LdapDN name,
                                                java.util.Collection bypass)
                                         throws javax.naming.NamingException
Throws:
javax.naming.NamingException

lookup

public javax.naming.directory.Attributes lookup(LdapDN dn,
                                                java.lang.String[] attrIds)
                                         throws javax.naming.NamingException
Description copied from interface: Partition
Looks up an entry by distinguished/absolute name. This is a simplified version of the search operation used to point read an entry used for convenience with a set of attributes to return. If the attributes is null or empty, the returned entry will contain all attributes.

Parameters:
dn - the normalized distinguished name of the object to lookup
attrIds - the set of attributes to return
Returns:
an Attributes object representing the entry
Throws:
javax.naming.NamingException - if there are any problems

lookup

public javax.naming.directory.Attributes lookup(LdapDN dn,
                                                java.lang.String[] attrIds,
                                                java.util.Collection bypass)
                                         throws javax.naming.NamingException
Throws:
javax.naming.NamingException

hasEntry

public boolean hasEntry(LdapDN name)
                 throws javax.naming.NamingException
Description copied from interface: Partition
Fast operation to check and see if a particular entry exists.

Parameters:
name - the normalized distinguished/absolute name of the object to check for existance
Returns:
true if the entry exists, false if it does not
Throws:
javax.naming.NamingException - if there are any problems

hasEntry

public boolean hasEntry(LdapDN name,
                        java.util.Collection bypass)
                 throws javax.naming.NamingException
Throws:
javax.naming.NamingException

isSuffix

public boolean isSuffix(LdapDN name)
                 throws javax.naming.NamingException
Description copied from interface: Partition
Checks to see if name is a context suffix.

Parameters:
name - the normalized distinguished/absolute name of the context
Returns:
true if the name is a context suffix, false if it is not.
Throws:
javax.naming.NamingException - if there are any problems

isSuffix

public boolean isSuffix(LdapDN name,
                        java.util.Collection bypass)
                 throws javax.naming.NamingException
Throws:
javax.naming.NamingException

modifyRn

public void modifyRn(LdapDN name,
                     java.lang.String newRn,
                     boolean deleteOldRn)
              throws javax.naming.NamingException
Description copied from interface: Partition
Modifies an entry by changing its relative name. Optionally attributes associated with the old relative name can be removed from the entry. This makes sense only in certain namespaces like LDAP and will be ignored if it is irrelavent.

Parameters:
name - the normalized distinguished/absolute name of the entry to modify the RN of.
newRn - the new RN of the entry specified by name
deleteOldRn - boolean flag which removes the old RN attribute from the entry if set to true, and has no affect if set to false
Throws:
javax.naming.NamingException - if there are any problems

modifyRn

public void modifyRn(LdapDN name,
                     java.lang.String newRn,
                     boolean deleteOldRn,
                     java.util.Collection bypass)
              throws javax.naming.NamingException
Throws:
javax.naming.NamingException

move

public void move(LdapDN oriChildName,
                 LdapDN newParentName)
          throws javax.naming.NamingException
Description copied from interface: Partition
Transplants a child entry, to a position in the namespace under a new parent entry.

Parameters:
oriChildName - the normalized distinguished/absolute name of the original child name representing the child entry to move
newParentName - the normalized distinguished/absolute name of the new parent to move the target entry to
Throws:
javax.naming.NamingException - if there are any problems

move

public void move(LdapDN oriChildName,
                 LdapDN newParentName,
                 java.util.Collection bypass)
          throws javax.naming.NamingException
Throws:
javax.naming.NamingException

move

public void move(LdapDN oriChildName,
                 LdapDN newParentName,
                 java.lang.String newRn,
                 boolean deleteOldRn)
          throws javax.naming.NamingException
Description copied from interface: Partition
Transplants a child entry, to a position in the namespace under a new parent entry and changes the RN of the child entry which can optionally have its old RN attributes removed. The removal of old RN attributes may not make sense in all namespaces. If the concept is undefined in a namespace this parameters is ignored. An example of a namespace where this parameter is significant is the LDAP namespace.

Parameters:
oriChildName - the normalized distinguished/absolute name of the original child name representing the child entry to move
newParentName - the normalized distinguished/absolute name of the new parent to move the targeted entry to
newRn - the new RN of the entry
deleteOldRn - boolean flag which removes the old RN attribute from the entry if set to true, and has no affect if set to false
Throws:
javax.naming.NamingException - if there are any problems

move

public void move(LdapDN oriChildName,
                 LdapDN newParentName,
                 java.lang.String newRn,
                 boolean deleteOldRn,
                 java.util.Collection bypass)
          throws javax.naming.NamingException
Throws:
javax.naming.NamingException

bind

public void bind(LdapDN bindDn,
                 byte[] credentials,
                 java.util.List mechanisms,
                 java.lang.String saslAuthId,
                 java.util.Collection bypass)
          throws javax.naming.NamingException
TODO : check if we can find another way to procect ourselves from recursion.

Parameters:
bindDn -
credentials -
mechanisms -
saslAuthId -
bypass -
Throws:
javax.naming.NamingException

unbind

public void unbind(LdapDN bindDn,
                   java.util.Collection bypass)
            throws javax.naming.NamingException
Throws:
javax.naming.NamingException

bind

public void bind(LdapDN bindDn,
                 byte[] credentials,
                 java.util.List mechanisms,
                 java.lang.String saslAuthId)
          throws javax.naming.NamingException
Description copied from interface: Partition
Represents a bind operation issued to authenticate a client. Partitions need not support this operation. This operation is here to enable those interested in implementing virtual directories with ApacheDS.

Parameters:
bindDn - the normalized dn of the principal
credentials - the credentials of the principal
mechanisms - the mechanisms requested by the JNDI caller or a single mechanism representing the SASL bind mechanism used by a networked client (Strings)
saslAuthId - the SASL authentication (may be null)
Throws:
javax.naming.NamingException - if something goes wrong

unbind

public void unbind(LdapDN bindDn)
            throws javax.naming.NamingException
Description copied from interface: Partition
Represents an unbind operation issued by an authenticated client. Partitions need not support this operation. This operation is here to enable those interested in implementing virtual directories with ApacheDS.

Parameters:
bindDn - the normalized dn of the principal attempting to unbind
Throws:
javax.naming.NamingException - if something goes wrong

getRootDSE

public javax.naming.directory.Attributes getRootDSE()
                                             throws javax.naming.NamingException
Description copied from class: PartitionNexus
Get's the RootDSE entry for the DSA.

Specified by:
getRootDSE in class PartitionNexus
Returns:
the attributes of the RootDSE
Throws:
javax.naming.NamingException

getRootDSE

public javax.naming.directory.Attributes getRootDSE(java.util.Collection bypass)
                                             throws javax.naming.NamingException
Throws:
javax.naming.NamingException

addContextPartition

public void addContextPartition(PartitionConfiguration config)
                         throws javax.naming.NamingException
Specified by:
addContextPartition in class PartitionNexus
Throws:
javax.naming.NamingException

addContextPartition

public void addContextPartition(PartitionConfiguration config,
                                java.util.Collection bypass)
                         throws javax.naming.NamingException
Throws:
javax.naming.NamingException

removeContextPartition

public void removeContextPartition(LdapDN suffix)
                            throws javax.naming.NamingException
Specified by:
removeContextPartition in class PartitionNexus
Throws:
javax.naming.NamingException

removeContextPartition

public void removeContextPartition(LdapDN suffix,
                                   java.util.Collection bypass)
                            throws javax.naming.NamingException
Throws:
javax.naming.NamingException

registerSupportedExtensions

public void registerSupportedExtensions(java.util.Set extensionOids)
Description copied from class: PartitionNexus
Adds a set of supportedExtension (OID Strings) to the RootDSE.

Specified by:
registerSupportedExtensions in class PartitionNexus
Parameters:
extensionOids - a set of OID strings to add to the supportedExtension attribute in the RootDSE

addNamingListener

public void addNamingListener(javax.naming.event.EventContext ctx,
                              javax.naming.Name name,
                              ExprNode filter,
                              javax.naming.directory.SearchControls searchControls,
                              javax.naming.event.NamingListener namingListener)
                       throws javax.naming.NamingException
Throws:
javax.naming.NamingException

removeNamingListener

public void removeNamingListener(javax.naming.event.EventContext ctx,
                                 javax.naming.event.NamingListener namingListener)
                          throws javax.naming.NamingException
Throws:
javax.naming.NamingException