From a4e2fc0298e8d60aa0e4bcfd3304303d952e0972 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 28 Nov 2014 14:52:21 +0000
Subject: [PATCH] OPENDJ-1607 Revert changes to revision 11339

---
 opendj-grizzly/src/test/java/org/forgerock/opendj/grizzly/ConnectionFactoryTestCase.java |  133 +++++++++++++++++++++++---------------------
 1 files changed, 70 insertions(+), 63 deletions(-)

diff --git a/opendj-grizzly/src/test/java/org/forgerock/opendj/grizzly/ConnectionFactoryTestCase.java b/opendj-grizzly/src/test/java/org/forgerock/opendj/grizzly/ConnectionFactoryTestCase.java
index 5b268e8..f5351cd 100644
--- a/opendj-grizzly/src/test/java/org/forgerock/opendj/grizzly/ConnectionFactoryTestCase.java
+++ b/opendj-grizzly/src/test/java/org/forgerock/opendj/grizzly/ConnectionFactoryTestCase.java
@@ -45,15 +45,15 @@
 import org.forgerock.opendj.ldap.ConnectionPool;
 import org.forgerock.opendj.ldap.Connections;
 import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.LdapException;
 import org.forgerock.opendj.ldap.FailoverLoadBalancingAlgorithm;
+import org.forgerock.opendj.ldap.LdapPromise;
 import org.forgerock.opendj.ldap.IntermediateResponseHandler;
 import org.forgerock.opendj.ldap.LDAPClientContext;
 import org.forgerock.opendj.ldap.LDAPConnectionFactory;
 import org.forgerock.opendj.ldap.LDAPListener;
 import org.forgerock.opendj.ldap.LDAPOptions;
 import org.forgerock.opendj.ldap.LDAPServer;
-import org.forgerock.opendj.ldap.LdapException;
-import org.forgerock.opendj.ldap.LdapPromise;
 import org.forgerock.opendj.ldap.MockConnectionEventListener;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.ResultHandler;
@@ -85,14 +85,10 @@
 import org.testng.annotations.DataProvider;
 import org.testng.annotations.Test;
 
-import static java.util.concurrent.TimeUnit.*;
-
 import static org.fest.assertions.Assertions.*;
 import static org.forgerock.opendj.ldap.Connections.*;
 import static org.forgerock.opendj.ldap.LdapException.*;
 import static org.forgerock.opendj.ldap.TestCaseUtils.*;
-import static org.forgerock.opendj.ldap.requests.Requests.*;
-import static org.forgerock.opendj.ldap.responses.Responses.*;
 import static org.forgerock.opendj.ldap.spi.LdapPromises.*;
 import static org.mockito.Matchers.*;
 import static org.mockito.Mockito.*;
@@ -107,12 +103,6 @@
     private static final long TEST_TIMEOUT = 30L;
     private static final long TEST_TIMEOUT_MS = TEST_TIMEOUT * 1000L;
 
