opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java
@@ -34,8 +34,6 @@ import static com.forgerock.opendj.ldap.tools.ToolConstants.*; import static com.forgerock.opendj.ldap.tools.Utils.filterExitCode; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -444,132 +442,27 @@ public static void main(final String[] args) { final int retCode = mainAuthRate(args, System.in, System.out, System.err); final int retCode = new AuthRate().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainAuthRate(final String[] args) { return mainAuthRate(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the tool. * * @param args * The command-line arguments provided to this program. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainAuthRate(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new AuthRate(inStream, outStream, errStream).run(args); } private BooleanArgument verbose; private BooleanArgument scriptFriendly; private AuthRate(final InputStream in, final OutputStream out, final OutputStream err) private AuthRate() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. * {@inheritDoc} */ @Override public boolean isScriptFriendly() @@ -580,9 +473,7 @@ /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/ConnectionFactoryProvider.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap.tools; @@ -596,7 +597,7 @@ || bindPasswordArg.isPresent()) { bindRequest = Requests.newSimpleBindRequest(getBindName(), getPassword().toCharArray()); getPassword()); } } else if (mech.equals(DigestMD5SASLBindRequest.SASL_MECHANISM_NAME)) @@ -769,22 +770,24 @@ * @return The password stored into the specified file on by the command line * argument, or null it if not specified. */ private String getPassword() throws ArgumentException private char[] getPassword() throws ArgumentException { String value = ""; char[] value = "".toCharArray(); if (bindPasswordArg.isPresent()) { value = bindPasswordArg.getValue(); value = bindPasswordArg.getValue().toCharArray(); } else if (bindPasswordFileArg.isPresent()) { value = bindPasswordFileArg.getValue(); value = bindPasswordFileArg.getValue().toCharArray(); } if (value.length() == 0 && app.isInteractive()) if (value.length == 0 && app.isInteractive()) { try { value = app.readLineOfInput(LocalizableMessage.raw("Bind Password:")); value = app.readPassword(LocalizableMessage.raw("Bind Password:")); } catch(CLIException e) { opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/ConsoleApplication.java
@@ -23,20 +23,18 @@ * * * Copyright 2008-2009 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS * Portions copyright 2011 Nemanja Lukić */ package com.forgerock.opendj.ldap.tools; import static com.forgerock.opendj.ldap.tools.ToolsMessages.INFO_ERROR_EMPTY_RESPONSE; import static com.forgerock.opendj.ldap.tools.ToolsMessages.INFO_MENU_PROMPT_RETURN_TO_CONTINUE; import static com.forgerock.opendj.ldap.tools.ToolsMessages.INFO_PROMPT_SINGLE_DEFAULT; import static com.forgerock.opendj.ldap.tools.ToolsMessages.*; import static com.forgerock.opendj.ldap.tools.Utils.MAX_LINE_WIDTH; import static com.forgerock.opendj.ldap.tools.Utils.wrapText; import java.io.*; import java.util.logging.Level; import java.util.logging.Logger; import org.forgerock.i18n.LocalizableMessage; @@ -48,202 +46,33 @@ */ abstract class ConsoleApplication { private static final class NullOutputStream extends OutputStream { /** * The singleton instance for this class. */ private static final NullOutputStream INSTANCE = new NullOutputStream(); private final PrintStream err = new PrintStream(System.out); /** * The singleton print stream tied to the null output stream. */ private static final PrintStream PRINT_STREAM = new PrintStream(INSTANCE); private final BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); private final InputStream in = System.in; private final PrintStream out = new PrintStream(System.out); /** * Retrieves a print stream using this null output stream. * * @return A print stream using this null output stream. */ static PrintStream printStream() { return PRINT_STREAM; } /** * Creates a new instance of this null output stream. */ private NullOutputStream() { // No implementation is required. } /** * Closes the output stream. This has no effect. */ @Override public void close() { // No implementation is required. } /** * Flushes the output stream. This has no effect. */ @Override public void flush() { // No implementation is required. } /** * Writes the provided data to this output stream. This has no effect. * * @param b * The byte array containing the data to be written. */ @Override public void write(final byte[] b) { // No implementation is required. } /** * Writes the provided data to this output stream. This has no effect. * * @param b * The byte array containing the data to be written. * @param off * The offset at which the real data begins. * @param len * The number of bytes to be written. */ @Override public void write(final byte[] b, final int off, final int len) { // No implementation is required. } /** * Writes the provided byte to this output stream. This has no effect. * * @param b * The byte to be written. */ @Override public void write(final int b) { // No implementation is required. } } /** * A null reader. */ private static final class NullReader extends Reader { /** * {@inheritDoc} */ @Override public void close() throws IOException { // Do nothing. } /** * {@inheritDoc} */ @Override public int read(final char[] cbuf, final int off, final int len) throws IOException { return -1; } } // The error stream which this application should use. private final PrintStream err; // The input stream reader which this application should use. private final BufferedReader reader; private final InputStream in; // The output stream which this application should use. private final PrintStream out; private final Console console = System.console(); /** * Creates a new console application instance. * * @param in * The application input stream. * @param out * The application output stream. * @param err * The application error stream. */ ConsoleApplication(final InputStream in, final OutputStream out, final OutputStream err) ConsoleApplication() { this.in = in; if (in != null) { this.reader = new BufferedReader(new InputStreamReader(in)); } else { this.reader = new BufferedReader(new NullReader()); } if (out != null) { this.out = new PrintStream(out); } else { this.out = NullOutputStream.printStream(); } if (err != null) { this.err = new PrintStream(err); } else { this.err = NullOutputStream.printStream(); } // Nothing to do. } /** * Gets the application error stream. * Returns the application error stream. * * @return Returns the application error stream. * @return The application error stream. */ final PrintStream getErrorStream() { @@ -253,21 +82,9 @@ /** * Gets the application input stream reader. * Returns the application input stream. * * @return Returns the application input stream. */ final BufferedReader getInputReader() { return reader; } /** * Gets the application input stream. * * @return Returns the application input stream. * @return The application input stream. */ final InputStream getInputStream() { @@ -277,9 +94,9 @@ /** * Gets the application output stream. * Returns the application output stream. * * @return Returns the application output stream. * @return The application output stream. */ final PrintStream getOutputStream() { @@ -289,62 +106,54 @@ /** * Indicates whether or not the user has requested advanced mode. * Indicates whether or not the user has requested interactive behavior. The * default implementation returns {@code true}. * * @return Returns <code>true</code> if the user has requested advanced mode. * @return {@code true} if the user has requested interactive behavior. */ abstract boolean isAdvancedMode(); boolean isInteractive() { return true; } /** * Indicates whether or not the user has requested interactive behavior. * Indicates whether or not the user has requested quiet output. The default * implementation returns {@code false}. * * @return Returns <code>true</code> if the user has requested interactive * behavior. * @return {@code true} if the user has requested quiet output. */ abstract boolean isInteractive(); boolean isQuiet() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * Indicates whether or not the user has requested script-friendly output. The * default implementation returns {@code false}. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. * @return {@code true} if the user has requested script-friendly output. */ abstract boolean isMenuDrivenMode(); boolean isScriptFriendly() { return false; } /** * Indicates whether or not the user has requested quiet output. * Indicates whether or not the user has requested verbose output. The default * implementation returns {@code false}. * * @return Returns <code>true</code> if the user has requested quiet output. * @return {@code true} if the user has requested verbose output. */ abstract boolean isQuiet(); /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. */ abstract boolean isScriptFriendly(); /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. */ abstract boolean isVerbose(); boolean isVerbose() { return false; } @@ -356,7 +165,8 @@ */ final void pressReturnToContinue() { final LocalizableMessage msg = INFO_MENU_PROMPT_RETURN_TO_CONTINUE.get(); final LocalizableMessage msg = INFO_MENU_PROMPT_RETURN_TO_CONTINUE .get(); try { readLineOfInput(msg); @@ -422,35 +232,6 @@ /** * Displays a blank line to the output stream if we are not in quiet mode. */ final void printlnProgress() { if (!isQuiet()) { out.println(); } } /** * Displays a message to the output stream if we are not in quiet mode. * * @param msg * The message. */ final void printProgress(final LocalizableMessage msg) { if (!isQuiet()) { out.print(msg); } } /** * Displays a message to the error stream if verbose mode is enabled. * * @param msg @@ -467,29 +248,29 @@ /** * Commodity method that interactively prompts (on error output) the user to * provide a string value. Any non-empty string will be allowed (the empty * string will indicate that the default should be used, if there is one). * Interactively prompts (on error output) the user to provide a string value. * Any non-empty string will be allowed (the empty string will indicate that * the default should be used, if there is one). * * @param prompt * The prompt to present to the user. * @param defaultValue * The default value to assume if the user presses ENTER without * typing anything, or <CODE>null</CODE> if there should not be a * default and the user must explicitly provide a value. * typing anything, or {@code null} if there should not be a default * and the user must explicitly provide a value. * @throws CLIException * If the line of input could not be retrieved for some reason. * @return The string value read from the user. */ final String readInput(LocalizableMessage prompt, final String defaultValue) throws CLIException final String readInput(LocalizableMessage prompt, final String defaultValue) throws CLIException { while (true) { if (defaultValue != null) { prompt = INFO_PROMPT_SINGLE_DEFAULT .get(prompt.toString(), defaultValue); prompt = INFO_PROMPT_SINGLE_DEFAULT.get(prompt.toString(), defaultValue); } final String response = readLineOfInput(prompt); @@ -514,34 +295,43 @@ /** * Commodity method that interactively prompts (on error output) the user to * provide a string value. Any non-empty string will be allowed (the empty * string will indicate that the default should be used, if there is one). If * an error occurs a message will be logged to the provided logger. * Interactively reads a password from the console. * * @param prompt * The prompt to present to the user. * @param defaultValue * The default value to assume if the user presses ENTER without * typing anything, or <CODE>null</CODE> if there should not be a * default and the user must explicitly provide a value. * @param logger * the Logger to be used to log the error message. * @return The string value read from the user. * The password prompt. * @return The password. * @throws CLIException * If the password could not be retrieved for some reason. */ final String readInput(final LocalizableMessage prompt, final String defaultValue, final Logger logger) final char[] readPassword(final LocalizableMessage prompt) throws CLIException { String s = defaultValue; try if (console != null) { s = readInput(prompt, defaultValue); if (prompt != null) { err.print(wrapText(prompt, MAX_LINE_WIDTH)); err.print(" "); } try { final char[] password = console.readPassword(); if (password == null) { throw new EOFException("End of input"); } return password; } catch (final Throwable e) { throw CLIException.adaptInputException(e); } } catch (final CLIException ce) else { logger.log(Level.WARNING, "Error reading input: " + ce, ce); // FIXME: should go direct to char[] and avoid the String. return readLineOfInput(prompt).toCharArray(); } return s; } @@ -551,12 +341,11 @@ * * @param prompt * The prompt. * @return Returns the line of input, or <code>null</code> if the end of input * has been reached. * @return The line of input. * @throws CLIException * If the line of input could not be retrieved for some reason. */ final String readLineOfInput(final LocalizableMessage prompt) private final String readLineOfInput(final LocalizableMessage prompt) throws CLIException { if (prompt != null) @@ -569,8 +358,8 @@ final String s = reader.readLine(); if (s == null) { throw CLIException .adaptInputException(new EOFException("End of input")); throw CLIException.adaptInputException(new EOFException( "End of input")); } else { opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPCompare.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap.tools; @@ -65,142 +66,25 @@ public static void main(final String[] args) { final int retCode = mainCompare(args, System.in, System.out, System.err); final int retCode = new LDAPCompare().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the LDAPModify tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainCompare(final String[] args) { return mainCompare(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the LDAPModify tool. * * @param args * The command-line arguments provided to this program. specified, * the number of matching entries should be returned or not. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainCompare(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new LDAPCompare(inStream, outStream, errStream).run(args); } private BooleanArgument verbose; private LDAPCompare(final InputStream in, final OutputStream out, final OutputStream err) private LDAPCompare() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. */ @Override public boolean isScriptFriendly() { return false; } /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPModify.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap.tools; @@ -36,8 +37,6 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -313,54 +312,12 @@ public static void main(final String[] args) { final int retCode = mainModify(args, System.in, System.out, System.err); final int retCode = new LDAPModify().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the LDAPModify tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainModify(final String[] args) { return mainModify(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the LDAPModify tool. * * @param args * The command-line arguments provided to this program. specified, * the number of matching entries should be returned or not. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainModify(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new LDAPModify(inStream, outStream, errStream).run(args); } private Connection connection; private EntryWriter writer; @@ -371,90 +328,15 @@ private LDAPModify(final InputStream in, final OutputStream out, final OutputStream err) private LDAPModify() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. */ @Override public boolean isScriptFriendly() { return false; } /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPPasswordModify.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap.tools; @@ -34,9 +35,6 @@ import static com.forgerock.opendj.ldap.tools.Utils.filterExitCode; import static org.forgerock.opendj.ldap.ErrorResultException.newErrorResult; import java.io.InputStream; import java.io.OutputStream; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.*; import org.forgerock.opendj.ldap.controls.Control; @@ -70,145 +68,25 @@ */ public static void main(final String[] args) { final int retCode = mainPasswordModify(args, System.in, System.out, System.err); final int retCode = new LDAPPasswordModify().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the command-line arguments, establishes a connection to the * Directory Server, sends the password modify request, and reads the * response. * * @param args * The command-line arguments provided to this program. * @return An integer value of zero if everything completed successfully, or a * nonzero value if an error occurred. */ static int mainPasswordModify(final String[] args) { return mainPasswordModify(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the LDAPPasswordModify tool. * * @param args * The command-line arguments provided to this program. specified, * the number of matching entries should be returned or not. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainPasswordModify(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new LDAPPasswordModify(inStream, outStream, errStream).run(args); } private BooleanArgument verbose; private LDAPPasswordModify(final InputStream in, final OutputStream out, final OutputStream err) private LDAPPasswordModify() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. */ @Override public boolean isScriptFriendly() { return false; } /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/LDAPSearch.java
@@ -23,6 +23,7 @@ * * * Copyright 2010 Sun Microsystems, Inc. * Portions copyright 2011 ForgeRock AS */ package com.forgerock.opendj.ldap.tools; @@ -215,175 +216,27 @@ public static void main(final String[] args) { final int retCode = mainSearch(args, false, System.in, System.out, System.err); final int retCode = new LDAPSearch().run(args, false); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the ldapsearch tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainSearch(final String[] args) { return mainSearch(args, true, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the ldapsearch tool. * * @param args * The command-line arguments provided to this program. * @param returnMatchingEntries * whether when the option --countEntries is specified, the number of * matching entries should be returned or not. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainSearch(final String[] args, final boolean returnMatchingEntries, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new LDAPSearch(inStream, outStream, errStream).run(args, returnMatchingEntries); } /** * Parses the provided command-line arguments and uses that information to run * the ldapsearch tool. * * @param args * The command-line arguments provided to this program. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainSearch(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return mainSearch(args, true, inStream, outStream, errStream); } private BooleanArgument verbose; private EntryWriter ldifWriter; private LDAPSearch(final InputStream in, final OutputStream out, final OutputStream err) private LDAPSearch() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return true; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. */ @Override public boolean isScriptFriendly() { return false; } /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/ModRate.java
@@ -34,9 +34,6 @@ import static com.forgerock.opendj.ldap.tools.ToolConstants.*; import static com.forgerock.opendj.ldap.tools.Utils.filterExitCode; import java.io.InputStream; import java.io.OutputStream; import org.forgerock.i18n.LocalizableMessage; import org.forgerock.opendj.ldap.*; import org.forgerock.opendj.ldap.requests.ModifyRequest; @@ -163,132 +160,27 @@ public static void main(final String[] args) { final int retCode = mainModRate(args, System.in, System.out, System.err); final int retCode = new ModRate().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the modrate tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainModRate(final String[] args) { return mainModRate(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the modrate tool. * * @param args * The command-line arguments provided to this program. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainModRate(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new ModRate(inStream, outStream, errStream).run(args); } private BooleanArgument verbose; private BooleanArgument scriptFriendly; private ModRate(final InputStream in, final OutputStream out, final OutputStream err) private ModRate() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. * {@inheritDoc} */ @Override public boolean isScriptFriendly() @@ -299,9 +191,7 @@ /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose() opendj-sdk/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java
@@ -34,8 +34,6 @@ import static com.forgerock.opendj.ldap.tools.ToolConstants.*; import static com.forgerock.opendj.ldap.tools.Utils.filterExitCode; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; @@ -215,55 +213,12 @@ public static void main(final String[] args) { final int retCode = mainSearchRate(args, System.in, System.out, System.err); final int retCode = new SearchRate().run(args); System.exit(filterExitCode(retCode)); } /** * Parses the provided command-line arguments and uses that information to run * the ldapsearch tool. * * @param args * The command-line arguments provided to this program. * @return The error code. */ static int mainSearchRate(final String[] args) { return mainSearchRate(args, System.in, System.out, System.err); } /** * Parses the provided command-line arguments and uses that information to run * the ldapsearch tool. * * @param args * The command-line arguments provided to this program. * @param inStream * The input stream to use for standard input, or <CODE>null</CODE> * if standard input is not needed. * @param outStream * The output stream to use for standard output, or <CODE>null</CODE> * if standard output is not needed. * @param errStream * The output stream to use for standard error, or <CODE>null</CODE> * if standard error is not needed. * @return The error code. */ static int mainSearchRate(final String[] args, final InputStream inStream, final OutputStream outStream, final OutputStream errStream) { return new SearchRate(inStream, outStream, errStream).run(args); } private BooleanArgument verbose; private BooleanArgument scriptFriendly; @@ -272,77 +227,15 @@ private SearchRate(final InputStream in, final OutputStream out, final OutputStream err) private SearchRate() { super(in, out, err); // Nothing to do. } /** * Indicates whether or not the user has requested advanced mode. * * @return Returns <code>true</code> if the user has requested advanced mode. */ @Override public boolean isAdvancedMode() { return false; } /** * Indicates whether or not the user has requested interactive behavior. * * @return Returns <code>true</code> if the user has requested interactive * behavior. */ @Override public boolean isInteractive() { return false; } /** * Indicates whether or not this console application is running in its * menu-driven mode. This can be used to dictate whether output should go to * the error stream or not. In addition, it may also dictate whether or not * sub-menus should display a cancel option as well as a quit option. * * @return Returns <code>true</code> if this console application is running in * its menu-driven mode. */ @Override public boolean isMenuDrivenMode() { return false; } /** * Indicates whether or not the user has requested quiet output. * * @return Returns <code>true</code> if the user has requested quiet output. */ @Override public boolean isQuiet() { return false; } /** * Indicates whether or not the user has requested script-friendly output. * * @return Returns <code>true</code> if the user has requested script-friendly * output. * {@inheritDoc} */ @Override public boolean isScriptFriendly() @@ -353,9 +246,7 @@ /** * Indicates whether or not the user has requested verbose output. * * @return Returns <code>true</code> if the user has requested verbose output. * {@inheritDoc} */ @Override public boolean isVerbose()