From 684830f9e78326aba7a0140444c0e41dcfaff809 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 25 Feb 2016 09:44:28 +0000
Subject: [PATCH] Code cleanup: - Replaced use of Socket by RemoteConnection - Replaced use of the various InternalClientConnection.processModify() methods by InternalClientConnection.processModify(ModifyRequest) everywhere it is not critical and perfs will be equivalent

---
 opendj-server-legacy/src/test/java/org/opends/server/tasks/DisconnectClientTaskTestCase.java |  187 ++++++++++++++++++----------------------------
 1 files changed, 74 insertions(+), 113 deletions(-)

diff --git a/opendj-server-legacy/src/test/java/org/opends/server/tasks/DisconnectClientTaskTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/tasks/DisconnectClientTaskTestCase.java
index 24d4428..2812d7e 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/tasks/DisconnectClientTaskTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/tasks/DisconnectClientTaskTestCase.java
@@ -12,25 +12,30 @@
  * information: "Portions Copyright [year] [name of copyright owner]".
  *
  * Copyright 2008 Sun Microsystems, Inc.
- * Portions Copyright 2014-2015 ForgeRock AS.
+ * Portions Copyright 2014-2016 ForgeRock AS.
  */
 package org.opends.server.tasks;
 
-import java.net.Socket;
-
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.TestCaseUtils;
-import org.opends.server.extensions.GetConnectionIDExtendedOperation;
-import org.opends.server.protocols.ldap.*;
-import org.opends.server.types.DN;
-import org.opends.server.util.StaticUtils;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
 import static org.opends.server.util.ServerConstants.*;
 import static org.testng.Assert.*;
 
+import java.io.IOException;
+
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.ldap.DecodeException;
+import org.forgerock.opendj.ldap.LdapException;
+import org.opends.server.TestCaseUtils;
+import org.opends.server.extensions.GetConnectionIDExtendedOperation;
+import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
+import org.opends.server.protocols.ldap.LDAPConstants;
+import org.opends.server.protocols.ldap.LDAPMessage;
+import org.opends.server.protocols.ldap.LDAPResultCode;
+import org.opends.server.tools.RemoteConnection;
+import org.opends.server.types.DN;
+import org.opends.server.types.LDAPException;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
 /** Tests the disconnect client task. */
 public class DisconnectClientTaskTestCase
        extends TasksTestCase
@@ -60,64 +65,36 @@
          throws Exception
   {
     // Establish a connection to the server, bind, and get the connection ID.
-    Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
-    org.opends.server.tools.LDAPReader r =
-        new org.opends.server.tools.LDAPReader(s);
-    org.opends.server.tools.LDAPWriter w =
-        new org.opends.server.tools.LDAPWriter(s);
+    try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
+    {
+      conn.bind("cn=Directory Manager", "password");
 
-    BindRequestProtocolOp bindRequest =
-         new BindRequestProtocolOp(ByteString.valueOfUtf8("cn=Directory Manager"),
-                                   3, ByteString.valueOfUtf8("password"));
-    LDAPMessage message = new LDAPMessage(1, bindRequest);
-    w.writeMessage(message);
+      long connectionID = getConnectionID(conn);
 
-    message = r.readMessage();
-    BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
-    assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS);
+      // Invoke the disconnect client task.
+      String taskID = "Disconnect Client " + connectionID;
+      LocalizableMessage disconnectMessage = LocalizableMessage.raw("testDisconnectWithNotification");
+      DN taskDN = DN.valueOf("ds-task-id=" + taskID + ",cn=Scheduled Tasks,cn=Tasks");
+      TestCaseUtils.addEntry(
+          "dn: " + taskDN,
+          "objectClass: top",
+          "objectClass: ds-task",
+          "objectClass: ds-task-disconnect",
+          "ds-task-id: " + taskID,
+          "ds-task-class-name: org.opends.server.tasks.DisconnectClientTask",
+          "ds-task-disconnect-connection-id: " + connectionID,
+          "ds-task-disconnect-notify-client: true",
+          "ds-task-disconnect-message: " + disconnectMessage);
+
+      waitTaskCompletedSuccessfully(taskDN);
 
 
-    ExtendedRequestProtocolOp extendedRequest =
-         new ExtendedRequestProtocolOp(OID_GET_CONNECTION_ID_EXTOP);
-    message = new LDAPMessage(2, extendedRequest);
-    w.writeMessage(message);
-
-    message = r.readMessage();
-    ExtendedResponseProtocolOp extendedResponse =
-         message.getExtendedResponseProtocolOp();
-    assertEquals(extendedResponse.getResultCode(), LDAPResultCode.SUCCESS);
-    assertEquals(extendedResponse.getOID(), OID_GET_CONNECTION_ID_EXTOP);
-    long connectionID = GetConnectionIDExtendedOperation.decodeResponseValue(
-                             extendedResponse.getValue());
-
-
-    // Invoke the disconnect client task.
-    String taskID = "Disconnect Client " + connectionID;
-    LocalizableMessage disconnectMessage = LocalizableMessage.raw("testDisconnectWithNotification");
-    DN taskDN = DN.valueOf("ds-task-id=" + taskID +
-                          ",cn=Scheduled Tasks,cn=Tasks");
-    TestCaseUtils.addEntry(
-      "dn: " + taskDN,
-      "objectClass: top",
-      "objectClass: ds-task",
-      "objectClass: ds-task-disconnect",
-      "ds-task-id: " + taskID,
-      "ds-task-class-name: org.opends.server.tasks.DisconnectClientTask",
-      "ds-task-disconnect-connection-id: " + connectionID,
-      "ds-task-disconnect-notify-client: true",
-      "ds-task-disconnect-message: " + disconnectMessage);
-
-    waitTaskCompletedSuccessfully(taskDN);
-
-
-    // Make sure that we get a notice of disconnection on the initial connection.
-    message = r.readMessage();
-    extendedResponse = message.getExtendedResponseProtocolOp();
-    assertEquals(extendedResponse.getOID(),
-                 LDAPConstants.OID_NOTICE_OF_DISCONNECTION);
-    assertEquals(extendedResponse.getErrorMessage(), disconnectMessage);
-
-    StaticUtils.close(s);
+      // Make sure that we get a notice of disconnection on the initial connection.
+      LDAPMessage message = conn.readMessage();
+      ExtendedResponseProtocolOp extendedResponse = message.getExtendedResponseProtocolOp();
+      assertEquals(extendedResponse.getOID(), LDAPConstants.OID_NOTICE_OF_DISCONNECTION);
+      assertEquals(extendedResponse.getErrorMessage(), disconnectMessage);
+    }
   }
 
 
