javax.naming.spi Package
The javax.naming.spi package defines the service provider interface (SPI) for JNDI. Only system developers who are developing JNDI providers need to use this package; JNDI application developers can ignore it. The classes and interfaces in this package allow JNDI service providers to be plugged in underneath the JNDI API. Figure 24-1 shows the hierarchy of this package.
Figure 24-1. The javax.naming.spi package
| DirectoryManager
| JNDI 1.1
|
| javax.naming.spi
| |
DirectoryManager is a subclass of NamingManager that contains a method for creating javax.naming.directory.DirContext objects.
| public class DirectoryManager extends NamingManager {
|
| //
| No Constructor
|
| //
| Public Class Methods
|
| public static javax.naming.directory.DirContext getContinuationDirContext (CannotProceedException cpe) throws NamingException;
|
|
| } |
Hierarchy: Object-->NamingManager-->DirectoryManager
| InitialContextFactory
| JNDI 1.1
|
| javax.naming.spi
| |
This interface represents a factory that creates an initial context for a naming or directory service. The initial context serves as the entry point into the service. A JNDI service provider always includes an InitialContextFactory that can be used as the value of the java.naming.factory.initial property
| public abstract interface InitialContextFactory {
|
| //
| Public Instance Methods
|
| public abstract javax.naming.Context getInitialContext (java.util.Hashtable environment) throws NamingException;
|
|
| } |
Returned By: InitialContextFactoryBuilder.createInitialContextFactory()
| InitialContextFactoryBuilder
| JNDI 1.1
|
| javax.naming.spi
| |
This interface represents a builder that creates initial context factories. A program can override the default initial context factory builder by calling NamingManager.setInitialContextFactoryBuilder() and specifying a new builder. Such a builder must implement this interface.
| public abstract interface InitialContextFactoryBuilder {
|
| //
| Public Instance Methods
|
| public abstract InitialContextFactory createInitialContextFactory (java.util.Hashtable environment) throws NamingException;
|
|
| } |
Passed To: NamingManager.setInitialContextFactoryBuilder()
| NamingManager
| JNDI 1.1
|
| javax.naming.spi
| |
The NamingManager class contains methods for creating javax.naming.Context objects and otherwise controlling the operation of the underlying service provider.
| public class NamingManager {
|
| //
| No Constructor
|
| //
| Public Class Methods
|
| public static javax.naming.Context getContinuationContext (CannotProceedException cpe) throws NamingException;
|
|
| public static javax.naming.Context getInitialContext (java.util.Hashtable environment) throws NamingException;
|
|
| public static Object getObjectInstance (Object refInfo, Name name, javax.naming.Context nameCtx, java.util.Hashtable environment) throws Exception;
|
|
| public static javax.naming.Context getURLContext (String scheme, java.util.Hashtable environment) throws NamingException;
|
|
| public static boolean hasInitialContextFactoryBuilder ();
| synchronized
|
| public static void setInitialContextFactoryBuilder (InitialContextFactoryBuilder builder) throws NamingException;
| synchronized
|
| public static void setObjectFactoryBuilder (ObjectFactoryBuilder builder) throws NamingException;
| synchronized
|
| } |
Subclasses: DirectoryManager
| ObjectFactory
| JNDI 1.1
|
| javax.naming.spi
| |
This interface represents a factory for creating objects. JNDI supports the dynamic loading of object implementations with object factories. For example, say you have a naming system that binds file objects to names in the namespace. If the filesystem service provider binds filenames to Reference objects, a Reference object can create a file object through an object factory. This means that a call to lookup() a filename (in the appropriate Context) returns an actual file object the developer can manipulate as necessary. An ObjectFactory is responsible for creating objects of a specific type.
| public abstract interface ObjectFactory {
|
| //
| Public Instance Methods
|
| public abstract Object getObjectInstance (Object obj, Name name, javax.naming.Context nameCtx, java.util.Hashtable environment) throws Exception;
|
|
| } |
Returned By: ObjectFactoryBuilder.createObjectFactory()
| ObjectFactoryBuilder
| JNDI 1.1
|
| javax.naming.spi
| |
This interface represents a builder that creates object factories. A program can override the default object factory builder by calling NamingManager.setObjectFactoryBuilder() and specifying a new builder. Such a builder must implement this interface.
| public abstract interface ObjectFactoryBuilder {
|
| //
| Public Instance Methods
|
| public abstract ObjectFactory createObjectFactory (Object obj, java.util.Hashtable info) throws NamingException;
|
|
| } |
Passed To: NamingManager.setObjectFactoryBuilder()
| Resolver
| JNDI 1.1
|
| javax.naming.spi
| |
The Resolver interface contains methods that are implemented by objects that can act as intermediate contexts for naming resolution purposes.
| public abstract interface Resolver {
|
| //
| Public Instance Methods
|
| public abstract ResolveResult resolveToClass (Name name, Class contextType) throws NamingException;
|
|
| public abstract ResolveResult resolveToClass (String name, Class contextType) throws NamingException;
|
|
| } |
| ResolveResult
| JNDI 1.1
|
| javax.naming.spi
| |
This class represents the result of resolving a name.
| public class ResolveResult {
|
| //
| Public Constructors
|
| public ResolveResult (Object robj, Name rname);
|
|
| public ResolveResult (Object robj, String rcomp);
|
|
| //
| Protected Constructors
|
| protected ResolveResult ();
|
|
| //
| Public Instance Methods
|
| public void appendRemainingComponent (String name);
|
|
| public void appendRemainingName (Name name);
|
|
| public Name getRemainingName ();
|
|
| public Object getResolvedObj ();
|
|
| public void setRemainingName (Name name);
|
|
| public void setResolvedObj (Object obj);
|
|
| //
| Protected Instance Fields
|
| protected Name remainingName ;
|
|
| protected Object resolvedObj ;
|
|
| } |
Returned By: Resolver.resolveToClass()