@Extensible @ThreadSafety(level=INTERFACE_NOT_THREADSAFE) public abstract class LDAPCommandLineTool extends CommandLineTool
getConnection()
and getConnectionPool(int,int)
methods may
be invoked concurrently by multiple threads accessing the same instance only
while that instance is in the process of invoking the
CommandLineTool.doToolProcessing()
method.Constructor and Description |
---|
LDAPCommandLineTool(java.io.OutputStream outStream,
java.io.OutputStream errStream)
Creates a new instance of this LDAP-enabled command-line tool with the
provided information.
|
Modifier and Type | Method and Description |
---|---|
abstract void |
addNonLDAPArguments(ArgumentParser parser)
Adds the arguments needed by this command-line tool to the provided
argument parser which are not related to connecting or authenticating to
the directory server.
|
void |
addToolArguments(ArgumentParser parser)
Adds the command-line arguments supported for use with this tool to the
provided argument parser.
|
BindRequest |
createBindRequest()
Creates the bind request to use to authenticate to the server.
|
ServerSet |
createServerSet()
Creates the server set to use when creating connections or connection
pools.
|
SSLUtil |
createSSLUtil()
Creates the SSLUtil instance to use for secure communication.
|
SSLUtil |
createSSLUtil(boolean force)
Creates the SSLUtil instance to use for secure communication.
|
void |
doExtendedArgumentValidation()
Performs any necessary processing that should be done to ensure that the
provided set of command-line arguments were valid.
|
void |
doExtendedNonLDAPArgumentValidation()
Performs any necessary processing that should be done to ensure that the
provided set of command-line arguments were valid.
|
LDAPConnection |
getConnection()
Retrieves a connection that may be used to communicate with the target
directory server.
|
LDAPConnectionOptions |
getConnectionOptions()
Retrieves the connection options that should be used for connections that
are created with this command line tool.
|
LDAPConnectionPool |
getConnectionPool(int initialConnections,
int maxConnections)
Retrieves a connection pool that may be used to communicate with the target
directory server.
|
LDAPConnection |
getUnauthenticatedConnection()
Retrieves an unauthenticated connection that may be used to communicate
with the target directory server.
|
protected boolean |
supportsAuthentication()
Indicates whether this tool should provide the arguments that allow it to
bind via simple or SASL authentication.
|
protected boolean |
supportsMultipleServers()
Indicates whether this tool supports creating connections to multiple
servers.
|
createArgumentParser, doShutdownHookProcessing, doToolProcessing, err, getErr, getExampleUsages, getMaxTrailingArguments, getOut, getToolDescription, getToolName, getToolVersion, getTrailingArgumentsPlaceholder, out, registerShutdownHook, runTool, wrapErr, wrapOut
public LDAPCommandLineTool(java.io.OutputStream outStream, java.io.OutputStream errStream)
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.public final void addToolArguments(ArgumentParser parser) throws ArgumentException
addToolArguments
in class CommandLineTool
parser
- The argument parser to which the arguments are to be added.ArgumentException
- If a problem occurs while adding any of the
tool-specific arguments to the provided
argument parser.public abstract void addNonLDAPArguments(ArgumentParser parser) throws ArgumentException
parser
- The argument parser to which the arguments should be added.ArgumentException
- If a problem occurs while adding the arguments.public final void doExtendedArgumentValidation() throws ArgumentException
CommandLineTool.doToolProcessing()
method is invoked.doExtendedArgumentValidation
in class CommandLineTool
ArgumentException
- If there was a problem with the command-line
arguments provided to this program.protected boolean supportsAuthentication()
true
if this tool should provide the arguments that allow
it to bind via simple or SASL authentication, or false
if
not.protected boolean supportsMultipleServers()
true
if this tool supports creating connections to
multiple servers, or false
if not.public void doExtendedNonLDAPArgumentValidation() throws ArgumentException
CommandLineTool.doToolProcessing()
method is invoked.ArgumentException
- If there was a problem with the command-line
arguments provided to this program.public LDAPConnectionOptions getConnectionOptions()
@ThreadSafety(level=METHOD_THREADSAFE) public final LDAPConnection getConnection() throws LDAPException
CommandLineTool.doToolProcessing()
method.LDAPException
- If a problem occurs while creating the connection.@ThreadSafety(level=METHOD_THREADSAFE) public final LDAPConnection getUnauthenticatedConnection() throws LDAPException
CommandLineTool.doToolProcessing()
method.LDAPException
- If a problem occurs while creating the connection.@ThreadSafety(level=METHOD_THREADSAFE) public final LDAPConnectionPool getConnectionPool(int initialConnections, int maxConnections) throws LDAPException
CommandLineTool.doToolProcessing()
method.initialConnections
- The number of connections that should be
initially established in the pool.maxConnections
- The maximum number of connections to maintain
in the pool.LDAPException
- If a problem occurs while creating the connection
pool.public ServerSet createServerSet() throws LDAPException
LDAPException
- If a problem occurs while creating the server set.public SSLUtil createSSLUtil() throws LDAPException
null
if secure communication is not needed.LDAPException
- If a problem occurs while creating the SSLUtil
instance.public SSLUtil createSSLUtil(boolean force) throws LDAPException
force
- Indicates whether to create the SSLUtil object even if
neither the "--useSSL" nor the "--useStartTLS" argument was
provided. The key store and/or trust store paths must still
have been provided. This may be useful for tools that
accept SSL-based communication but do not themselves intend
to perform SSL-based communication as an LDAP client.null
if secure communication is not needed.LDAPException
- If a problem occurs while creating the SSLUtil
instance.public BindRequest createBindRequest() throws LDAPException
null
if no bind should be performed.LDAPException
- If a problem occurs while creating the bind
request.