@ThreadSafety(level=NOT_THREADSAFE) public final class ParallelUpdate extends LDAPCommandLineTool implements UnsolicitedNotificationHandler
NOTE: This class, and other classes within the
com.unboundid.ldap.sdk.unboundidds package structure, are only
supported for use against Ping Identity, UnboundID, and
Nokia/Alcatel-Lucent 8661 server products. These classes provide support
for proprietary functionality or for external specifications that are not
considered stable or mature enough to be guaranteed to work in an
interoperable way with other types of LDAP servers.
| Constructor and Description |
|---|
ParallelUpdate(java.io.OutputStream out,
java.io.OutputStream err)
Creates a new instance of this tool with the provided output and error
streams.
|
| Modifier and Type | Method and Description |
|---|---|
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.
|
boolean |
defaultsToInteractiveMode()
Indicates whether this tool defaults to launching in interactive mode if
the tool is invoked without any command-line arguments.
|
protected boolean |
defaultToPromptForBindPassword()
Indicates whether this tool should default to interactively prompting for
the bind password if a password is required but no argument was provided
to indicate how to get the password.
|
protected void |
doShutdownHookProcessing(ResultCode resultCode)
Performs any processing that may be needed when the JVM is shutting down,
whether because tool processing has completed or because it has been
interrupted (e.g., by a kill or break signal).
|
ResultCode |
doToolProcessing()
Performs the core set of processing for this tool.
|
java.util.List<java.lang.String> |
getAdditionalDescriptionParagraphs()
Retrieves additional paragraphs that should be included in the description
for this tool.
|
protected java.util.List<Control> |
getBindControls()
Retrieves a set of controls that should be included in any bind request
generated by this tool.
|
LDAPConnectionOptions |
getConnectionOptions()
Retrieves the connection options that should be used for connections that
are created with this command line 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.
|
long |
getInitialAttemptCount()
Retrieves the number of operations attempted on the initial pass through
the LDIF file (that is, operations for which no retry attempts was made).
|
long |
getInitialSuccessCount()
Retrieves the number of operations that completed successfully on their
first attempt.
|
long |
getRejectCount()
Retrieves the number of operations that were rejected and did not complete
successfully during any of the attempts.
|
long |
getRetryAttemptCount()
Retrieves the number of retry attempts made for operations that did not
complete successfully on their first attempt.
|
long |
getRetrySuccessCount()
Retrieves the number of operations that did not complete completed
successfully on their initial attempt but did succeed on a retry attempt.
|
java.lang.String |
getToolCompletionMessage()
Retrieves an optional message that may provide additional information about
the way that the tool completed its processing.
|
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 a version string for this tool, if available.
|
long |
getTotalAttemptCount()
Retrieves the total number of operations attempted.
|
long |
getTotalOpDurationMillis()
Retrieves the total length of time, in milliseconds, spent processing
operations.
|
long |
getTotalSuccessCount()
Retrieves the total number of operations that completed successfully.
|
void |
handleUnsolicitedNotification(LDAPConnection connection,
ExtendedResult notification)
Performs any processing that may be necessary in response to the provided
unsolicited notification that has been received from the server.
|
protected boolean |
includeAlternateLongIdentifiers()
Indicates whether the LDAP-specific arguments should include alternate
versions of all long identifiers that consist of multiple words so that
they are available in both camelCase and dash-separated versions.
|
protected boolean |
logToolInvocationByDefault()
Indicates whether to log messages about the launch and completion of this
tool into the invocation log of Ping Identity server products that may
include it.
|
static ResultCode |
main(java.io.OutputStream out,
java.io.OutputStream err,
java.lang.String... args)
Parses the provided set of command-line arguments and then performs the
necessary processing.
|
static void |
main(java.lang.String... args)
Parses the provided set of command-line arguments and then performs the
necessary processing.
|
protected boolean |
registerShutdownHook()
Indicates whether this tool should register a shutdown hook with the JVM.
|
protected boolean |
supportsAuthentication()
Indicates whether this tool should provide the arguments that allow it to
bind via simple or SASL authentication.
|
protected boolean |
supportsDebugLogging()
Indicates whether this tool supports the ability to generate a debug log
file.
|
boolean |
supportsInteractiveMode()
Indicates whether this tool should provide support for an interactive mode,
in which the tool offers a mode in which the arguments can be provided in
a text-driven menu rather than requiring them to be given on the command
line.
|
protected boolean |
supportsMultipleServers()
Indicates whether this tool supports creating connections to multiple
servers.
|
boolean |
supportsPropertiesFile()
Indicates whether this tool supports the use of a properties file for
specifying default values for arguments that aren't specified on the
command line.
|
protected boolean |
supportsSASLHelp()
Indicates whether this tool should provide a "--help-sasl" argument that
provides information about the supported SASL mechanisms and their
associated properties.
|
protected boolean |
supportsSSLDebugging()
Indicates whether this tool should provide a command-line argument that
allows for low-level SSL debugging.
|
addToolArguments, anyLDAPArgumentsProvided, createBindRequest, createServerSet, createSSLUtil, createSSLUtil, doExtendedArgumentValidation, doExtendedNonLDAPArgumentValidation, getConnection, getConnectionOptionsWithRequestedSettings, getConnectionPool, getConnectionPool, getSuppressedShortIdentifiers, getUnauthenticatedConnectionaddEnableSSLDebuggingArgument, createArgumentParser, err, getErr, getMaxTrailingArguments, getMinTrailingArguments, getOriginalErr, getOriginalOut, getOut, getPasswordFileReader, getTrailingArgumentsPlaceholder, out, requestToolArgumentsInteractively, runTool, supportsOutputFile, wrapErr, wrapOutpublic ParallelUpdate(@Nullable java.io.OutputStream out, @Nullable java.io.OutputStream err)
out - The output stream to which standard output should be written.
It may be null if standard output should be
suppressed.err - The output stream to which standard error should be written.
It may be null if standard error should be
suppressed.public static void main(@NotNull java.lang.String... args)
args - The command-line arguments provided to this program.@NotNull public static ResultCode main(@Nullable java.io.OutputStream out, @Nullable java.io.OutputStream err, @NotNull java.lang.String... args)
out - The output stream to which standard output should be written.
It may be null if standard output should be
suppressed.err - The output stream to which standard error should be written.
It may be null if standard error should be
suppressed.args - The command-line arguments provided to this program.@NotNull public java.lang.String getToolName()
getToolName in class CommandLineTool@NotNull public java.lang.String getToolDescription()
CommandLineTool.getAdditionalDescriptionParagraphs() method should be used to
return the text for the subsequent paragraphs.getToolDescription in class CommandLineTool@NotNull public java.util.List<java.lang.String> getAdditionalDescriptionParagraphs()
CommandLineTool.getToolDescription() method should return the text of the
first paragraph, and each item in the list returned by this method should
be the text for each subsequent paragraph. If the tool description should
only have a single paragraph, then this method may return null or
an empty list.getAdditionalDescriptionParagraphs in class CommandLineToolnull or an empty list if only a single
description paragraph (whose text is returned by the
getToolDescription method) is needed.@NotNull public java.lang.String getToolVersion()
getToolVersion in class CommandLineToolnull if none is
available.public void addNonLDAPArguments(@NotNull ArgumentParser parser) throws ArgumentException
addNonLDAPArguments in class LDAPCommandLineToolparser - The argument parser to which the arguments should be added.ArgumentException - If a problem occurs while adding the arguments.public boolean supportsInteractiveMode()
CommandLineTool.defaultsToInteractiveMode() returns true, then
interactive mode may be invoked by simply launching the tool without any
arguments.supportsInteractiveMode in class CommandLineTooltrue if this tool supports interactive mode, or
false if not.public boolean defaultsToInteractiveMode()
CommandLineTool.supportsInteractiveMode() returns true.defaultsToInteractiveMode in class CommandLineTooltrue if this tool defaults to using interactive mode if
launched without any command-line arguments, or false if
not.public boolean supportsPropertiesFile()
supportsPropertiesFile in class CommandLineTooltrue if this tool supports the use of a properties file
for specifying default values for arguments that aren't specified
on the command line, or false if not.protected boolean supportsDebugLogging()
true, then the tool will expose
additional arguments that can control debug logging.supportsDebugLogging in class CommandLineTooltrue if this tool supports the ability to generate a debug
log file, or false if not.protected boolean supportsAuthentication()
supportsAuthentication in class LDAPCommandLineTooltrue if this tool should provide the arguments that allow
it to bind via simple or SASL authentication, or false if
not.protected boolean defaultToPromptForBindPassword()
defaultToPromptForBindPassword in class LDAPCommandLineTooltrue if this tool should default to interactively
prompting for the bind password, or false if not.protected boolean supportsSASLHelp()
supportsSASLHelp in class LDAPCommandLineTooltrue if this tool should provide a "--help-sasl" argument,
or false if not.protected boolean includeAlternateLongIdentifiers()
includeAlternateLongIdentifiers in class LDAPCommandLineTooltrue if this tool should provide multiple versions of
long identifiers for LDAP-specific arguments, or false if
not.@NotNull protected java.util.List<Control> getBindControls()
getBindControls in class LDAPCommandLineToolnull or empty if no
controls should be included in the bind request.protected boolean supportsMultipleServers()
supportsMultipleServers in class LDAPCommandLineTooltrue if this tool supports creating connections to
multiple servers, or false if not.protected boolean supportsSSLDebugging()
true, then an
"--enableSSLDebugging" argument will be added that sets the
"javax.net.debug" system property to "all" before attempting any
communication.supportsSSLDebugging in class LDAPCommandLineTooltrue if this tool should offer an "--enableSSLDebugging"
argument, or false if not.@NotNull public LDAPConnectionOptions getConnectionOptions()
getConnectionOptions in class LDAPCommandLineToolprotected boolean logToolInvocationByDefault()
true for tools that may alter
the server configuration, data, or other state information, and
false for tools that do not make any changes.logToolInvocationByDefault in class CommandLineTooltrue if Ping Identity server products should include
messages about the launch and completion of this tool in tool
invocation log files by default, or false if not.@Nullable public java.lang.String getToolCompletionMessage()
getToolCompletionMessage in class CommandLineToolnull if no
completion message is available.@NotNull public ResultCode doToolProcessing()
doToolProcessing in class CommandLineToolpublic long getTotalAttemptCount()
public long getInitialAttemptCount()
public long getRetryAttemptCount()
public long getTotalSuccessCount()
public long getInitialSuccessCount()
public long getRetrySuccessCount()
public long getRejectCount()
public long getTotalOpDurationMillis()
protected boolean registerShutdownHook()
System.exit() or Runtime.exit() is called.System.halt() or
Runtime.halt() methods).
true, then the
CommandLineTool.doShutdownHookProcessing(ResultCode) method should also be
overridden to contain the logic that will be invoked when the JVM is
shutting down in a manner that calls shutdown hooks.registerShutdownHook in class CommandLineTooltrue if this tool should register a shutdown hook, or
false if not.protected void doShutdownHookProcessing(@Nullable ResultCode resultCode)
java.lang.Runtime.addShutdownHook method for recommendations and
restrictions about writing shutdown hooks.doShutdownHookProcessing in class CommandLineToolresultCode - The result code returned by the tool. It may be
null if the tool was interrupted before it
completed processing.public void handleUnsolicitedNotification(@NotNull LDAPConnection connection, @NotNull ExtendedResult notification)
handleUnsolicitedNotification in interface UnsolicitedNotificationHandlerconnection - The connection on which the unsolicited notification
was received.notification - The unsolicited notification that has been received
from the server.@NotNull public java.util.LinkedHashMap<java.lang.String[],java.lang.String> getExampleUsages()
getExampleUsages in class CommandLineToolnull or empty if no example usage
information is available.