From bdc5fa0dd0980eb9e077ae80644504705a24e035 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Mon, 07 Nov 2016 13:59:40 +0000
Subject: [PATCH] OPENDJ-3179: Migrate LDAP Connection Handler to SDK Grizzly transport

---
 opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java |   39 ++++++++++++++++++---------------------
 1 files changed, 18 insertions(+), 21 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
index b7dc22f..5b5d2ba 100644
--- a/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
+++ b/opendj-server-legacy/src/main/java/org/forgerock/opendj/reactive/LDAPConnectionHandler2.java
@@ -49,17 +49,16 @@
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.config.server.ConfigurationChangeListener;
-import org.forgerock.opendj.grizzly.GrizzlyLDAPListener;
 import org.forgerock.opendj.ldap.AddressMask;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.LDAPClientContext;
-import org.forgerock.opendj.ldap.LDAPClientContext.DisconnectListener;
+import org.forgerock.opendj.ldap.LDAPClientContext.ConnectionEventListener;
 import org.forgerock.opendj.ldap.LDAPListener;
 import org.forgerock.opendj.ldap.LdapException;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.requests.UnbindRequest;
 import org.forgerock.opendj.ldap.responses.Response;
-import org.forgerock.opendj.ldap.spi.LdapMessages.LdapRawMessage;
+import org.forgerock.opendj.ldap.spi.LdapMessages.LdapRequestEnvelope;
 import org.forgerock.opendj.server.config.server.ConnectionHandlerCfg;
 import org.forgerock.opendj.server.config.server.LDAPConnectionHandlerCfg;
 import org.forgerock.util.Function;
@@ -129,7 +128,7 @@
     /** SSL instance name used in context creation. */
     private static final String SSL_CONTEXT_INSTANCE_NAME = "TLS";
 
-    private GrizzlyLDAPListener listener;
+    private LDAPListener listener;
 
     /** The current configuration state. */
     private LDAPConnectionHandlerCfg currentConfig;
@@ -636,44 +635,45 @@
     }
 
     private void startListener() throws IOException {
-        listener = new GrizzlyLDAPListener(
+        listener = new LDAPListener(
                 listenAddresses,
-                Options.defaultOptions().set(LDAPListener.CONNECT_MAX_BACKLOG, backlog)
-                        .set(LDAPListener.REQUEST_MAX_SIZE_IN_BYTES, (int) currentConfig.getMaxRequestSize()),
                 new Function<LDAPClientContext,
-                             ReactiveHandler<LDAPClientContext, LdapRawMessage, Stream<Response>>,
+                             ReactiveHandler<LDAPClientContext, LdapRequestEnvelope, Stream<Response>>,
                              LdapException>() {
                     @Override
-                    public ReactiveHandler<LDAPClientContext, LdapRawMessage, Stream<Response>> apply(
+                    public ReactiveHandler<LDAPClientContext, LdapRequestEnvelope, Stream<Response>> apply(
                             LDAPClientContext clientContext) throws LdapException {
                         final LDAPClientConnection2 conn = canAccept(clientContext);
                         connectionList.add(conn);
-                        clientContext.onDisconnect(new DisconnectListener() {
+                        clientContext.addConnectionEventListener(new ConnectionEventListener() {
                             @Override
-                            public void exceptionOccurred(LDAPClientContext context, Throwable error) {
+                            public void handleConnectionError(final LDAPClientContext context, final Throwable error) {
                                 connectionList.remove(conn);
                             }
 
                             @Override
-                            public void connectionDisconnected(LDAPClientContext context, ResultCode resultCode,
-                                    String diagnosticMessage) {
+                            public void handleConnectionDisconnected(final LDAPClientContext context,
+                                    final ResultCode resultCode, String diagnosticMessage) {
                                 connectionList.remove(conn);
                             }
 
                             @Override
-                            public void connectionClosed(LDAPClientContext context, UnbindRequest unbindRequest) {
+                            public void handleConnectionClosed(final LDAPClientContext context,
+                                    final UnbindRequest unbindRequest) {
                                 connectionList.remove(conn);
                             }
                         });
-                        return new ReactiveHandler<LDAPClientContext, LdapRawMessage, Stream<Response>>() {
+                        return new ReactiveHandler<LDAPClientContext, LdapRequestEnvelope, Stream<Response>>() {
                             @Override
-                            public Stream<Response> handle(LDAPClientContext context, LdapRawMessage request)
-                                    throws Exception {
+                            public Stream<Response> handle(final LDAPClientContext context,
+                                    final LdapRequestEnvelope request) throws Exception {
                                 return conn.handle(queueingStrategy, request);
                             }
                         };
                     }
-                });
+                }, Options.defaultOptions()
+                          .set(LDAPListener.CONNECT_MAX_BACKLOG, backlog)
+                          .set(LDAPListener.REQUEST_MAX_SIZE_IN_BYTES, (int) currentConfig.getMaxRequestSize()));
     }
 
     /**
@@ -684,8 +684,6 @@
     public void run() {
         setName(handlerName);
         boolean starting = true;
-        setName(handlerName);
-
         boolean lastIterationFailed = false;
 
         while (!shutdownRequested) {
@@ -724,7 +722,6 @@
 
                 // If we have gotten here, then we are about to start listening
                 // for the first time since startup or since we were previously disabled.
-                // Start the embedded HTTP server
                 startListener();
                 lastIterationFailed = false;
             } catch (Exception e) {

--
Gitblit v1.10.0