-    /** The heart-beat timeout after which a connection will be marked as failed. */
-    private static final long OPERATION_TIMEOUT_SEC = 3;
-
-    /** The time unit for the interval between keepalive pings. */
-    private static final long HEART_BEAT_INTERVAL_SEC = 10;
-
     /**
      * Ensures that the LDAP Server is running.
      *
@@ -155,30 +145,33 @@
             "uid=user.0,ou=people,o=test", SearchScope.BASE_OBJECT, "(objectclass=*)", "cn");
 
         InetSocketAddress serverAddress = getServerSocketAddress();
-        final LDAPOptions commonsOptions = new LDAPOptions().setTimeout(OPERATION_TIMEOUT_SEC, SECONDS);
-        factories[0][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(),
-                            new LDAPOptions().setHeartBeatSearchRequest(request).setTimeout(500, MILLISECONDS)
-                            .setHeartBeatInterval(1000, MILLISECONDS));
+        factories[0][0] =
+                Connections.newHeartBeatConnectionFactory(new LDAPConnectionFactory(
+                        serverAddress.getHostName(), serverAddress.getPort()),
+                        1000, 500, TimeUnit.MILLISECONDS, request);
 
         // InternalConnectionFactory
-        factories[1][0] = newInternalConnectionFactory(LDAPServer.getInstance(), null);
+        factories[1][0] = Connections.newInternalConnectionFactory(LDAPServer.getInstance(), null);
 
         // AuthenticatedConnectionFactory
-        factories[2][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(),
-                        new LDAPOptions(commonsOptions).setBindRequest(newSimpleBindRequest("", new char[0])));
+        factories[2][0] =
+                Connections.newAuthenticatedConnectionFactory(new LDAPConnectionFactory(
+                                serverAddress.getHostName(), serverAddress.getPort()),
+                        Requests.newSimpleBindRequest("", new char[0]));
 
         // AuthenticatedConnectionFactory with multi-stage SASL
-        factories[3][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(),
-                        new LDAPOptions(commonsOptions).setBindRequest(
-                                newCRAMMD5SASLBindRequest("id:user", "password".toCharArray())));
+        factories[3][0] =
+                Connections.newAuthenticatedConnectionFactory(new LDAPConnectionFactory(
+                                serverAddress.getHostName(), serverAddress.getPort()),
+                        Requests.newCRAMMD5SASLBindRequest("id:user", "password".toCharArray()));
 
         // LDAPConnectionFactory with default options
-        factories[4][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort());
+        factories[4][0] = new LDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort());
 
         // LDAPConnectionFactory with startTLS
         SSLContext sslContext =
                 new SSLContextBuilder().setTrustManager(TrustManagers.trustAll()).getSSLContext();
-        LDAPOptions options = new LDAPOptions(commonsOptions).setSSLContext(sslContext).setUseStartTLS(true)
+        LDAPOptions options = new LDAPOptions().setSSLContext(sslContext).setUseStartTLS(true)
                         .addEnabledCipherSuite(
                                 new String[] { "SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
                                     "SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
@@ -186,29 +179,34 @@
                                     "SSL_DH_anon_WITH_DES_CBC_SHA", "SSL_DH_anon_WITH_RC4_128_MD5",
                                     "TLS_DH_anon_WITH_AES_128_CBC_SHA",
                                     "TLS_DH_anon_WITH_AES_256_CBC_SHA" });
-        factories[5][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(), options);
+        factories[5][0] = new LDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(), options);
 
         // startTLS + SASL confidentiality
         // Use IP address here so that DIGEST-MD5 host verification works if
         // local host name is not localhost (e.g. on some machines it might be
         // localhost.localdomain).
         // FIXME: enable QOP once OPENDJ-514 is fixed.
-        factories[6][0] = newLDAPConnectionFactory(serverAddress.getHostName(), serverAddress.getPort(),
-                options.setBindRequest(newDigestMD5SASLBindRequest("id:user", "password".toCharArray())
-                        .setCipher(DigestMD5SASLBindRequest.CIPHER_LOW)));
+        factories[6][0] =
+                Connections.newAuthenticatedConnectionFactory(new LDAPConnectionFactory(
+                        serverAddress.getHostName(), serverAddress.getPort(), options),
+                        Requests.newDigestMD5SASLBindRequest(
+                            "id:user", "password".toCharArray()).setCipher(
+                                DigestMD5SASLBindRequest.CIPHER_LOW));
 
         // Connection pool and load balancing tests.
         InetSocketAddress offlineSocketAddress1 = findFreeSocketAddress();
-        ConnectionFactory offlineServer1 = newNamedConnectionFactory(
-                        newLDAPConnectionFactory(offlineSocketAddress1.getHostName(),
+        ConnectionFactory offlineServer1 =
+                Connections.newNamedConnectionFactory(
+                        new LDAPConnectionFactory(offlineSocketAddress1.getHostName(),
                                 offlineSocketAddress1.getPort()), "offline1");
-
         InetSocketAddress offlineSocketAddress2 = findFreeSocketAddress();
-        ConnectionFactory offlineServer2 = newNamedConnectionFactory(
-                        newLDAPConnectionFactory(offlineSocketAddress2.getHostName(),
+        ConnectionFactory offlineServer2 =
+                Connections.newNamedConnectionFactory(
+                        new LDAPConnectionFactory(offlineSocketAddress2.getHostName(),
                                 offlineSocketAddress2.getPort()), "offline2");
-        ConnectionFactory onlineServer = newNamedConnectionFactory(
-                        newLDAPConnectionFactory(serverAddress.getHostName(),
+        ConnectionFactory onlineServer =
+                Connections.newNamedConnectionFactory(
+                        new LDAPConnectionFactory(serverAddress.getHostName(),
                                 serverAddress.getPort()), "online");
 
         // Connection pools.
@@ -329,7 +327,7 @@
         // Create a connection factory: this should always use the default
         // schema, even if it is updated.
         InetSocketAddress socketAddress = getServerSocketAddress();
-        final ConnectionFactory factory = newLDAPConnectionFactory(socketAddress.getHostName(),
+        final ConnectionFactory factory = new LDAPConnectionFactory(socketAddress.getHostName(),
                 socketAddress.getPort());
         final Schema defaultSchema = Schema.getDefaultSchema();
 
@@ -522,13 +520,17 @@
     @Test(dataProvider = "closeNotifyConfig")
     public void testCloseNotify(final CloseNotify config) throws Exception {
         final CountDownLatch connectLatch = new CountDownLatch(1);
-        final AtomicReference<LDAPClientContext> contextHolder = new AtomicReference<LDAPClientContext>();
+        final AtomicReference<LDAPClientContext> contextHolder =
+                new AtomicReference<LDAPClientContext>();
 
-        final ServerConnectionFactory<LDAPClientContext, Integer> mockServer = mock(ServerConnectionFactory.class);
+        final ServerConnectionFactory<LDAPClientContext, Integer> mockServer =
+                mock(ServerConnectionFactory.class);
         when(mockServer.handleAccept(any(LDAPClientContext.class))).thenAnswer(
                 new Answer<ServerConnection<Integer>>() {
+
                     @Override
-                    public ServerConnection<Integer> answer(InvocationOnMock invocation) throws Throwable {
+                    public ServerConnection<Integer> answer(InvocationOnMock invocation)
+                            throws Throwable {
                         // Allow the context to be accessed from outside the mock.
                         contextHolder.set((LDAPClientContext) invocation.getArguments()[0]);
                         connectLatch.countDown(); /* is this needed? */
