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