@@ -133,57 +110,41 @@
          throws Exception
   {
     // Establish a connection to the server, bind, and get the connection ID.
-    Socket s = new Socket("127.0.0.1", TestCaseUtils.getServerLdapPort());
-    org.opends.server.tools.LDAPReader r =
-        new org.opends.server.tools.LDAPReader(s);
-    org.opends.server.tools.LDAPWriter w =
-        new org.opends.server.tools.LDAPWriter(s);
+    try (RemoteConnection conn = new RemoteConnection("localhost", TestCaseUtils.getServerLdapPort()))
+    {
+      conn.bind("cn=Directory Manager", "password");
 
-    BindRequestProtocolOp bindRequest =
-         new BindRequestProtocolOp(ByteString.valueOfUtf8("cn=Directory Manager"),
-                                   3, ByteString.valueOfUtf8("password"));
-    LDAPMessage message = new LDAPMessage(1, bindRequest);
-    w.writeMessage(message);
-
-    message = r.readMessage();
-    BindResponseProtocolOp bindResponse = message.getBindResponseProtocolOp();
-    assertEquals(bindResponse.getResultCode(), LDAPResultCode.SUCCESS);
+      long connectionID = getConnectionID(conn);
 
 
-    ExtendedRequestProtocolOp extendedRequest =
-         new ExtendedRequestProtocolOp(OID_GET_CONNECTION_ID_EXTOP);
-    message = new LDAPMessage(2, extendedRequest);
-    w.writeMessage(message);
+      // Invoke the disconnect client task.
+      String taskID = "Disconnect Client " + connectionID;
+      DN taskDN = DN.valueOf("ds-task-id=" + taskID + ",cn=Scheduled Tasks,cn=Tasks");
+      TestCaseUtils.addEntry(
+          "dn: " + taskDN,
+          "objectClass: top",
+          "objectClass: ds-task",
+          "objectClass: ds-task-disconnect",
+          "ds-task-id: " + taskID,
+          "ds-task-class-name: org.opends.server.tasks.DisconnectClientTask",
+          "ds-task-disconnect-connection-id: " + connectionID,
+          "ds-task-disconnect-notify-client: false");
 
-    message = r.readMessage();
-    ExtendedResponseProtocolOp extendedResponse =
-         message.getExtendedResponseProtocolOp();
+      waitTaskCompletedSuccessfully(taskDN);
+
+
+      // Make sure that the client connection has been closed with no notice of disconnection.
+      assertNull(conn.readMessage());
+    }
+  }
+
+  private long getConnectionID(RemoteConnection conn) throws IOException, LDAPException, LdapException, DecodeException
+  {
+    LDAPMessage message = conn.extendedRequest(OID_GET_CONNECTION_ID_EXTOP);
+
+    ExtendedResponseProtocolOp extendedResponse = message.getExtendedResponseProtocolOp();
     assertEquals(extendedResponse.getResultCode(), LDAPResultCode.SUCCESS);
     assertEquals(extendedResponse.getOID(), OID_GET_CONNECTION_ID_EXTOP);
-    long connectionID = GetConnectionIDExtendedOperation.decodeResponseValue(
-                             extendedResponse.getValue());
-
-
-    // Invoke the disconnect client task.
-    String taskID = "Disconnect Client " + connectionID;
-    DN taskDN = DN.valueOf("ds-task-id=" + taskID +
-                          ",cn=Scheduled Tasks,cn=Tasks");
-    TestCaseUtils.addEntry(
-      "dn: " + taskDN,
-      "objectClass: top",
-      "objectClass: ds-task",
-      "objectClass: ds-task-disconnect",
-      "ds-task-id: " + taskID,
-      "ds-task-class-name: org.opends.server.tasks.DisconnectClientTask",
-      "ds-task-disconnect-connection-id: " + connectionID,
-      "ds-task-disconnect-notify-client: false");
-
-    waitTaskCompletedSuccessfully(taskDN);
-
-
-    // Make sure that the client connection has been closed with no notice of disconnection.
-    assertNull(r.readMessage());
-
-    StaticUtils.close(s);
+    return GetConnectionIDExtendedOperation.decodeResponseValue(extendedResponse.getValue());
   }
 }

--
Gitblit v1.10.0