From 263d085885df024dca9250cc03c807912b0a7662 Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Tue, 24 Apr 2012 22:33:21 +0000
Subject: [PATCH] Reformat to comply with new Checkstyle rules.
---
opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java | 594 +++++++++++++++++++++++++---------------------------------
1 files changed, 255 insertions(+), 339 deletions(-)
diff --git a/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java b/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java
index 5a7a566..a90d11d 100644
--- a/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java
+++ b/opendj3/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/SearchRate.java
@@ -6,17 +6,16 @@
* (the "License"). You may not use this file except in compliance
* with the License.
*
- * You can obtain a copy of the license at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt
+ * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
- * file and include the License file at
- * trunk/opendj3/legal-notices/CDDLv1_0.txt. If applicable,
- * add the following below this CDDL HEADER, with the fields enclosed
- * by brackets "[]" replaced with your own identifying information:
+ * file and include the License file at legal-notices/CDDLv1_0.txt.
+ * If applicable, add the following below this CDDL HEADER, with the
+ * fields enclosed by brackets "[]" replaced with your own identifying
+ * information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
@@ -28,10 +27,8 @@
package com.forgerock.opendj.ldap.tools;
-
-
-import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.ldap.tools.ToolConstants.*;
+import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
import static com.forgerock.opendj.ldap.tools.Utils.filterExitCode;
import java.util.ArrayList;
@@ -40,371 +37,290 @@
import java.util.concurrent.atomic.AtomicInteger;
import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.opendj.ldap.*;
+import org.forgerock.opendj.ldap.Connection;
+import org.forgerock.opendj.ldap.ConnectionFactory;
+import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
+import org.forgerock.opendj.ldap.FutureResult;
+import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.SearchResultHandler;
+import org.forgerock.opendj.ldap.SearchScope;
import org.forgerock.opendj.ldap.requests.Requests;
import org.forgerock.opendj.ldap.requests.SearchRequest;
import org.forgerock.opendj.ldap.responses.Result;
import org.forgerock.opendj.ldap.responses.SearchResultEntry;
import org.forgerock.opendj.ldap.responses.SearchResultReference;
-
-
/**
* A load generation tool that can be used to load a Directory Server with
* Search requests using one or more LDAP connections.
*/
-public final class SearchRate extends ConsoleApplication
-{
- private final class SearchPerformanceRunner extends PerformanceRunner
- {
- private final class SearchStatsHandler extends
- UpdateStatsResultHandler<Result> implements SearchResultHandler
- {
- private SearchStatsHandler(final long startTime)
- {
- super(startTime);
- }
+public final class SearchRate extends ConsoleApplication {
+ private final class SearchPerformanceRunner extends PerformanceRunner {
+ private final class SearchStatsHandler extends UpdateStatsResultHandler<Result> implements
+ SearchResultHandler {
+ private SearchStatsHandler(final long startTime) {
+ super(startTime);
+ }
+ @Override
+ public boolean handleEntry(final SearchResultEntry entry) {
+ entryRecentCount.getAndIncrement();
+ return true;
+ }
+ @Override
+ public boolean handleReference(final SearchResultReference reference) {
+ return true;
+ }
+ }
- @Override
- public boolean handleEntry(final SearchResultEntry entry)
- {
- entryRecentCount.getAndIncrement();
- return true;
- }
+ private final class SearchStatsThread extends StatsThread {
+ private final String[] extraColumn;
+ private SearchStatsThread() {
+ super(new String[] { "Entries/Srch" });
+ extraColumn = new String[1];
+ }
+ @Override
+ String[] getAdditionalColumns() {
+ final int entryCount = entryRecentCount.getAndSet(0);
+ if (successCount > 0) {
+ extraColumn[0] = String.format("%.1f", (double) entryCount / successCount);
+ } else {
+ extraColumn[0] = String.format("%.1f", 0.0);
+ }
+ return extraColumn;
+ }
+ }
- @Override
- public boolean handleReference(final SearchResultReference reference)
- {
- return true;
- }
+ private final class SearchWorkerThread extends WorkerThread {
+ private SearchRequest sr;
+ private Object[] data;
+
+ private SearchWorkerThread(final Connection connection,
+ final ConnectionFactory connectionFactory) {
+ super(connection, connectionFactory);
+ }
+
+ @Override
+ public FutureResult<?> performOperation(final Connection connection,
+ final DataSource[] dataSources, final long startTime) {
+ if (sr == null) {
+ if (dataSources == null) {
+ sr = Requests.newSearchRequest(baseDN, scope, filter, attributes);
+ } else {
+ data = DataSource.generateData(dataSources, data);
+ sr =
+ Requests.newSearchRequest(String.format(baseDN, data), scope,
+ String.format(filter, data), attributes);
+ }
+ sr.setDereferenceAliasesPolicy(dereferencesAliasesPolicy);
+ } else if (dataSources != null) {
+ data = DataSource.generateData(dataSources, data);
+ sr.setFilter(String.format(filter, data));
+ sr.setName(String.format(baseDN, data));
+ }
+ return connection.searchAsync(sr, null, new SearchStatsHandler(startTime));
+ }
+ }
+
+ private String filter;
+ private String baseDN;
+ private SearchScope scope;
+ private DereferenceAliasesPolicy dereferencesAliasesPolicy;
+ private String[] attributes;
+
+ private SearchPerformanceRunner(final ArgumentParser argParser, final ConsoleApplication app)
+ throws ArgumentException {
+ super(argParser, app, false, false, false);
+ }
+
+ @Override
+ WorkerThread newWorkerThread(final Connection connection,
+ final ConnectionFactory connectionFactory) {
+ return new SearchWorkerThread(connection, connectionFactory);
+ }
+
+ @Override
+ StatsThread newStatsThread() {
+ return new SearchStatsThread();
+ }
}
+ /**
+ * The main method for SearchRate tool.
+ *
+ * @param args
+ * The command-line arguments provided to this program.
+ */
-
- private final class SearchStatsThread extends StatsThread
- {
- private final String[] extraColumn;
-
-
-
- private SearchStatsThread()
- {
- super(new String[] { "Entries/Srch" });
- extraColumn = new String[1];
- }
-
-
-
- @Override
- String[] getAdditionalColumns()
- {
- final int entryCount = entryRecentCount.getAndSet(0);
- if (successCount > 0)
- {
- extraColumn[0] = String.format("%.1f", (double) entryCount
- / successCount);
- }
- else
- {
- extraColumn[0] = String.format("%.1f", 0.0);
- }
- return extraColumn;
- }
+ public static void main(final String[] args) {
+ final int retCode = new SearchRate().run(args);
+ System.exit(filterExitCode(retCode));
}
+ private BooleanArgument verbose;
+ private BooleanArgument scriptFriendly;
- private final class SearchWorkerThread extends WorkerThread
- {
- private SearchRequest sr;
- private Object[] data;
+ private final AtomicInteger entryRecentCount = new AtomicInteger();
-
-
- private SearchWorkerThread(final Connection connection,
- final ConnectionFactory connectionFactory)
- {
- super(connection, connectionFactory);
- }
-
-
-
- @Override
- public FutureResult<?> performOperation(final Connection connection,
- final DataSource[] dataSources, final long startTime)
- {
- if (sr == null)
- {
- if (dataSources == null)
- {
- sr = Requests.newSearchRequest(baseDN, scope, filter, attributes);
- }
- else
- {
- data = DataSource.generateData(dataSources, data);
- sr = Requests.newSearchRequest(String.format(baseDN, data), scope,
- String.format(filter, data), attributes);
- }
- sr.setDereferenceAliasesPolicy(dereferencesAliasesPolicy);
- }
- else if (dataSources != null)
- {
- data = DataSource.generateData(dataSources, data);
- sr.setFilter(String.format(filter, data));
- sr.setName(String.format(baseDN, data));
- }
- return connection.searchAsync(sr, null, new SearchStatsHandler(
- startTime));
- }
+ private SearchRate() {
+ // Nothing to do.
}
-
-
- private String filter;
- private String baseDN;
- private SearchScope scope;
- private DereferenceAliasesPolicy dereferencesAliasesPolicy;
- private String[] attributes;
-
-
-
- private SearchPerformanceRunner(final ArgumentParser argParser,
- final ConsoleApplication app) throws ArgumentException
- {
- super(argParser, app, false, false, false);
- }
-
-
-
+ /**
+ * {@inheritDoc}
+ */
@Override
- WorkerThread newWorkerThread(final Connection connection,
- final ConnectionFactory connectionFactory)
- {
- return new SearchWorkerThread(connection, connectionFactory);
+ public boolean isScriptFriendly() {
+ return scriptFriendly.isPresent();
}
-
-
+ /**
+ * {@inheritDoc}
+ */
@Override
- StatsThread newStatsThread()
- {
- return new SearchStatsThread();
- }
- }
-
-
-
- /**
- * The main method for SearchRate tool.
- *
- * @param args
- * The command-line arguments provided to this program.
- */
-
- public static void main(final String[] args)
- {
- final int retCode = new SearchRate().run(args);
- System.exit(filterExitCode(retCode));
- }
-
-
-
- private BooleanArgument verbose;
-
- private BooleanArgument scriptFriendly;
-
- private final AtomicInteger entryRecentCount = new AtomicInteger();
-
-
-
- private SearchRate()
- {
- // Nothing to do.
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean isScriptFriendly()
- {
- return scriptFriendly.isPresent();
- }
-
-
-
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean isVerbose()
- {
- return verbose.isPresent();
- }
-
-
-
- private int run(final String[] args)
- {
- // Create the command-line argument parser for use with this
- // program.
- final LocalizableMessage toolDescription = INFO_SEARCHRATE_TOOL_DESCRIPTION
- .get();
- final ArgumentParser argParser = new ArgumentParser(
- SearchRate.class.getName(), toolDescription, false, true, 1, 0,
- "[filter format string] [attributes ...]");
-
- ConnectionFactoryProvider connectionFactoryProvider;
- ConnectionFactory connectionFactory;
- SearchPerformanceRunner runner;
-
- StringArgument baseDN;
- MultiChoiceArgument<SearchScope> searchScope;
- MultiChoiceArgument<DereferenceAliasesPolicy> dereferencePolicy;
- BooleanArgument showUsage;
- StringArgument propertiesFileArgument;
- BooleanArgument noPropertiesFileArgument;
-
- try
- {
- Utils.setDefaultPerfToolProperties();
-
- connectionFactoryProvider = new ConnectionFactoryProvider(argParser, this);
- runner = new SearchPerformanceRunner(argParser, this);
-
- propertiesFileArgument = new StringArgument("propertiesFilePath", null,
- OPTION_LONG_PROP_FILE_PATH, false, false, true,
- INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
- INFO_DESCRIPTION_PROP_FILE_PATH.get());
- argParser.addArgument(propertiesFileArgument);
- argParser.setFilePropertiesArgument(propertiesFileArgument);
-
- noPropertiesFileArgument = new BooleanArgument(
- "noPropertiesFileArgument", null, OPTION_LONG_NO_PROP_FILE,
- INFO_DESCRIPTION_NO_PROP_FILE.get());
- argParser.addArgument(noPropertiesFileArgument);
- argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
-
- showUsage = new BooleanArgument("showUsage", OPTION_SHORT_HELP,
- OPTION_LONG_HELP, INFO_DESCRIPTION_SHOWUSAGE.get());
- argParser.addArgument(showUsage);
- argParser.setUsageArgument(showUsage, getOutputStream());
-
- baseDN = new StringArgument("baseDN", OPTION_SHORT_BASEDN,
- OPTION_LONG_BASEDN, true, false, true, INFO_BASEDN_PLACEHOLDER.get(),
- null, null, INFO_SEARCHRATE_TOOL_DESCRIPTION_BASEDN.get());
- baseDN.setPropertyName(OPTION_LONG_BASEDN);
- argParser.addArgument(baseDN);
-
- searchScope = new MultiChoiceArgument<SearchScope>("searchScope", 's',
- "searchScope", false, true, INFO_SEARCH_SCOPE_PLACEHOLDER.get(),
- SearchScope.values(), false,
- INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE.get());
- searchScope.setPropertyName("searchScope");
- searchScope.setDefaultValue(SearchScope.WHOLE_SUBTREE);
- argParser.addArgument(searchScope);
-
- dereferencePolicy = new MultiChoiceArgument<DereferenceAliasesPolicy>(
- "derefpolicy", 'a', "dereferencePolicy", false, true,
- INFO_DEREFERENCE_POLICE_PLACEHOLDER.get(),
- DereferenceAliasesPolicy.values(), false,
- INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY.get());
- dereferencePolicy.setPropertyName("dereferencePolicy");
- dereferencePolicy.setDefaultValue(DereferenceAliasesPolicy.NEVER);
- argParser.addArgument(dereferencePolicy);
-
- verbose = new BooleanArgument("verbose", 'v', "verbose",
- INFO_DESCRIPTION_VERBOSE.get());
- verbose.setPropertyName("verbose");
- argParser.addArgument(verbose);
-
- scriptFriendly = new BooleanArgument("scriptFriendly", 'S',
- "scriptFriendly", INFO_DESCRIPTION_SCRIPT_FRIENDLY.get());
- scriptFriendly.setPropertyName("scriptFriendly");
- argParser.addArgument(scriptFriendly);
- }
- catch (final ArgumentException ae)
- {
- final LocalizableMessage message = ERR_CANNOT_INITIALIZE_ARGS.get(ae
- .getMessage());
- println(message);
- return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ public boolean isVerbose() {
+ return verbose.isPresent();
}
- // Parse the command-line arguments provided to this program.
- try
- {
- argParser.parseArguments(args);
+ private int run(final String[] args) {
+ // Create the command-line argument parser for use with this
+ // program.
+ final LocalizableMessage toolDescription = INFO_SEARCHRATE_TOOL_DESCRIPTION.get();
+ final ArgumentParser argParser =
+ new ArgumentParser(SearchRate.class.getName(), toolDescription, false, true, 1, 0,
+ "[filter format string] [attributes ...]");
- // If we should just display usage or version information,
- // then print it and exit.
- if (argParser.usageOrVersionDisplayed())
- {
- return 0;
- }
+ ConnectionFactoryProvider connectionFactoryProvider;
+ ConnectionFactory connectionFactory;
+ SearchPerformanceRunner runner;
- connectionFactory = connectionFactoryProvider
- .getAuthenticatedConnectionFactory();
- runner.validate();
- }
- catch (final ArgumentException ae)
- {
- final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae
- .getMessage());
- println(message);
- return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
- }
+ StringArgument baseDN;
+ MultiChoiceArgument<SearchScope> searchScope;
+ MultiChoiceArgument<DereferenceAliasesPolicy> dereferencePolicy;
+ BooleanArgument showUsage;
+ StringArgument propertiesFileArgument;
+ BooleanArgument noPropertiesFileArgument;
- final List<String> attributes = new LinkedList<String>();
- final ArrayList<String> filterAndAttributeStrings = argParser
- .getTrailingArguments();
- if (filterAndAttributeStrings.size() > 0)
- {
- // the list of trailing arguments should be structured as follow:
- // the first trailing argument is
- // considered the filter, the other as attributes.
- runner.filter = filterAndAttributeStrings.remove(0);
- // The rest are attributes
- for (final String s : filterAndAttributeStrings)
- {
- attributes.add(s);
- }
- }
- runner.attributes = attributes.toArray(new String[attributes.size()]);
- runner.baseDN = baseDN.getValue();
- try
- {
- runner.scope = searchScope.getTypedValue();
- runner.dereferencesAliasesPolicy = dereferencePolicy.getTypedValue();
- }
- catch (final ArgumentException ex1)
- {
- println(ex1.getMessageObject());
- return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
- }
+ try {
+ Utils.setDefaultPerfToolProperties();
- try
- {
- // Try it out to make sure the format string and data sources
- // match.
- final Object[] data = DataSource.generateData(runner.getDataSources(),
- null);
- String.format(runner.filter, data);
- String.format(runner.baseDN, data);
- }
- catch (final Exception ex1)
- {
- println(LocalizableMessage.raw("Error formatting filter or base DN: "
- + ex1.toString()));
- return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
- }
+ connectionFactoryProvider = new ConnectionFactoryProvider(argParser, this);
+ runner = new SearchPerformanceRunner(argParser, this);
- return runner.run(connectionFactory);
- }
+ propertiesFileArgument =
+ new StringArgument("propertiesFilePath", null, OPTION_LONG_PROP_FILE_PATH,
+ false, false, true, INFO_PROP_FILE_PATH_PLACEHOLDER.get(), null, null,
+ INFO_DESCRIPTION_PROP_FILE_PATH.get());
+ argParser.addArgument(propertiesFileArgument);
+ argParser.setFilePropertiesArgument(propertiesFileArgument);
+
+ noPropertiesFileArgument =
+ new BooleanArgument("noPropertiesFileArgument", null, OPTION_LONG_NO_PROP_FILE,
+ INFO_DESCRIPTION_NO_PROP_FILE.get());
+ argParser.addArgument(noPropertiesFileArgument);
+ argParser.setNoPropertiesFileArgument(noPropertiesFileArgument);
+
+ showUsage =
+ new BooleanArgument("showUsage", OPTION_SHORT_HELP, OPTION_LONG_HELP,
+ INFO_DESCRIPTION_SHOWUSAGE.get());
+ argParser.addArgument(showUsage);
+ argParser.setUsageArgument(showUsage, getOutputStream());
+
+ baseDN =
+ new StringArgument("baseDN", OPTION_SHORT_BASEDN, OPTION_LONG_BASEDN, true,
+ false, true, INFO_BASEDN_PLACEHOLDER.get(), null, null,
+ INFO_SEARCHRATE_TOOL_DESCRIPTION_BASEDN.get());
+ baseDN.setPropertyName(OPTION_LONG_BASEDN);
+ argParser.addArgument(baseDN);
+
+ searchScope =
+ new MultiChoiceArgument<SearchScope>("searchScope", 's', "searchScope", false,
+ true, INFO_SEARCH_SCOPE_PLACEHOLDER.get(), SearchScope.values(), false,
+ INFO_SEARCH_DESCRIPTION_SEARCH_SCOPE.get());
+ searchScope.setPropertyName("searchScope");
+ searchScope.setDefaultValue(SearchScope.WHOLE_SUBTREE);
+ argParser.addArgument(searchScope);
+
+ dereferencePolicy =
+ new MultiChoiceArgument<DereferenceAliasesPolicy>("derefpolicy", 'a',
+ "dereferencePolicy", false, true, INFO_DEREFERENCE_POLICE_PLACEHOLDER
+ .get(), DereferenceAliasesPolicy.values(), false,
+ INFO_SEARCH_DESCRIPTION_DEREFERENCE_POLICY.get());
+ dereferencePolicy.setPropertyName("dereferencePolicy");
+ dereferencePolicy.setDefaultValue(DereferenceAliasesPolicy.NEVER);
+ argParser.addArgument(dereferencePolicy);
+
+ verbose =
+ new BooleanArgument("verbose", 'v', "verbose", INFO_DESCRIPTION_VERBOSE.get());
+ verbose.setPropertyName("verbose");
+ argParser.addArgument(verbose);
+
+ scriptFriendly =
+ new BooleanArgument("scriptFriendly", 'S', "scriptFriendly",
+ INFO_DESCRIPTION_SCRIPT_FRIENDLY.get());
+ scriptFriendly.setPropertyName("scriptFriendly");
+ argParser.addArgument(scriptFriendly);
+ } catch (final ArgumentException ae) {
+ final LocalizableMessage message = ERR_CANNOT_INITIALIZE_ARGS.get(ae.getMessage());
+ println(message);
+ return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ }
+
+ // Parse the command-line arguments provided to this program.
+ try {
+ argParser.parseArguments(args);
+
+ // If we should just display usage or version information,
+ // then print it and exit.
+ if (argParser.usageOrVersionDisplayed()) {
+ return 0;
+ }
+
+ connectionFactory = connectionFactoryProvider.getAuthenticatedConnectionFactory();
+ runner.validate();
+ } catch (final ArgumentException ae) {
+ final LocalizableMessage message = ERR_ERROR_PARSING_ARGS.get(ae.getMessage());
+ println(message);
+ return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ }
+
+ final List<String> attributes = new LinkedList<String>();
+ final ArrayList<String> filterAndAttributeStrings = argParser.getTrailingArguments();
+ if (filterAndAttributeStrings.size() > 0) {
+ // the list of trailing arguments should be structured as follow:
+ // the first trailing argument is
+ // considered the filter, the other as attributes.
+ runner.filter = filterAndAttributeStrings.remove(0);
+ // The rest are attributes
+ for (final String s : filterAndAttributeStrings) {
+ attributes.add(s);
+ }
+ }
+ runner.attributes = attributes.toArray(new String[attributes.size()]);
+ runner.baseDN = baseDN.getValue();
+ try {
+ runner.scope = searchScope.getTypedValue();
+ runner.dereferencesAliasesPolicy = dereferencePolicy.getTypedValue();
+ } catch (final ArgumentException ex1) {
+ println(ex1.getMessageObject());
+ return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ }
+
+ try {
+ // Try it out to make sure the format string and data sources
+ // match.
+ final Object[] data = DataSource.generateData(runner.getDataSources(), null);
+ String.format(runner.filter, data);
+ String.format(runner.baseDN, data);
+ } catch (final Exception ex1) {
+ println(LocalizableMessage.raw("Error formatting filter or base DN: " + ex1.toString()));
+ return ResultCode.CLIENT_SIDE_PARAM_ERROR.intValue();
+ }
+
+ return runner.run(connectionFactory);
+ }
}
--
Gitblit v1.10.0