@@ -541,8 +543,10 @@
                                 @Override
                                 public Void answer(InvocationOnMock invocation) throws Throwable {
                                     ResultHandler<? super BindResult> resultHandler =
-                                            (ResultHandler<? super BindResult>) invocation.getArguments()[4];
-                                    resultHandler.handleResult(newBindResult(ResultCode.SUCCESS));
+                                            (ResultHandler<? super BindResult>) invocation
+                                                    .getArguments()[4];
+                                    resultHandler.handleResult(Responses
+                                            .newBindResult(ResultCode.SUCCESS));
                                     return null;
                                 }
                             }).when(mockConnection).handleBind(anyInt(), anyInt(),
@@ -553,19 +557,20 @@
                     }
                 });
 
-        LDAPListener listener = newLDAPListener(findFreeSocketAddress(), mockServer);
+        LDAPListener listener = new LDAPListener(findFreeSocketAddress(), mockServer);
         try {
-            LDAPConnectionFactory clientFactory = newLDAPConnectionFactory(listener.getHostName(), listener.getPort());
-            final Connection clientConnection = clientFactory.getConnection();
-            connectLatch.await(TEST_TIMEOUT, SECONDS);
+            LDAPConnectionFactory clientFactory =
+                    new LDAPConnectionFactory(listener.getHostName(), listener.getPort());
+            final Connection client = clientFactory.getConnection();
+            connectLatch.await(TEST_TIMEOUT, TimeUnit.SECONDS);
             MockConnectionEventListener mockListener = null;
             try {
                 if (config.useEventListener) {
                     mockListener = new MockConnectionEventListener();
-                    clientConnection.addConnectionEventListener(mockListener);
+                    client.addConnectionEventListener(mockListener);
                 }
                 if (config.doBindFirst) {
-                    clientConnection.bind("cn=test", "password".toCharArray());
+                    client.bind("cn=test", "password".toCharArray());
                 }
                 if (!config.closeOnAccept) {
                     // Disconnect using client context.
@@ -582,29 +587,30 @@
                 // Block until remote close is signalled.
                 if (mockListener != null) {
                     // Block using listener.
-                    mockListener.awaitError(TEST_TIMEOUT, SECONDS);
+                    mockListener.awaitError(TEST_TIMEOUT, TimeUnit.SECONDS);
                     assertThat(mockListener.getInvocationCount()).isEqualTo(1);
-                    assertThat(mockListener.isDisconnectNotification()).isEqualTo(config.sendDisconnectNotification);
+                    assertThat(mockListener.isDisconnectNotification()).isEqualTo(
+                            config.sendDisconnectNotification);
                     assertThat(mockListener.getError()).isNotNull();
                 } else {
                     // Block by spinning on isValid.
                     waitForCondition(new Callable<Boolean>() {
                         @Override
                         public Boolean call() throws Exception {
-                            return !clientConnection.isValid();
+                            return !client.isValid();
                         }
                     });
                 }
-                assertThat(clientConnection.isValid()).isFalse();
-                assertThat(clientConnection.isClosed()).isFalse();
+                assertThat(client.isValid()).isFalse();
+                assertThat(client.isClosed()).isFalse();
             } finally {
-                clientConnection.close();
+                client.close();
             }
             // Check state after remote close and local close.
-            assertThat(clientConnection.isValid()).isFalse();
-            assertThat(clientConnection.isClosed()).isTrue();
+            assertThat(client.isValid()).isFalse();
+            assertThat(client.isClosed()).isTrue();
             if (mockListener != null) {
-                mockListener.awaitClose(TEST_TIMEOUT, SECONDS);
+                mockListener.awaitClose(TEST_TIMEOUT, TimeUnit.SECONDS);
                 assertThat(mockListener.getInvocationCount()).isEqualTo(2);
             }
         } finally {
@@ -634,9 +640,11 @@
                     }
                 });
 
