From 45141fb11ef698b11c6fb3becca82ca10e11505a Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 15 Sep 2014 12:50:50 +0000
Subject: [PATCH] OPENDJ-1285 CR-4409 Migrate SDK from Futures to Promises

---
 opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AddRate.java |   29 ++++++++++++++++-------------
 1 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AddRate.java b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AddRate.java
index 9b29b04..1c48090 100644
--- a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AddRate.java
+++ b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/AddRate.java
@@ -26,10 +26,6 @@
 
 package com.forgerock.opendj.ldap.tools;
 
-import static com.forgerock.opendj.cli.ArgumentConstants.*;
-import static com.forgerock.opendj.cli.Utils.filterExitCode;
-import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
-
 import java.io.IOException;
 import java.io.PrintStream;
 import java.util.Arrays;
@@ -42,13 +38,14 @@
 import org.forgerock.opendj.ldap.ConnectionFactory;
 import org.forgerock.opendj.ldap.Entry;
 import org.forgerock.opendj.ldap.ErrorResultException;
-import org.forgerock.opendj.ldap.FutureResult;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.ResultHandler;
 import org.forgerock.opendj.ldap.requests.AddRequest;
 import org.forgerock.opendj.ldap.requests.DeleteRequest;
 import org.forgerock.opendj.ldap.requests.Requests;
 import org.forgerock.opendj.ldap.responses.Result;
 import org.forgerock.opendj.ldif.EntryGenerator;
+import org.forgerock.util.promise.Promise;
 
 import com.forgerock.opendj.cli.ArgumentException;
 import com.forgerock.opendj.cli.ArgumentParser;
@@ -60,6 +57,10 @@
 import com.forgerock.opendj.cli.MultiChoiceArgument;
 import com.forgerock.opendj.cli.StringArgument;
 
+import static com.forgerock.opendj.cli.ArgumentConstants.*;
+import static com.forgerock.opendj.cli.Utils.*;
+import static com.forgerock.opendj.ldap.tools.ToolsMessages.*;
+
 /**
  * A load generation tool that can be used to load a Directory Server with Add
  * and Delete requests using one or more LDAP connections.
@@ -68,7 +69,7 @@
 
     private static final class AddPerformanceRunner extends PerformanceRunner {
         private final class AddStatsHandler extends UpdateStatsResultHandler<Result> {
-            private String entryDN;
+            private final String entryDN;
 
             private AddStatsHandler(final long currentTime, String entryDN) {
                 super(currentTime);
@@ -146,17 +147,19 @@
             }
 
             @Override
-            public FutureResult<?> performOperation(Connection connection,
-                    DataSource[] dataSources, long currentTime) {
+            public Promise<?, ErrorResultException> performOperation(Connection connection, DataSource[] dataSources,
+                    long currentTime) {
                 if (needsDelete(currentTime)) {
                     DeleteRequest dr = Requests.newDeleteRequest(getDNEntryToRemove());
-                    return connection.deleteAsync(dr, null, new DeleteStatsHandler(currentTime));
+                    ResultHandler<Result> deleteHandler = new DeleteStatsHandler(currentTime);
+
+                    return connection.deleteAsync(dr).onSuccess(deleteHandler).onFailure(deleteHandler);
                 } else {
                     return performAddOperation(connection, currentTime);
                 }
             }
 
-            private FutureResult<?> performAddOperation(Connection connection, long currentTime) {
+            private Promise<Result, ErrorResultException> performAddOperation(Connection connection, long currentTime) {
                 try {
                     Entry entry;
                     synchronized (generator) {
@@ -164,12 +167,12 @@
                     }
 
                     AddRequest ar = Requests.newAddRequest(entry);
-                    return connection
-                        .addAsync(ar, null, new AddStatsHandler(currentTime, entry.getName().toString()));
+                    ResultHandler<Result> addHandler = new AddStatsHandler(currentTime, entry.getName().toString());
+                    return connection.addAsync(ar).onSuccess(addHandler).onFailure(addHandler);
                 } catch (IOException e) {
                     // faking an error result by notifying the Handler
                     UpdateStatsResultHandler<Result> resHandler = new UpdateStatsResultHandler<Result>(currentTime);
-                    resHandler.handleErrorResult(ErrorResultException.newErrorResult(ResultCode.OTHER, e));
+                    resHandler.handleError(ErrorResultException.newErrorResult(ResultCode.OTHER, e));
                     return null;
                 }
             }

--
Gitblit v1.10.0