org.opends.server.protocols.internal
Class InternalConnectionHandler

java.lang.Object
  extended by java.lang.Thread
      extended by org.opends.server.api.DirectoryThread
          extended by org.opends.server.api.ConnectionHandler
              extended by org.opends.server.protocols.internal.InternalConnectionHandler
All Implemented Interfaces:
java.lang.Runnable

@PublicAPI(stability=PRIVATE,
           mayInstantiate=false,
           mayExtend=false,
           mayInvoke=false)
public final class InternalConnectionHandler
extends ConnectionHandler

This class defines a Directory Server connection handler that will handle internal "connections".


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Method Summary
static void clearRootClientConnectionAtShutdown()
          Called near the end of server shutdown.
 void finalizeConnectionHandler(Message finalizeReason, boolean closeConnections)
          Closes this connection handler so that it will no longer accept new client connections.
 java.util.Collection<ClientConnection> getClientConnections()
          Retrieves the set of active client connections that have been established through this connection handler.
 java.lang.String getConnectionHandlerName()
          Retrieves a name that may be used to refer to this connection handler.
static InternalConnectionHandler getInstance()
          Retrieves the static instance of this internal connection handler.
 java.util.Collection<HostPort> getListeners()
          Retrieves information about the listener(s) that will be used to accept client connections.
 java.lang.String getProtocol()
          Retrieves the name of the protocol used to communicate with clients.
 void initializeConnectionHandler(ConnectionHandlerCfg configuration)
          Initializes this connection handler provider based on the information in the provided connection handler configuration.
 void run()
          Operates in a loop, accepting new connections and ensuring that requests on those connections are handled properly.
 java.lang.String toString()
          Retrieves a string representation of this connection handler.
 void toString(java.lang.StringBuilder buffer)
          Appends a string representation of this connection handler to the provided buffer.
 
Methods inherited from class org.opends.server.api.ConnectionHandler
getConnectionHandlerMonitor, isConfigurationAcceptable, setConnectionHandlerMonitor
 
Methods inherited from class org.opends.server.api.DirectoryThread
getAssociatedTask, getCreationStackTrace, getDebugProperties, getParentThread, setAssociatedTask
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getInstance

public static InternalConnectionHandler getInstance()
Retrieves the static instance of this internal connection handler.

Returns:
The static instance of this internal connection handler.

initializeConnectionHandler

public void initializeConnectionHandler(ConnectionHandlerCfg configuration)
                                 throws ConfigException,
                                        InitializationException
Initializes this connection handler provider based on the information in the provided connection handler configuration.

Specified by:
initializeConnectionHandler in class ConnectionHandler
Parameters:
configuration - The connection handler configuration that contains the information to use to initialize this connection handler.
Throws:
ConfigException - If an unrecoverable problem arises in the process of performing the initialization as a result of the server configuration.
InitializationException - If a problem occurs during initialization that is not related to the server configuration.

finalizeConnectionHandler

public void finalizeConnectionHandler(Message finalizeReason,
                                      boolean closeConnections)
Closes this connection handler so that it will no longer accept new client connections. It may or may not disconnect existing client connections based on the provided flag. Note, however, that some connection handler implementations may not have any way to continue processing requests from existing connections, in which case they should always be closed regardless of the value of the closeConnections flag.

Specified by:
finalizeConnectionHandler in class ConnectionHandler
Parameters:
finalizeReason - The reason that this connection handler should be finalized.
closeConnections - Indicates whether any established client connections associated with the connection handler should also be closed.

getConnectionHandlerName

public java.lang.String getConnectionHandlerName()
Retrieves a name that may be used to refer to this connection handler. Every connection handler instance (even handlers of the same type) must have a unique name.

Specified by:
getConnectionHandlerName in class ConnectionHandler
Returns:
A unique name that may be used to refer to this connection handler.

getProtocol

public java.lang.String getProtocol()
Retrieves the name of the protocol used to communicate with clients. It should take into account any special naming that may be needed to express any security mechanisms or other constraints in place (e.g., "LDAPS" for LDAP over SSL).

Specified by:
getProtocol in class ConnectionHandler
Returns:
The name of the protocol used to communicate with clients.

getListeners

public java.util.Collection<HostPort> getListeners()
Retrieves information about the listener(s) that will be used to accept client connections.

Specified by:
getListeners in class ConnectionHandler
Returns:
Information about the listener(s) that will be used to accept client connections, or an empty list if this connection handler does not accept connections from network clients.

getClientConnections

public java.util.Collection<ClientConnection> getClientConnections()
Retrieves the set of active client connections that have been established through this connection handler.

Specified by:
getClientConnections in class ConnectionHandler
Returns:
The set of active client connections that have been established through this connection handler.

run

public void run()
Operates in a loop, accepting new connections and ensuring that requests on those connections are handled properly.

Specified by:
run in interface java.lang.Runnable
Specified by:
run in class ConnectionHandler

toString

public java.lang.String toString()
Retrieves a string representation of this connection handler.

Overrides:
toString in class ConnectionHandler
Returns:
A string representation of this connection handler.

toString

public void toString(java.lang.StringBuilder buffer)
Appends a string representation of this connection handler to the provided buffer.

Specified by:
toString in class ConnectionHandler
Parameters:
buffer - The buffer to which the information should be appended.

clearRootClientConnectionAtShutdown

public static void clearRootClientConnectionAtShutdown()
Called near the end of server shutdown. This ensures that a new InternalClientConnection is created if the server is immediately restarted as part of an in-core restart.