-        LDAPListener listener = newLDAPListener(findFreeSocketAddress(), mockServer);
+        LDAPListener listener = new LDAPListener(findFreeSocketAddress(), mockServer);
         try {
-            LDAPConnectionFactory clientFactory = newLDAPConnectionFactory(listener.getHostName(), listener.getPort());
+            LDAPConnectionFactory clientFactory =
+                    new LDAPConnectionFactory(listener.getHostName(),
+                            listener.getPort());
             final Connection client = clientFactory.getConnection();
             connectLatch.await(TEST_TIMEOUT, TimeUnit.SECONDS);
             try {
@@ -670,12 +678,11 @@
     @Test(description = "Test for OPENDJ-1121: Closing a connection after "
             + "closing the connection factory causes NPE")
     public void testFactoryCloseBeforeConnectionClose() throws Exception {
-        LDAPOptions heartBeatOptions = new LDAPOptions().setHeartBeatInterval(HEART_BEAT_INTERVAL_SEC, SECONDS)
-                .setTimeout(OPERATION_TIMEOUT_SEC, SECONDS);
         InetSocketAddress socketAddress = getServerSocketAddress();
-        final ConnectionFactory factory = newLoadBalancer(new FailoverLoadBalancingAlgorithm(
-                Arrays.asList(newFixedConnectionPool(newLDAPConnectionFactory(
-                        socketAddress.getHostName(), socketAddress.getPort(), heartBeatOptions), 2))));
+        final ConnectionFactory factory =
+                newLoadBalancer(new FailoverLoadBalancingAlgorithm(Arrays.asList(newFixedConnectionPool(
+                        newHeartBeatConnectionFactory(new LDAPConnectionFactory(
+                                socketAddress.getHostName(), socketAddress.getPort())), 2))));
         Connection conn = null;
         try {
             conn = factory.getConnection();

--
Gitblit v1.10.0