From 600f6cb4356f2355a004604b9353505f0c2f7f49 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Mon, 29 Sep 2014 10:04:51 +0000
Subject: [PATCH] OPENDJ-1536 OPENDJ-1285 Rename FutureResult classes hierarchy in the SDK to enhance code consistency
---
opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPConnectionFactory.java | 35 +++++++++++++++++------------------
1 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPConnectionFactory.java b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPConnectionFactory.java
index b18fe61..8df6801 100644
--- a/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPConnectionFactory.java
+++ b/opendj-grizzly/src/main/java/org/forgerock/opendj/grizzly/GrizzlyLDAPConnectionFactory.java
@@ -38,9 +38,8 @@
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.Connection;
-import org.forgerock.opendj.ldap.LdapException;
-import org.forgerock.opendj.ldap.FutureResultImpl;
import org.forgerock.opendj.ldap.LDAPOptions;
+import org.forgerock.opendj.ldap.LdapException;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.TimeoutChecker;
import org.forgerock.opendj.ldap.TimeoutEventListener;
@@ -50,6 +49,7 @@
import org.forgerock.opendj.ldap.spi.LDAPConnectionFactoryImpl;
import org.forgerock.util.promise.FailureHandler;
import org.forgerock.util.promise.Promise;
+import org.forgerock.util.promise.PromiseImpl;
import org.forgerock.util.promise.SuccessHandler;
import org.glassfish.grizzly.CompletionHandler;
import org.glassfish.grizzly.EmptyCompletionHandler;
@@ -74,17 +74,16 @@
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
/**
- * Adapts a Grizzly connection completion handler to an LDAP connection
- * asynchronous future result.
+ * Adapts a Grizzly connection completion handler to an LDAP connection promise.
*/
@SuppressWarnings("rawtypes")
private final class CompletionHandlerAdapter implements
CompletionHandler<org.glassfish.grizzly.Connection>, TimeoutEventListener {
- private final FutureResultImpl<Connection> future;
+ private final PromiseImpl<Connection, LdapException> promise;
private final long timeoutEndTime;
- private CompletionHandlerAdapter(final FutureResultImpl<Connection> future) {
- this.future = future;
+ private CompletionHandlerAdapter(final PromiseImpl<Connection, LdapException> promise) {
+ this.promise = promise;
final long timeoutMS = getTimeout();
this.timeoutEndTime = timeoutMS > 0 ? System.currentTimeMillis() + timeoutMS : 0;
timeoutChecker.get().addListener(this);
@@ -108,8 +107,8 @@
// Start TLS or install SSL layer asynchronously.
- // Give up immediately if the future has been cancelled or timed out.
- if (future.isDone()) {
+ // Give up immediately if the promise has been cancelled or timed out.
+ if (promise.isDone()) {
timeoutChecker.get().removeListener(this);
connection.close();
return;
@@ -160,7 +159,7 @@
public void failed(final Throwable throwable) {
// Adapt and forward.
timeoutChecker.get().removeListener(this);
- future.handleError(adaptConnectionException(throwable));
+ promise.handleError(adaptConnectionException(throwable));
releaseTransportAndTimeoutChecker();
}
@@ -189,20 +188,20 @@
if (t instanceof LdapException) {
return (LdapException) t;
} else {
- return newErrorResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR, t.getMessage(), t);
+ return newLdapException(ResultCode.CLIENT_SIDE_CONNECT_ERROR, t.getMessage(), t);
}
}
private void onFailure(final GrizzlyLDAPConnection connection, final Throwable t) {
// Abort connection attempt due to error.
timeoutChecker.get().removeListener(this);
- future.handleError(adaptConnectionException(t));
+ promise.handleError(adaptConnectionException(t));
connection.close();
}
private void onSuccess(final GrizzlyLDAPConnection connection) {
timeoutChecker.get().removeListener(this);
- if (!future.tryHandleResult(connection)) {
+ if (!promise.tryHandleResult(connection)) {
// The connection has been either cancelled or it has timed out.
connection.close();
}
@@ -215,7 +214,7 @@
} else if (timeoutEndTime > currentTime) {
return timeoutEndTime - currentTime;
} else {
- future.handleError(newErrorResult(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
+ promise.handleError(newLdapException(ResultCode.CLIENT_SIDE_CONNECT_ERROR,
LDAP_CONNECTION_CONNECT_TIMEOUT.get(getSocketAddress(), getTimeout()).toString()));
return 0;
}
@@ -304,7 +303,7 @@
try {
return getConnectionAsync().getOrThrow();
} catch (final InterruptedException e) {
- throw newErrorResult(ResultCode.CLIENT_SIDE_USER_CANCELLED, e);
+ throw newLdapException(ResultCode.CLIENT_SIDE_USER_CANCELLED, e);
}
}
@@ -314,9 +313,9 @@
final SocketConnectorHandler connectorHandler =
TCPNIOConnectorHandler.builder(transport.get()).processor(defaultFilterChain)
.build();
- final FutureResultImpl<Connection> future = new FutureResultImpl<Connection>();
- connectorHandler.connect(getSocketAddress(), new CompletionHandlerAdapter(future));
- return future;
+ final PromiseImpl<Connection, LdapException> promise = PromiseImpl.create();
+ connectorHandler.connect(getSocketAddress(), new CompletionHandlerAdapter(promise));
+ return promise;
}
@Override
--
Gitblit v1.10.0