From d1f856b7e21b543aaccd701942bc8bc4efc96912 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 08 Feb 2016 09:45:01 +0000
Subject: [PATCH] OPENDJSDK-81 Remove asynchronous option in rate tools

---
 opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunnerOptions.java |   11 -----
 opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java        |   54 ++++++++-------------------
 opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/StatsThread.java              |   20 ---------
 opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java                 |    1 
 opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties         |    1 
 5 files changed, 18 insertions(+), 69 deletions(-)

diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java
index 582873e..881e5d3 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AuthRate.java
@@ -406,7 +406,6 @@
             setDefaultPerfToolProperties();
             PerformanceRunnerOptions options = new PerformanceRunnerOptions(argParser, this);
             options.setSupportsRebind(false);
-            options.setSupportsAsynchronousRequests(false);
             options.setSupportsMultipleThreadsPerConnection(false);
 
             connectionFactoryProvider = new ConnectionFactoryProvider(argParser, this);
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
index 0e5ed7c..fb7da7f 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunner.java
@@ -157,25 +157,24 @@
                 long startTimeNs = System.nanoTime();
                 promise = performOperation(connection, dataSources.get(), startTimeNs);
                 statsThread.incrementOperationCount();
-                if (!isAsync) {
-                    try {
-                        promise.getOrThrow();
-                    } catch (final InterruptedException e) {
-                        // Ignore and check stop requested
-                        continue;
-                    } catch (final LdapException e) {
-                        if (!stopRequested && e.getCause() instanceof IOException) {
-                            e.getCause().printStackTrace(app.getErrorStream());
-                            stopTool(true);
-                            break;
-                        }
-                        // Ignore. Handled by result handler
-                    } finally {
-                        if (this.connection == null) {
-                            connection.close();
-                        }
+                try {
+                    promise.getOrThrow();
+                } catch (final InterruptedException e) {
+                    // Ignore and check stop requested
+                    continue;
+                } catch (final LdapException e) {
+                    if (!stopRequested && e.getCause() instanceof IOException) {
+                        e.getCause().printStackTrace(app.getErrorStream());
+                        stopTool(true);
+                        break;
+                    }
+                    // Ignore. Handled by result handler
+                } finally {
+                    if (this.connection == null) {
+                        connection.close();
                     }
                 }
+
                 if (targetThroughput > 0) {
                     try {
                         if (sleepTimeMs > 1) {
@@ -241,7 +240,6 @@
     private long warmUpDurationMs;
     /** Max duration time in ms, 0 for unlimited. **/
     private long maxDurationTimeMs;
-    private boolean isAsync;
     private boolean noRebind;
     private BindRequest bindRequest;
     private int statsIntervalMs;
@@ -253,7 +251,6 @@
     private final IntegerArgument percentilesArgument;
     private final BooleanArgument keepConnectionsOpen;
     private final BooleanArgument noRebindArgument;
-    private final BooleanArgument asyncArgument;
     private final StringArgument arguments;
     protected final IntegerArgument maxIterationsArgument;
     protected final IntegerArgument warmUpArgument;
@@ -339,15 +336,6 @@
             argParser.addArgument(noRebindArgument);
         }
 
-        asyncArgument =
-                new BooleanArgument("asynchronous", 'A', "asynchronous", LocalizableMessage
-                        .raw("Use asynchronous mode and do not "
-                                + "wait for results before sending the next request"));
-        asyncArgument.setPropertyName("asynchronous");
-        if (options.supportsAsynchronousRequests()) {
-            argParser.addArgument(asyncArgument);
-        }
-
         arguments =
                 new StringArgument(
                         "argument",
@@ -402,7 +390,6 @@
         statsIntervalMs = statsIntervalArgument.getIntValue() * 1000;
         targetThroughput = targetThroughputArgument.getIntValue();
 
-        isAsync = asyncArgument.isPresent();
         noRebind = noRebindArgument.isPresent();
 
         if (!noRebindArgument.isPresent() && this.numThreads > 1) {
@@ -410,11 +397,6 @@
                 "--" + noRebindArgument.getLongIdentifier(), "--" + numThreadsArgument.getLongIdentifier(), "> 1"));
         }
 
-        if (!noRebindArgument.isPresent() && asyncArgument.isPresent()) {
-            throw new ArgumentException(ERR_TOOL_ARG_NEEDED_WHEN_USING_ARG.get(
-                "--" + noRebindArgument.getLongIdentifier(), asyncArgument.getLongIdentifier()));
-        }
-
         if (maxIterationsArgument.isPresent() && maxIterations <= 0) {
             throw new ArgumentException(ERR_TOOL_NOT_ENOUGH_ITERATIONS.get(
                 "--" + maxIterationsArgument.getLongIdentifier(), numConnections * numThreads,
@@ -505,10 +487,6 @@
         }
     }
 
-    boolean isAsync() {
-        return isAsync;
-    }
-
     double[] getPercentiles() {
         if (percentilesArgument.isPresent()) {
             double[] percentiles = new double[percentilesArgument.getValues().size()];
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunnerOptions.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunnerOptions.java
index f4585de..2a796b2 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunnerOptions.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/PerformanceRunnerOptions.java
@@ -21,7 +21,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2014-2015 ForgeRock AS
+ *      Portions Copyright 2014-2016 ForgeRock AS
  */
 
 package com.forgerock.opendj.ldap.tools;
@@ -37,7 +37,6 @@
     private ConsoleApplication app;
 
     private boolean supportsRebind = true;
-    private boolean supportAsynchronousRequests = true;
     private boolean supportsMultipleThreadsPerConnection = true;
     private boolean supportsGeneratorArgument = true;
 
@@ -54,14 +53,6 @@
         this.supportsRebind = supportsRebind;
     }
 
-    boolean supportsAsynchronousRequests() {
-        return supportAsynchronousRequests;
-    }
-
-    void setSupportsAsynchronousRequests(boolean supportAsynchronousRequests) {
-        this.supportAsynchronousRequests = supportAsynchronousRequests;
-    }
-
     boolean supportsMultipleThreadsPerConnection() {
         return supportsMultipleThreadsPerConnection;
     }
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/StatsThread.java b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/StatsThread.java
index 6d35ff8..885fdb6 100644
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/StatsThread.java
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/StatsThread.java
@@ -69,7 +69,6 @@
     private static final String AVERAGE_RESPONSE_TIME_MS = STAT_ID_PREFIX + "average_response_time";
     private static final String PERCENTILES = STAT_ID_PREFIX + "percentiles";
     private static final String ERROR_PER_SECOND = STAT_ID_PREFIX + "error_per_second";
-    private static final String REQUEST_PER_RESPONSE = STAT_ID_PREFIX + "request_per_response";
 
     public static final double MS_IN_S = TimeUnit.SECONDS.toMillis(1);
     public static final double NS_IN_MS = TimeUnit.MILLISECONDS.toNanos(1);
@@ -116,7 +115,7 @@
         void printTitle() {
             final int throughputRawSpan = 2;
             final int responseTimeRawSpan = 2 + percentiles.length;
-            final int additionalStatsRawSpan = 1 + (performanceRunner.isAsync() ? 1 : 0) + additionalColumns.size();
+            final int additionalStatsRawSpan = 1 + additionalColumns.size();
 
             printer.printDashedLine();
             printer.printTitleSection("Throughput", throughputRawSpan);
@@ -146,10 +145,6 @@
             // Additional stats
             columns.add(separatorColumn());
             columns.add(column(ERROR_PER_SECOND, "err/sec", STANDARD_WIDTH, 1));
-            if (performanceRunner.isAsync()) {
-                columns.add(separatorColumn());
-                columns.add(column(REQUEST_PER_RESPONSE, "req/res", 4, 1));
-            }
             additionalColumns = registerAdditionalColumns();
             if (!additionalColumns.isEmpty()) {
                 columns.addAll(additionalColumns);
@@ -183,9 +178,6 @@
                         PERCENTILES + percentile, percentile + "% response time", 2));
             }
             columns.add(column(ERROR_PER_SECOND, "errors/second", 1));
-            if (performanceRunner.isAsync()) {
-                columns.add(column(REQUEST_PER_RESPONSE, "Requests/response", 1));
-            }
             columns.addAll(registerAdditionalColumns());
 
 
@@ -352,16 +344,6 @@
                 return Ratio.of(errorCount.getLastIntervalCount(), durationMsCount.getLastIntervalCount() / MS_IN_S);
             }
         });
-
-        if (performanceRunner.isAsync()) {
-            registry.register(REQUEST_PER_RESPONSE, new RatioGauge() {
-                @Override
-                protected Ratio getRatio() {
-                    return Ratio.of(operationCount.getLastIntervalCount(),
-                            successCount.getLastIntervalCount() + errorCount.getLastIntervalCount());
-                }
-            });
-        }
         registry.register(PERCENTILES, responseTimes);
     }
 
diff --git a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
index e9c2edd..e5ab1a7 100755
--- a/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
+++ b/opendj-sdk/opendj-ldap-toolkit/src/main/resources/com/forgerock/opendj/ldap/tools/tools.properties
@@ -503,7 +503,6 @@
  directory %s does not exist
 ERR_TOOL_NOT_ENOUGH_ITERATIONS=%s argument must be greater than or equal to %s \
  (%s per %s)
-ERR_TOOL_ARG_NEEDED_WHEN_USING_ARG=%s must be used when using %s
 ERR_TOOL_ARG_MUST_BE_USED_WHEN_ARG_CONDITION=%s must be used if %s is %s
 INFO_TOOL_WARMING_UP=Warming up for %d seconds...
 ERR_AUTHRATE_NO_BIND_DN_PROVIDED=Authentication information must be provided \

--
Gitblit v1.10.0