com.unboundid.ldap.listener
Class InMemoryDirectoryServerTool

java.lang.Object
  extended by com.unboundid.util.CommandLineTool
      extended by com.unboundid.ldap.listener.InMemoryDirectoryServerTool
All Implemented Interfaces:
LDAPListenerExceptionHandler, java.io.Serializable

@NotMutable
@ThreadSafety(level=NOT_THREADSAFE)
public final class InMemoryDirectoryServerTool
extends CommandLineTool
implements java.io.Serializable, LDAPListenerExceptionHandler

This class provides a command-line tool that can be used to run an instance of the in-memory directory server. Instances of the server may also be created and controlled programmatically using the InMemoryDirectoryServer class.

The following command-line arguments may be used with this class:

See Also:
Serialized Form

Constructor Summary
InMemoryDirectoryServerTool(java.io.OutputStream outStream, java.io.OutputStream errStream)
          Creates a new instance of this tool that use the provided output streams for standard output and standard error.
 
Method Summary
 void addToolArguments(ArgumentParser parser)
          Adds the command-line arguments supported for use with this tool to the provided argument parser.
 void connectionCreationFailure(java.net.Socket socket, java.lang.Throwable cause)
          Indicates that the specified connection is about to be terminated because an unexpected error occurred during processing.
 void connectionTerminated(LDAPListenerClientConnection connection, LDAPException cause)
          Indicates that the specified connection is about to be terminated because an unexpected error occurred during processing.
 ResultCode doToolProcessing()
          Performs the core set of processing for this tool.
 InMemoryDirectoryServer getDirectoryServer()
          Retrieves the in-memory directory server instance that has been created by this tool.
 java.util.LinkedHashMap<java.lang.String[],java.lang.String> getExampleUsages()
          Retrieves a set of information that may be used to generate example usage information.
 java.lang.String getToolDescription()
          Retrieves a human-readable description for this tool.
 java.lang.String getToolName()
          Retrieves the name of this tool.
 java.lang.String getToolVersion()
          Retrieves the version string for this tool.
static void main(java.lang.String... args)
          Parse the provided command line arguments and uses them to start the directory server.
static ResultCode main(java.lang.String[] args, java.io.OutputStream outStream, java.io.OutputStream errStream)
          Parse the provided command line arguments and uses them to start the directory server.
 
Methods inherited from class com.unboundid.util.CommandLineTool
createArgumentParser, doExtendedArgumentValidation, doShutdownHookProcessing, err, getErr, getMaxTrailingArguments, getOut, getTrailingArgumentsPlaceholder, out, registerShutdownHook, runTool, wrapErr, wrapOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InMemoryDirectoryServerTool

public InMemoryDirectoryServerTool(java.io.OutputStream outStream,
                                   java.io.OutputStream errStream)
Creates a new instance of this tool that use the provided output streams for standard output and standard error.

Parameters:
outStream - The output stream to use for standard output. It may be System.out for the JVM's default standard output stream, null if no output should be generated, or a custom output stream if the output should be sent to an alternate location.
errStream - The output stream to use for standard error. It may be System.err for the JVM's default standard error stream, null if no output should be generated, or a custom output stream if the output should be sent to an alternate location.
Method Detail

main

public static void main(java.lang.String... args)
Parse the provided command line arguments and uses them to start the directory server.

Parameters:
args - The command line arguments provided to this program.

main

public static ResultCode main(java.lang.String[] args,
                              java.io.OutputStream outStream,
                              java.io.OutputStream errStream)
Parse the provided command line arguments and uses them to start the directory server.

Parameters:
outStream - The output stream to which standard out should be written. It may be null if output should be suppressed.
errStream - The output stream to which standard error should be written. It may be null if error messages should be suppressed.
args - The command line arguments provided to this program.
Returns:
A result code indicating whether the processing was successful.

getToolName

public java.lang.String getToolName()
Retrieves the name of this tool. It should be the name of the command used to invoke this tool.

Specified by:
getToolName in class CommandLineTool
Returns:
The name for this tool.

getToolDescription

public java.lang.String getToolDescription()
Retrieves a human-readable description for this tool.

Specified by:
getToolDescription in class CommandLineTool
Returns:
A human-readable description for this tool.

getToolVersion

public java.lang.String getToolVersion()
Retrieves the version string for this tool.

Overrides:
getToolVersion in class CommandLineTool
Returns:
The version string for this tool.

addToolArguments

public void addToolArguments(ArgumentParser parser)
                      throws ArgumentException
Adds the command-line arguments supported for use with this tool to the provided argument parser. The tool may need to retain references to the arguments (and/or the argument parser, if trailing arguments are allowed) to it in order to obtain their values for use in later processing.

Specified by:
addToolArguments in class CommandLineTool
Parameters:
parser - The argument parser to which the arguments are to be added.
Throws:
ArgumentException - If a problem occurs while adding any of the tool-specific arguments to the provided argument parser.

doToolProcessing

public ResultCode doToolProcessing()
Performs the core set of processing for this tool.

Specified by:
doToolProcessing in class CommandLineTool
Returns:
A result code that indicates whether the processing completed successfully.

getExampleUsages

public java.util.LinkedHashMap<java.lang.String[],java.lang.String> getExampleUsages()
Retrieves a set of information that may be used to generate example usage information. Each element in the returned map should consist of a map between an example set of arguments and a string that describes the behavior of the tool when invoked with that set of arguments.

Overrides:
getExampleUsages in class CommandLineTool
Returns:
A set of information that may be used to generate example usage information. It may be null or empty if no example usage information is available.

getDirectoryServer

public InMemoryDirectoryServer getDirectoryServer()
Retrieves the in-memory directory server instance that has been created by this tool. It will only be valid after the doToolProcessing() method has been called.

Returns:
The in-memory directory server instance that has been created by this tool, or null if the directory server instance has not been successfully created.

connectionCreationFailure

public void connectionCreationFailure(java.net.Socket socket,
                                      java.lang.Throwable cause)
Indicates that the specified connection is about to be terminated because an unexpected error occurred during processing.

Specified by:
connectionCreationFailure in interface LDAPListenerExceptionHandler
Parameters:
socket - The socket to be used for the failed connection. It may be null if the failure occurred while attempting to accept the socket rather than attempting to create the client connection from an accepted socket.
cause - An exception providing additional information about the problem that occurred. It will not be null.

connectionTerminated

public void connectionTerminated(LDAPListenerClientConnection connection,
                                 LDAPException cause)
Indicates that the specified connection is about to be terminated because an unexpected error occurred during processing.

Specified by:
connectionTerminated in interface LDAPListenerExceptionHandler
Parameters:
connection - The connection that will be terminated. It will not be null.
cause - An exception providing additional information about the reason for the termination. It will not be null.