You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by bs...@apache.org on 2020/01/27 23:59:04 UTC

[geode] 01/01: GEODE-7597: Factor out code needed in Membership from SocketCreator

This is an automated email from the ASF dual-hosted git repository.

bschuchardt pushed a commit to branch feature/GEODE-7597
in repository https://gitbox.apache.org/repos/asf/geode.git

commit 31ea0bfc93cd9d49231acf312499b51e77a30569
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Jan 27 15:57:01 2020 -0800

    GEODE-7597: Factor out code needed in Membership from SocketCreator
    
    Implemented a new TcpSocketCreatorImpl.  Due to GeodeHttpClientRule
    dependencies this and associated interfaces are in geode-common.  I'd
    rather have them in geode-tcp-server.
    
    SocketCreator now subclasses TcpSocketCreatorImpl and I've removed the
    adapter class, which is no longer needed.
---
 .../internal/LocatorLoadBalancingDUnitTest.java    |   7 +-
 .../AutoConnectionSourceImplJUnitTest.java         |  17 +-
 .../geode/distributed/LocatorIntegrationTest.java  |   7 +-
 .../internal/membership/MembershipJUnitTest.java   |  11 +-
 .../membership/gms/MembershipOnlyTest.java         |   6 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |   5 +-
 .../gms/locator/GMSLocatorIntegrationTest.java     | 122 ---------
 .../locator/GMSLocatorRecoveryIntegrationTest.java |  12 +-
 .../gms/messenger/JGroupsMessengerJUnitTest.java   |   5 +-
 .../tcpserver/TCPClientSSLIntegrationTest.java     |  18 +-
 .../internal/tcpserver/TCPServerSSLJUnitTest.java  |  13 +-
 .../internal/DistributionLocatorConfigImpl.java    |   7 +-
 .../client/internal/AutoConnectionSourceImpl.java  |   7 +-
 .../apache/geode/distributed/LocatorLauncher.java  |   3 +-
 .../distributed/internal/DistributionImpl.java     |  11 +-
 .../distributed/internal/InternalLocator.java      |   6 +-
 .../adapter/TcpSocketCreatorAdapter.java           |  90 -------
 .../apache/geode/internal/DistributionLocator.java |   7 +-
 .../org/apache/geode/internal/SystemAdmin.java     |   7 +-
 .../apache/geode/internal/net/SocketCreator.java   | 292 +++++++--------------
 .../internal/JmxManagerLocatorRequest.java         |   4 +-
 .../internal/api/GeodeConnectionConfig.java        |   5 +-
 .../utils/ClusterConfigurationStatusRetriever.java |   5 +-
 .../internal/net/SocketCreatorFailHandshake.java   |  54 ----
 .../internal/membership/api/MembershipLocator.java |   3 +
 .../gms/MembershipLocatorBuilderImpl.java          |   8 +-
 .../gms/locator/MembershipLocatorImpl.java         |   9 +-
 .../tcpserver/TcpServerGossipVersionDUnitTest.java |   7 +-
 .../internal/tcpserver/TcpServerJUnitTest.java     |  12 +-
 .../TcpServerProductVersionDUnitTest.java          |   6 +-
 .../internal/tcpserver/ConnectionWatcher.java      |  36 ---
 .../distributed/internal/tcpserver/TcpServer.java  |   6 +-
 .../internal/tcpserver/TcpSocketCreator.java       |  48 ----
 .../internal/locator/wan/LocatorDiscovery.java     |   7 +-
 .../locator/wan/LocatorMembershipListenerImpl.java |   7 +-
 .../cache/wan/AbstractRemoteGatewaySender.java     |   7 +-
 36 files changed, 181 insertions(+), 696 deletions(-)

diff --git a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
index 008976d..54f552f 100644
--- a/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
+++ b/geode-core/src/distributedTest/java/org/apache/geode/cache/client/internal/LocatorLoadBalancingDUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.cache.client.internal;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 
 import java.io.IOException;
@@ -178,10 +177,8 @@ public class LocatorLoadBalancingDUnitTest extends LocatorTestBase {
   private Object issueRequest(final String hostName, final int locatorPort,
       final Object request, final boolean replyExpected)
       throws IOException, ClassNotFoundException {
-    return new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    return new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer())
             .requestToServer(InetAddress.getByName(hostName),
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
index ea0e1fb..01ad836 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImplJUnitTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.cache.client.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -160,10 +159,8 @@ public class AutoConnectionSourceImplJUnitTest {
 
   private void issueStopRequest(final int port)
       throws ConnectException, UnknownHostException {
-    new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer())
             .stop(InetAddress.getLocalHost(), port);
@@ -338,9 +335,8 @@ public class AutoConnectionSourceImplJUnitTest {
             "tcp server", new ProtocolCheckerImpl(null, new ClientProtocolServiceLoader()),
             DistributionStats::getStatTime,
             Executors::newCachedThreadPool,
-            asTcpSocketCreator(
-                SocketCreatorFactory
-                    .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+            SocketCreatorFactory
+                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
             InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
             InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer(),
             GeodeGlossary.GEMFIRE_PREFIX + "TcpServer.READ_TIMEOUT",
@@ -426,9 +422,8 @@ public class AutoConnectionSourceImplJUnitTest {
         "Tcp Server", new ProtocolCheckerImpl(null, new ClientProtocolServiceLoader()),
         DistributionStats::getStatTime,
         Executors::newCachedThreadPool,
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer(),
         GeodeGlossary.GEMFIRE_PREFIX + "TcpServer.READ_TIMEOUT",
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorIntegrationTest.java
index 31d47a9..e38223e 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/LocatorIntegrationTest.java
@@ -21,7 +21,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.JMX_MANAGER_S
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATOR_WAIT_TIME;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.internal.AvailablePort.SOCKET;
 import static org.apache.geode.internal.AvailablePort.getRandomAvailablePort;
 import static org.apache.geode.util.internal.GeodeGlossary.GEMFIRE_PREFIX;
@@ -171,10 +170,8 @@ public class LocatorIntegrationTest {
   public void testBasicInfo() throws Exception {
     locator = Locator.startLocator(port, tmpFile);
     int boundPort = port == 0 ? locator.getPort() : port;
-    TcpClient client = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    TcpClient client = new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
     String[] info = client.getInfo(InetAddress.getLocalHost(), boundPort);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipJUnitTest.java
index 497d2c5..d70e603 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipJUnitTest.java
@@ -21,7 +21,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.MEMBER_TIMEOUT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -279,14 +278,12 @@ public class MembershipJUnitTest {
           }
         };
 
-    final TcpClient locatorClient = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    final TcpClient locatorClient = new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
-    final TcpSocketCreator socketCreator = asTcpSocketCreator(SocketCreatorFactory
-        .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER));
+    final TcpSocketCreator socketCreator = SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER);
     final GMSAuthenticator authenticator =
         new GMSAuthenticator(config.getSecurityProps(), securityService,
             mockSystem.getSecurityLogWriter(), mockSystem.getInternalLogWriter());
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipOnlyTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipOnlyTest.java
index c165eb8..94a17e8 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipOnlyTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MembershipOnlyTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed.internal.membership.gms;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
@@ -44,6 +43,7 @@ import org.apache.geode.distributed.internal.membership.api.MembershipLocator;
 import org.apache.geode.distributed.internal.membership.api.MembershipLocatorBuilder;
 import org.apache.geode.distributed.internal.tcpserver.TcpClient;
 import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreator;
+import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreatorImpl;
 import org.apache.geode.internal.InternalDataSerializer;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.net.SocketCreator;
@@ -68,12 +68,12 @@ public class MembershipOnlyTest {
     dsfidSerializer = InternalDataSerializer.getDSFIDSerializer();
 
     // TODO - using geode-core socket creator
-    socketCreator = asTcpSocketCreator(new SocketCreator(new SSLConfig.Builder().build()));
+    socketCreator = new SocketCreator(new SSLConfig.Builder().build());
 
     final Supplier<ExecutorService> executorServiceSupplier =
         () -> LoggingExecutors.newCachedThreadPool("membership", false);
     membershipLocator = MembershipLocatorBuilder.<InternalDistributedMember>newLocatorBuilder(
-        socketCreator,
+        new TcpSocketCreatorImpl(),
         dsfidSerializer.getObjectSerializer(),
         dsfidSerializer.getObjectDeserializer(),
         temporaryFolder.newFile("locator").toPath(),
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
index ac0b6fd..6ddf75b 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
@@ -23,7 +23,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_TTL;
 import static org.apache.geode.distributed.ConfigurationProperties.MEMBER_TIMEOUT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.getTimeout;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -1023,8 +1022,8 @@ public class GMSHealthMonitorJUnitTest {
     public Set<MemberIdentifier> availabilityCheckedMembers = new HashSet<>();
 
     public GMSHealthMonitorTest() {
-      super(asTcpSocketCreator(SocketCreatorFactory
-          .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER)));
+      super(SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER));
     }
 
     @Override
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorIntegrationTest.java
deleted file mode 100644
index 21ba234..0000000
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorIntegrationTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.geode.distributed.internal.membership.gms.locator;
-
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import java.util.Properties;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TemporaryFolder;
-
-import org.apache.geode.distributed.internal.DistributionConfigImpl;
-import org.apache.geode.distributed.internal.LocatorStats;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.api.MembershipConfigurationException;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembership;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
-import org.apache.geode.distributed.internal.membership.gms.Services;
-import org.apache.geode.distributed.internal.membership.gms.interfaces.JoinLeave;
-import org.apache.geode.distributed.internal.membership.gms.interfaces.Messenger;
-import org.apache.geode.distributed.internal.tcpserver.TcpClient;
-import org.apache.geode.distributed.internal.tcpserver.TcpServer;
-import org.apache.geode.internal.InternalDataSerializer;
-import org.apache.geode.internal.net.SocketCreatorFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
-import org.apache.geode.internal.serialization.DSFIDSerializer;
-import org.apache.geode.internal.serialization.Version;
-import org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl;
-
-public class GMSLocatorIntegrationTest {
-
-  @Rule
-  public TemporaryFolder temporaryFolder = new TemporaryFolder();
-
-  private TcpServer tcpServer;
-  private GMSMembershipView view;
-  private GMSLocator gmsLocator;
-  Services services;
-  private JoinLeave joinLeave;
-  private Messenger messenger;
-
-  @Before
-  public void setUp() throws MembershipConfigurationException {
-
-    SocketCreatorFactory.setDistributionConfig(new DistributionConfigImpl(new Properties()));
-
-    tcpServer = mock(TcpServer.class);
-    view = new GMSMembershipView();
-    services = mock(Services.class);
-    DSFIDSerializer serializer = new DSFIDSerializerImpl();
-    Services.registerSerializables(serializer);
-    when(services.getSerializer()).thenReturn(serializer);
-    Version current = Version.CURRENT; // force Version static initialization to set
-    // Version
-
-    joinLeave = mock(JoinLeave.class);
-    when(services.getJoinLeave()).thenReturn(joinLeave);
-    messenger = mock(Messenger.class);
-    when(services.getMessenger()).thenReturn(messenger);
-    when(messenger.getMemberID()).thenReturn(new InternalDistributedMember("localhost", 8080));
-
-    gmsLocator =
-        new GMSLocator(null, null, false, false, new LocatorStats(), "",
-            temporaryFolder.getRoot().toPath(), new TcpClient(
-                asTcpSocketCreator(
-                    SocketCreatorFactory
-                        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
-                InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-                InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer()),
-            InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-            InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
-    GMSMembership membership = mock(GMSMembership.class);
-    when(membership.getServices()).thenReturn(services);
-    gmsLocator.setMembership(membership);
-  }
-
-  @After
-  public void after() {
-    SocketCreatorFactory.close();
-  }
-
-  @Test
-  public void viewFileIsNullByDefault() {
-    assertThat(gmsLocator.getViewFile()).isNull();
-  }
-
-  @Test
-  public void initDefinesViewFileInSpecifiedDirectory() {
-    gmsLocator.init(tcpServer);
-
-    assertThat(gmsLocator.getViewFile()).isNotNull();
-  }
-
-  @Test
-  public void installViewCreatesViewFileInSpecifiedDirectory() {
-    gmsLocator.init(tcpServer);
-
-    gmsLocator.installView(view);
-
-    assertThat(gmsLocator.getViewFile()).exists();
-  }
-}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
index b04cbd9..dcc49d4 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.distributed.internal.membership.gms.locator;
 import static org.apache.geode.distributed.ConfigurationProperties.BIND_ADDRESS;
 import static org.apache.geode.distributed.ConfigurationProperties.DISABLE_TCP;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.distributed.internal.membership.gms.locator.GMSLocator.LOCATOR_FILE_STAMP;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.catchThrowable;
@@ -95,10 +94,8 @@ public class GMSLocatorRecoveryIntegrationTest {
     stateFile = new File(temporaryFolder.getRoot(), getClass().getSimpleName() + "_locator.dat");
 
     gmsLocator = new GMSLocator(null, null, false, false, new LocatorStats(), "",
-        temporaryFolder.getRoot().toPath(), new TcpClient(
-            asTcpSocketCreator(
-                SocketCreatorFactory
-                    .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        temporaryFolder.getRoot().toPath(), new TcpClient(SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
             InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
             InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer()),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
@@ -189,9 +186,8 @@ public class GMSLocatorRecoveryIntegrationTest {
     when(mockSystem.getConfig()).thenReturn(config);
 
     final TcpClient locatorClient = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
index 2f7e9dc..169ae0b 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
@@ -21,7 +21,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_TTL;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -180,8 +179,8 @@ public class JGroupsMessengerJUnitTest {
 
     when(services.getStatistics()).thenReturn(mock(DistributionStats.class));
 
-    socketCreator = asTcpSocketCreator(SocketCreatorFactory.setDistributionConfig(config)
-        .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER));
+    socketCreator = SocketCreatorFactory.setDistributionConfig(config)
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER);
     messenger = new JGroupsMessenger<MemberIdentifier>();
     messenger.init(services);
 
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPClientSSLIntegrationTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPClientSSLIntegrationTest.java
index c6d1c6a..ef05022 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPClientSSLIntegrationTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPClientSSLIntegrationTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed.internal.tcpserver;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.security.SecurableCommunicationChannels.LOCATOR;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
@@ -98,11 +97,9 @@ public class TCPClientSSLIntegrationTest {
 
     startTcpServer(serverProperties);
 
-    client = new TcpClient(
-        asTcpSocketCreator(
-            new SocketCreator(
-                SSLConfigurationFactory.getSSLConfigForComponent(clientProperties,
-                    SecurableCommunicationChannel.LOCATOR))),
+    client = new TcpClient(new SocketCreator(
+        SSLConfigurationFactory.getSSLConfigForComponent(clientProperties,
+            SecurableCommunicationChannel.LOCATOR)),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
@@ -122,11 +119,10 @@ public class TCPClientSSLIntegrationTest {
         (socket, input, firstByte) -> false,
         DistributionStats::getStatTime,
         Executors::newCachedThreadPool,
-        asTcpSocketCreator(
-            new SocketCreator(
-                SSLConfigurationFactory.getSSLConfigForComponent(
-                    new DistributionConfigImpl(sslProperties),
-                    SecurableCommunicationChannel.LOCATOR))),
+        new SocketCreator(
+            SSLConfigurationFactory.getSSLConfigForComponent(
+                new DistributionConfigImpl(sslProperties),
+                SecurableCommunicationChannel.LOCATOR)),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer(),
         "not-a-system-property",
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPServerSSLJUnitTest.java b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPServerSSLJUnitTest.java
index 768f576..3db34cf 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPServerSSLJUnitTest.java
+++ b/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/tcpserver/TCPServerSSLJUnitTest.java
@@ -22,7 +22,6 @@ import static org.apache.geode.distributed.ConfigurationProperties.SSL_KEYSTORE_
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_PROTOCOLS;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE;
 import static org.apache.geode.distributed.ConfigurationProperties.SSL_TRUSTSTORE_PASSWORD;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.test.util.ResourceUtils.createTempFileFromResource;
 import static org.assertj.core.api.Assertions.assertThat;
 
@@ -93,7 +92,7 @@ public class TCPServerSSLJUnitTest {
         "server thread",
         (socket, input, firstByte) -> false, DistributionStats::getStatTime,
         Executors::newCachedThreadPool,
-        asTcpSocketCreator(socketCreator),
+        socketCreator,
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer(),
         GeodeGlossary.GEMFIRE_PREFIX + "TcpServer.READ_TIMEOUT",
@@ -156,12 +155,10 @@ public class TCPServerSSLJUnitTest {
   }
 
   private TcpClient getTcpClient() {
-    return new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(
-                    new DistributionConfigImpl(getSSLConfigurationProperties()),
-                    SecurableCommunicationChannel.LOCATOR)),
+    return new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(
+            new DistributionConfigImpl(getSSLConfigurationProperties()),
+            SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-core/src/main/java/org/apache/geode/admin/internal/DistributionLocatorConfigImpl.java b/geode-core/src/main/java/org/apache/geode/admin/internal/DistributionLocatorConfigImpl.java
index 0d8a730..60dacb1 100644
--- a/geode-core/src/main/java/org/apache/geode/admin/internal/DistributionLocatorConfigImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/admin/internal/DistributionLocatorConfigImpl.java
@@ -15,7 +15,6 @@
 package org.apache.geode.admin.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.internal.net.InetAddressUtilsWithLogging.toInetAddress;
 import static org.apache.geode.internal.net.InetAddressUtilsWithLogging.validateHost;
 
@@ -74,10 +73,8 @@ public class DistributionLocatorConfigImpl extends ManagedEntityConfigImpl
     String[] info = new String[] {"unknown", "unknown"};
 
     try {
-      TcpClient client = new TcpClient(
-          asTcpSocketCreator(
-              SocketCreatorFactory
-                  .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+      TcpClient client = new TcpClient(SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
           InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
           InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
       if (bindAddress != null) {
diff --git a/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java b/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
index f9af55b..9b45bca 100644
--- a/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/cache/client/internal/AutoConnectionSourceImpl.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.cache.client.internal;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.IOException;
 import java.net.ConnectException;
@@ -115,10 +114,8 @@ public class AutoConnectionSourceImpl implements ConnectionSource {
     this.initialLocators = Collections.unmodifiableList(this.locators.get().getLocatorAddresses());
     this.connectionTimeout = handshakeTimeout;
     this.serverGroup = serverGroup;
-    this.tcpClient = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    this.tcpClient = new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
index 65b55de..f5860c9 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/LocatorLauncher.java
@@ -20,7 +20,6 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
 import static org.apache.commons.lang3.StringUtils.lowerCase;
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.internal.lang.StringUtils.wrap;
 import static org.apache.geode.internal.lang.SystemUtils.CURRENT_DIRECTORY;
 import static org.apache.geode.internal.util.IOUtils.tryGetCanonicalPathElseGetAbsolutePath;
@@ -320,7 +319,7 @@ public class LocatorLauncher extends AbstractLauncher<String> {
       final SSLConfig sslConfig = SSLConfigurationFactory.getSSLConfigForComponent(
           properties,
           SecurableCommunicationChannel.LOCATOR);
-      final TcpSocketCreator socketCreator = asTcpSocketCreator(new SocketCreator(sslConfig));
+      final TcpSocketCreator socketCreator = new SocketCreator(sslConfig);
       final TcpClient client = new TcpClient(socketCreator,
           InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
           InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
index 2e91de9..482fe9d 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/DistributionImpl.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed.internal;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.DataInput;
 import java.io.DataOutput;
@@ -127,14 +126,12 @@ public class DistributionImpl implements Distribution {
 
     memberTimeout = system.getConfig().getMemberTimeout();
     try {
-      final TcpClient locatorClient = new TcpClient(
-          asTcpSocketCreator(
-              SocketCreatorFactory
-                  .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+      final TcpClient locatorClient = new TcpClient(SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
           InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
           InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
-      final TcpSocketCreator socketCreator = asTcpSocketCreator(SocketCreatorFactory
-          .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER));
+      final TcpSocketCreator socketCreator = SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER);
       membership = MembershipBuilder.<InternalDistributedMember>newMembershipBuilder(
           socketCreator,
           locatorClient,
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
index 6c9da5c..61f92ca 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
@@ -18,7 +18,6 @@ import static org.apache.commons.lang3.exception.ExceptionUtils.getStackTrace;
 import static org.apache.geode.distributed.ConfigurationProperties.BIND_ADDRESS;
 import static org.apache.geode.distributed.ConfigurationProperties.CACHE_XML_FILE;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.apache.geode.internal.admin.remote.DistributionLocatorId.asDistributionLocatorIds;
 import static org.apache.geode.util.internal.GeodeGlossary.GEMFIRE_PREFIX;
 
@@ -540,9 +539,8 @@ public class InternalLocator extends Locator implements ConnectListener, LogConf
               MAX_POOL_SIZE, new DelayedPoolStatHelper(),
               POOL_IDLE_TIMEOUT,
               new ThreadPoolExecutor.CallerRunsPolicy());
-      final TcpSocketCreator socketCreator = asTcpSocketCreator(
-          SocketCreatorFactory
-              .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR));
+      final TcpSocketCreator socketCreator = SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR);
       membershipLocator =
           MembershipLocatorBuilder.<InternalDistributedMember>newLocatorBuilder(
               socketCreator,
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/TcpSocketCreatorAdapter.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/TcpSocketCreatorAdapter.java
deleted file mode 100644
index 2e81a89..0000000
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/TcpSocketCreatorAdapter.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.distributed.internal.membership.adapter;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-import java.util.Objects;
-
-import org.apache.geode.distributed.internal.tcpserver.ConnectionWatcher;
-import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreator;
-import org.apache.geode.internal.net.SocketCreator;
-
-/**
- * Adapt a SocketCreator from geode-core to function as a TcpSocketAdapter
- * in geode-tcp-server
- */
-public class TcpSocketCreatorAdapter implements TcpSocketCreator {
-  private final SocketCreator socketCreator;
-
-  private TcpSocketCreatorAdapter(final SocketCreator socketCreator) {
-    Objects.requireNonNull(socketCreator);
-    this.socketCreator = socketCreator;
-  }
-
-  public static TcpSocketCreator asTcpSocketCreator(
-      final SocketCreator socketCreator) {
-    return new TcpSocketCreatorAdapter(socketCreator);
-  }
-
-  @Override
-  public boolean useSSL() {
-    return socketCreator.useSSL();
-  }
-
-  @Override
-  public ServerSocket createServerSocket(final int nport, final int backlog) throws IOException {
-    return socketCreator.createServerSocket(nport, backlog);
-  }
-
-  @Override
-  public ServerSocket createServerSocket(final int nport, final int backlog,
-      final InetAddress bindAddr)
-      throws IOException {
-    return socketCreator.createServerSocket(nport, backlog, bindAddr);
-  }
-
-  @Override
-  public ServerSocket createServerSocketUsingPortRange(final InetAddress ba, final int backlog,
-      final boolean isBindAddress, final boolean useNIO, final int tcpBufferSize,
-      final int[] tcpPortRange, final boolean sslConnection) throws IOException {
-    return socketCreator.createServerSocketUsingPortRange(ba, backlog, isBindAddress, useNIO,
-        tcpBufferSize, tcpPortRange, sslConnection);
-  }
-
-  @Override
-  public Socket connect(final InetAddress inetadd, final int port, final int timeout,
-      final ConnectionWatcher optionalWatcher, final boolean clientSide)
-      throws IOException {
-    return socketCreator.connect(inetadd, port, timeout, optionalWatcher, clientSide);
-  }
-
-  @Override
-  public Socket connect(InetAddress inetadd, int port, int timeout,
-      ConnectionWatcher optionalWatcher, boolean clientSide, int socketBufferSize,
-      boolean sslConnection) throws IOException {
-    return socketCreator.connect(inetadd, port, timeout, optionalWatcher, clientSide,
-        socketBufferSize, sslConnection);
-  }
-
-  @Override
-  public void handshakeIfSocketIsSSL(final Socket socket, final int timeout) throws IOException {
-    socketCreator.handshakeIfSocketIsSSL(socket, timeout);
-  }
-
-}
diff --git a/geode-core/src/main/java/org/apache/geode/internal/DistributionLocator.java b/geode-core/src/main/java/org/apache/geode/internal/DistributionLocator.java
index a9db6ae..82c0e26 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/DistributionLocator.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/DistributionLocator.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.internal;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.File;
 import java.io.IOException;
@@ -71,10 +70,8 @@ public class DistributionLocator {
 
   public static void stop(InetAddress addr, int port) {
     try {
-      new TcpClient(
-          asTcpSocketCreator(
-              SocketCreatorFactory
-                  .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+      new TcpClient(SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
           InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
           InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer()).stop(addr,
               port);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java b/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
index 199473c..33a15a5 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/SystemAdmin.java
@@ -16,7 +16,6 @@ package org.apache.geode.internal;
 
 import static org.apache.geode.distributed.ConfigurationProperties.LOG_LEVEL;
 import static org.apache.geode.distributed.ConfigurationProperties.START_LOCATOR;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.BufferedInputStream;
 import java.io.BufferedReader;
@@ -295,10 +294,8 @@ public class SystemAdmin {
       }
 
       try {
-        new TcpClient(
-            asTcpSocketCreator(
-                SocketCreatorFactory
-                    .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        new TcpClient(SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
             InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
             InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer())
                 .stop(addr, port);
diff --git a/geode-core/src/main/java/org/apache/geode/internal/net/SocketCreator.java b/geode-core/src/main/java/org/apache/geode/internal/net/SocketCreator.java
index 439de6a..d937b74 100755
--- a/geode-core/src/main/java/org/apache/geode/internal/net/SocketCreator.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/net/SocketCreator.java
@@ -28,7 +28,6 @@ import java.net.SocketException;
 import java.net.SocketTimeoutException;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
-import java.nio.channels.ServerSocketChannel;
 import java.nio.channels.SocketChannel;
 import java.security.GeneralSecurityException;
 import java.security.KeyStore;
@@ -43,7 +42,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ThreadLocalRandom;
 
 import javax.net.ServerSocketFactory;
 import javax.net.SocketFactory;
@@ -75,6 +73,7 @@ import org.apache.geode.distributed.ClientSocketFactory;
 import org.apache.geode.distributed.internal.DistributionConfig;
 import org.apache.geode.distributed.internal.DistributionConfigImpl;
 import org.apache.geode.distributed.internal.tcpserver.ConnectionWatcher;
+import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreatorImpl;
 import org.apache.geode.internal.ClassPathLoader;
 import org.apache.geode.internal.admin.SSLConfig;
 import org.apache.geode.internal.cache.wan.TransportFilterServerSocket;
@@ -107,7 +106,7 @@ import org.apache.geode.util.internal.GeodeGlossary;
  * Additional properties will be set as System properties to be available as needed by other
  * provider implementations.
  */
-public class SocketCreator {
+public class SocketCreator extends TcpSocketCreatorImpl {
 
   private static final Logger logger = LogService.getLogger();
 
@@ -160,19 +159,7 @@ public class SocketCreator {
    * gemfire.setTcpKeepAlive java system property. If not set then GemFire will enable keep-alive on
    * server->client and p2p connections.
    */
-  public static final boolean ENABLE_TCP_KEEP_ALIVE;
-
-  static {
-    // bug #49484 - customers want tcp/ip keep-alive turned on by default
-    // to avoid dropped connections. It can be turned off by setting this
-    // property to false
-    String str = System.getProperty(GeodeGlossary.GEMFIRE_PREFIX + "setTcpKeepAlive");
-    if (str != null) {
-      ENABLE_TCP_KEEP_ALIVE = Boolean.valueOf(str);
-    } else {
-      ENABLE_TCP_KEEP_ALIVE = true;
-    }
-  }
+  public static final boolean ENABLE_TCP_KEEP_ALIVE = TcpSocketCreatorImpl.ENABLE_TCP_KEEP_ALIVE;
 
   // -------------------------------------------------------------------------
   // Constructor
@@ -539,18 +526,11 @@ public class SocketCreator {
   /**
    * Returns true if this SocketCreator is configured to use SSL.
    */
+  @Override
   public boolean useSSL() {
     return this.sslConfig.isEnabled();
   }
 
-  /**
-   * Return a ServerSocket possibly configured for SSL. SSL configuration is left up to JSSE
-   * properties in java.security file.
-   */
-  public ServerSocket createServerSocket(int nport, int backlog) throws IOException {
-    return createServerSocket(nport, backlog, null);
-  }
-
   public ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr,
       List<GatewayTransportFilter> transportFilters, int socketBufferSize) throws IOException {
     if (transportFilters.isEmpty()) {
@@ -575,62 +555,34 @@ public class SocketCreator {
     }
   }
 
-  /**
-   * Return a ServerSocket possibly configured for SSL. SSL configuration is left up to JSSE
-   * properties in java.security file.
-   */
-  public ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr)
-      throws IOException {
-    return createServerSocket(nport, backlog, bindAddr, -1, sslConfig.isEnabled());
-  }
-
   public ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr,
       int socketBufferSize) throws IOException {
     return createServerSocket(nport, backlog, bindAddr, socketBufferSize, sslConfig.isEnabled());
   }
 
-  private ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr,
+  @Override
+  protected ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr,
       int socketBufferSize, boolean sslConnection) throws IOException {
     printConfig();
-    if (sslConnection) {
-      if (this.sslContext == null) {
-        throw new GemFireConfigException(
-            "SSL not configured correctly, Please look at previous error");
-      }
-      ServerSocketFactory ssf = this.sslContext.getServerSocketFactory();
-      SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket();
-      serverSocket.setReuseAddress(true);
-      // If necessary, set the receive buffer size before binding the socket so
-      // that large buffers will be allocated on accepted sockets (see
-      // java.net.ServerSocket.setReceiverBufferSize javadocs)
-      if (socketBufferSize != -1) {
-        serverSocket.setReceiveBufferSize(socketBufferSize);
-      }
-      serverSocket.bind(new InetSocketAddress(bindAddr, nport), backlog);
-      finishServerSocket(serverSocket);
-      return serverSocket;
-    } else {
-      // log.info("Opening server socket on " + nport, new Exception("SocketCreation"));
-      ServerSocket result = new ServerSocket();
-      result.setReuseAddress(true);
-      // If necessary, set the receive buffer size before binding the socket so
-      // that large buffers will be allocated on accepted sockets (see
-      // java.net.ServerSocket.setReceiverBufferSize javadocs)
-      if (socketBufferSize != -1) {
-        result.setReceiveBufferSize(socketBufferSize);
-      }
-      try {
-        result.bind(new InetSocketAddress(bindAddr, nport), backlog);
-      } catch (BindException e) {
-        BindException throwMe =
-            new BindException(String.format("Failed to create server socket on %s[%s]",
-                bindAddr == null ? InetAddress.getLocalHost() : bindAddr,
-                String.valueOf(nport)));
-        throwMe.initCause(e);
-        throw throwMe;
-      }
-      return result;
+    if (!sslConnection) {
+      return super.createServerSocket(nport, backlog, bindAddr, socketBufferSize, sslConnection);
+    }
+    if (this.sslContext == null) {
+      throw new GemFireConfigException(
+          "SSL not configured correctly, Please look at previous error");
+    }
+    ServerSocketFactory ssf = this.sslContext.getServerSocketFactory();
+    SSLServerSocket serverSocket = (SSLServerSocket) ssf.createServerSocket();
+    serverSocket.setReuseAddress(true);
+    // If necessary, set the receive buffer size before binding the socket so
+    // that large buffers will be allocated on accepted sockets (see
+    // java.net.ServerSocket.setReceiverBufferSize javadocs)
+    if (socketBufferSize != -1) {
+      serverSocket.setReceiveBufferSize(socketBufferSize);
     }
+    serverSocket.bind(new InetSocketAddress(bindAddr, nport), backlog);
+    finishServerSocket(serverSocket);
+    return serverSocket;
   }
 
   /**
@@ -648,60 +600,14 @@ public class SocketCreator {
         tcpPortRange, sslConfig.isEnabled());
   }
 
-  /**
-   * Creates or bind server socket to a random port selected from tcp-port-range which is same as
-   * membership-port-range.
-   *
-   * @param sslConnection whether to connect using SSL
-   *
-   * @return Returns the new server socket.
-   *
-   */
-  public ServerSocket createServerSocketUsingPortRange(InetAddress ba, int backlog,
-      boolean isBindAddress, boolean useNIO, int tcpBufferSize, int[] tcpPortRange,
-      boolean sslConnection) {
+  @Override
+  protected RuntimeException problemCreatingSocketInPortRangeException(String s, IOException e) {
+    return new SystemConnectException(s, e);
+  }
 
-    try {
-      // Get a random port from range.
-      int startingPort = tcpPortRange[0]
-          + ThreadLocalRandom.current().nextInt(tcpPortRange[1] - tcpPortRange[0] + 1);
-      int localPort = startingPort;
-      int portLimit = tcpPortRange[1];
-
-      while (true) {
-        if (localPort > portLimit) {
-          if (startingPort != 0) {
-            localPort = tcpPortRange[0];
-            portLimit = startingPort - 1;
-            startingPort = 0;
-          } else {
-            throw new SystemConnectException(
-                "Unable to find a free port in the membership-port-range");
-          }
-        }
-        ServerSocket socket = null;
-        try {
-          if (useNIO) {
-            ServerSocketChannel channel = ServerSocketChannel.open();
-            socket = channel.socket();
-
-            InetSocketAddress address = new InetSocketAddress(isBindAddress ? ba : null, localPort);
-            socket.bind(address, backlog);
-          } else {
-            socket = this.createServerSocket(localPort, backlog, isBindAddress ? ba : null,
-                tcpBufferSize, sslConnection);
-          }
-          return socket;
-        } catch (java.net.SocketException ex) {
-          if (socket != null && !socket.isClosed()) {
-            socket.close();
-          }
-          localPort++;
-        }
-      }
-    } catch (IOException e) {
-      throw new GemFireConfigException("unable to create a socket in the membership-port range", e);
-    }
+  @Override
+  protected RuntimeException noFreePortException(String reason) {
+    return new GemFireConfigException(reason);
   }
 
   /**
@@ -732,16 +638,6 @@ public class SocketCreator {
    * socket factory
    */
   public Socket connect(InetAddress inetadd, int port, int timeout,
-      ConnectionWatcher optionalWatcher, boolean clientSide) throws IOException {
-    return connect(inetadd, port, timeout, optionalWatcher, clientSide, -1);
-  }
-
-  /**
-   * Return a client socket, timing out if unable to connect and timeout > 0 (millis). The parameter
-   * <i>timeout</i> is ignored if SSL is being used, as there is no timeout argument in the ssl
-   * socket factory
-   */
-  public Socket connect(InetAddress inetadd, int port, int timeout,
       ConnectionWatcher optionalWatcher, boolean clientSide, int socketBufferSize)
       throws IOException {
     return connect(inetadd, port, timeout, optionalWatcher, clientSide, socketBufferSize,
@@ -753,60 +649,47 @@ public class SocketCreator {
    * <i>timeout</i> is ignored if SSL is being used, as there is no timeout argument in the ssl
    * socket factory
    */
+  @Override
   public Socket connect(InetAddress inetadd, int port, int timeout,
       ConnectionWatcher optionalWatcher, boolean clientSide, int socketBufferSize,
       boolean sslConnection) throws IOException {
-    Socket socket = null;
-    SocketAddress sockaddr = new InetSocketAddress(inetadd, port);
+
     printConfig();
-    try {
-      if (sslConnection) {
-        if (this.sslContext == null) {
-          throw new GemFireConfigException(
-              "SSL not configured correctly, Please look at previous error");
-        }
-        SocketFactory sf = this.sslContext.getSocketFactory();
-        socket = sf.createSocket();
 
-        // Optionally enable SO_KEEPALIVE in the OS network protocol.
-        socket.setKeepAlive(ENABLE_TCP_KEEP_ALIVE);
+    if (!sslConnection) {
+      return super.connect(inetadd, port, timeout, optionalWatcher, clientSide, socketBufferSize,
+          sslConnection);
+    }
 
-        // If necessary, set the receive buffer size before connecting the
-        // socket so that large buffers will be allocated on accepted sockets
-        // (see java.net.Socket.setReceiverBufferSize javadocs for details)
-        if (socketBufferSize != -1) {
-          socket.setReceiveBufferSize(socketBufferSize);
-        }
+    // create an SSL connection
 
-        if (optionalWatcher != null) {
-          optionalWatcher.beforeConnect(socket);
-        }
-        socket.connect(sockaddr, Math.max(timeout, 0));
-        configureClientSSLSocket(socket, timeout);
-        return socket;
-      } else {
-        if (clientSide && this.clientSocketFactory != null) {
-          socket = this.clientSocketFactory.createSocket(inetadd, port);
-        } else {
-          socket = new Socket();
+    Socket socket;
+    SocketAddress sockaddr = new InetSocketAddress(inetadd, port);
+    if (this.sslContext == null) {
+      throw new GemFireConfigException(
+          "SSL not configured correctly, Please look at previous error");
+    }
+    SocketFactory sf = this.sslContext.getSocketFactory();
+    socket = sf.createSocket();
 
-          // Optionally enable SO_KEEPALIVE in the OS network protocol.
-          socket.setKeepAlive(ENABLE_TCP_KEEP_ALIVE);
+    // Optionally enable SO_KEEPALIVE in the OS network protocol.
+    socket.setKeepAlive(ENABLE_TCP_KEEP_ALIVE);
 
-          // If necessary, set the receive buffer size before connecting the
-          // socket so that large buffers will be allocated on accepted sockets
-          // (see java.net.Socket.setReceiverBufferSize javadocs for details)
-          if (socketBufferSize != -1) {
-            socket.setReceiveBufferSize(socketBufferSize);
-          }
+    // If necessary, set the receive buffer size before connecting the
+    // socket so that large buffers will be allocated on accepted sockets
+    // (see java.net.Socket.setReceiverBufferSize javadocs for details)
+    if (socketBufferSize != -1) {
+      socket.setReceiveBufferSize(socketBufferSize);
+    }
 
-          if (optionalWatcher != null) {
-            optionalWatcher.beforeConnect(socket);
-          }
-          socket.connect(sockaddr, Math.max(timeout, 0));
-        }
-        return socket;
+    try {
+      if (optionalWatcher != null) {
+        optionalWatcher.beforeConnect(socket);
       }
+      socket.connect(sockaddr, Math.max(timeout, 0));
+      configureClientSSLSocket(socket, timeout);
+      return socket;
+
     } finally {
       if (optionalWatcher != null) {
         optionalWatcher.afterConnect(socket);
@@ -913,33 +796,34 @@ public class SocketCreator {
    * @param timeout the number of milliseconds allowed for the handshake to complete
    */
   public void handshakeIfSocketIsSSL(Socket socket, int timeout) throws IOException {
-    if (socket instanceof SSLSocket) {
-      int oldTimeout = socket.getSoTimeout();
-      socket.setSoTimeout(timeout);
-      SSLSocket sslSocket = (SSLSocket) socket;
-      try {
-        sslSocket.startHandshake();
-      } catch (SSLPeerUnverifiedException ex) {
-        if (this.sslConfig.isRequireAuth()) {
-          logger.fatal(String.format("SSL Error in authenticating peer %s[%s].",
-              socket.getInetAddress(), socket.getPort()), ex);
-          throw ex;
-        }
+    if (!(socket instanceof SSLSocket)) {
+      return;
+    }
+    int oldTimeout = socket.getSoTimeout();
+    socket.setSoTimeout(timeout);
+    SSLSocket sslSocket = (SSLSocket) socket;
+    try {
+      sslSocket.startHandshake();
+    } catch (SSLPeerUnverifiedException ex) {
+      if (this.sslConfig.isRequireAuth()) {
+        logger.fatal(String.format("SSL Error in authenticating peer %s[%s].",
+            socket.getInetAddress(), socket.getPort()), ex);
+        throw ex;
       }
-      // Pre jkd11, startHandshake is throwing SocketTimeoutException.
-      // in jdk 11 it is throwing SSLProtocolException with a cause of SocketTimeoutException.
-      // this is to keep the exception consistent across jdk
-      catch (SSLProtocolException ex) {
-        if (ex.getCause() instanceof SocketTimeoutException) {
-          throw (SocketTimeoutException) ex.getCause();
-        } else {
-          throw ex;
-        }
-      } finally {
-        try {
-          socket.setSoTimeout(oldTimeout);
-        } catch (SocketException ignored) {
-        }
+    }
+    // Pre jkd11, startHandshake is throwing SocketTimeoutException.
+    // in jdk 11 it is throwing SSLProtocolException with a cause of SocketTimeoutException.
+    // this is to keep the exception consistent across jdk
+    catch (SSLProtocolException ex) {
+      if (ex.getCause() instanceof SocketTimeoutException) {
+        throw (SocketTimeoutException) ex.getCause();
+      } else {
+        throw ex;
+      }
+    } finally {
+      try {
+        socket.setSoTimeout(oldTimeout);
+      } catch (SocketException ignored) {
       }
     }
   }
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorRequest.java b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorRequest.java
index 9dd30e9..2ce9a80 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorRequest.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/JmxManagerLocatorRequest.java
@@ -14,8 +14,6 @@
  */
 package org.apache.geode.management.internal;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
-
 import java.io.DataInput;
 import java.io.DataOutput;
 import java.io.IOException;
@@ -86,7 +84,7 @@ public class JmxManagerLocatorRequest implements DataSerializableFixedID {
     SSLConfig sslConfig = SSLConfigurationFactory.getSSLConfigForComponent(sslConfigProps,
         SecurableCommunicationChannel.LOCATOR);
     SocketCreator socketCreator = new SocketCreator(sslConfig);
-    TcpClient client = new TcpClient(asTcpSocketCreator(socketCreator),
+    TcpClient client = new TcpClient(socketCreator,
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
     Object responseFromServer = client.requestToServer(inetSockAddr, SINGLETON, msTimeout, true);
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java b/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
index 1bc8147..6084e38 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/api/GeodeConnectionConfig.java
@@ -16,7 +16,6 @@
 
 package org.apache.geode.management.internal.api;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.net.InetSocketAddress;
 import java.util.List;
@@ -176,8 +175,8 @@ public class GeodeConnectionConfig
     }
     config = ((GemFireCacheImpl) clientCache).getSystem().getConfig();
     TcpClient client =
-        new TcpClient(asTcpSocketCreator(SocketCreatorFactory.setDistributionConfig(config)
-            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        new TcpClient(SocketCreatorFactory.setDistributionConfig(config)
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
             InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
             InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
     cmsInfo = null;
diff --git a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/ClusterConfigurationStatusRetriever.java b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/ClusterConfigurationStatusRetriever.java
index 648ebfd..5e72d0d 100644
--- a/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/ClusterConfigurationStatusRetriever.java
+++ b/geode-core/src/main/java/org/apache/geode/management/internal/configuration/utils/ClusterConfigurationStatusRetriever.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.management.internal.configuration.utils;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -40,9 +39,9 @@ public class ClusterConfigurationStatusRetriever {
 
     final InetAddress networkAddress = InetAddress.getByName(locatorHostName);
 
-    TcpClient client = new TcpClient(asTcpSocketCreator(
+    TcpClient client = new TcpClient(
         new SocketCreator(SSLConfigurationFactory.getSSLConfigForComponent(configProps,
-            SecurableCommunicationChannel.LOCATOR))),
+            SecurableCommunicationChannel.LOCATOR)),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
     SharedConfigurationStatusResponse statusResponse =
diff --git a/geode-junit/src/main/java/org/apache/geode/internal/net/SocketCreatorFailHandshake.java b/geode-junit/src/main/java/org/apache/geode/internal/net/SocketCreatorFailHandshake.java
deleted file mode 100644
index 769e2be..0000000
--- a/geode-junit/src/main/java/org/apache/geode/internal/net/SocketCreatorFailHandshake.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.internal.net;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.util.List;
-
-import javax.net.ssl.SSLException;
-
-import org.apache.geode.internal.admin.SSLConfig;
-
-/*
- * This test class will fail the TLS handshake with an SSLException, by default.
- */
-public class SocketCreatorFailHandshake extends SocketCreator {
-
-  private final List<Integer> socketSoTimeouts;
-  private boolean failTLSHandshake;
-
-  public SocketCreatorFailHandshake(SSLConfig sslConfig, List<Integer> socketTimeouts) {
-    super(sslConfig);
-    this.socketSoTimeouts = socketTimeouts;
-    failTLSHandshake = true;
-  }
-
-  /**
-   * @param failTLSHandshake false will cause the next handshake to NOT throw SSLException
-   */
-  public void setFailTLSHandshake(final boolean failTLSHandshake) {
-    this.failTLSHandshake = failTLSHandshake;
-  }
-
-  @Override
-  public void handshakeIfSocketIsSSL(Socket socket, int timeout) throws IOException {
-    this.socketSoTimeouts.add(timeout);
-    if (failTLSHandshake)
-      throw new SSLException("This is a test SSLException");
-    else
-      super.handshakeIfSocketIsSSL(socket, timeout);
-  }
-}
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipLocator.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipLocator.java
index fd81e92..b96d55b 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipLocator.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipLocator.java
@@ -19,6 +19,7 @@ import java.io.IOException;
 import java.net.SocketAddress;
 
 import org.apache.geode.distributed.internal.tcpserver.TcpHandler;
+import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreator;
 
 public interface MembershipLocator<ID extends MemberIdentifier> {
 
@@ -45,4 +46,6 @@ public interface MembershipLocator<ID extends MemberIdentifier> {
   void addHandler(Class<?> clazz, TcpHandler handler);
 
   boolean isHandled(Class<?> clazz);
+
+  void setSocketCreator(TcpSocketCreator socketCreator);
 }
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipLocatorBuilderImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipLocatorBuilderImpl.java
index cb21986..bbbaab6 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipLocatorBuilderImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipLocatorBuilderImpl.java
@@ -106,10 +106,14 @@ public final class MembershipLocatorBuilderImpl<ID extends MemberIdentifier> imp
   @Override
   public MembershipLocator<ID> create()
       throws UnknownHostException, MembershipConfigurationException {
-    return new MembershipLocatorImpl<ID>(port, bindAddress, protocolChecker,
+    MembershipLocator locator = new MembershipLocatorImpl<ID>(port, bindAddress, protocolChecker,
         executorServiceSupplier,
-        socketCreator, objectSerializer, objectDeserializer, fallbackHandler,
+        objectSerializer, objectDeserializer, fallbackHandler,
         locatorsAreCoordinators, locatorStats, workingDirectory, config);
+    if (socketCreator != null) {
+      locator.setSocketCreator(socketCreator);
+    }
+    return locator;
   }
 
 }
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/MembershipLocatorImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/MembershipLocatorImpl.java
index bda5ec0..f764b47 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/MembershipLocatorImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/locator/MembershipLocatorImpl.java
@@ -55,10 +55,12 @@ public class MembershipLocatorImpl<ID extends MemberIdentifier> implements Membe
   private final GMSLocator<ID> gmsLocator;
   private final TcpClient locatorClient;
 
+  private TcpSocketCreator socketCreator;
+
   public MembershipLocatorImpl(int port, InetAddress bindAddress,
       ProtocolChecker protocolChecker,
       Supplier<ExecutorService> executorServiceSupplier,
-      TcpSocketCreator socketCreator, ObjectSerializer objectSerializer,
+      ObjectSerializer objectSerializer,
       ObjectDeserializer objectDeserializer,
       TcpHandler fallbackHandler,
       boolean locatorsAreCoordinators,
@@ -153,6 +155,11 @@ public class MembershipLocatorImpl<ID extends MemberIdentifier> implements Membe
     return this.handler.isHandled(clazz);
   }
 
+  @Override
+  public void setSocketCreator(TcpSocketCreator socketCreator) {
+    this.socketCreator = socketCreator;
+  }
+
   public void stop() {
     if (isAlive()) {
       logger.info("Stopping {}", this);
diff --git a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerGossipVersionDUnitTest.java b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerGossipVersionDUnitTest.java
index a3076aa..b283358 100644
--- a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerGossipVersionDUnitTest.java
+++ b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerGossipVersionDUnitTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.distributed.internal.tcpserver;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
 import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.fail;
 
@@ -146,10 +145,8 @@ public class TcpServerGossipVersionDUnitTest extends JUnit4DistributedTestCase {
           new InternalDistributedMember("localhost", 1234));
       FindCoordinatorResponse response;
 
-      response = (FindCoordinatorResponse) new TcpClient(
-          asTcpSocketCreator(
-              SocketCreatorFactory
-                  .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+      response = (FindCoordinatorResponse) new TcpClient(SocketCreatorFactory
+          .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
           InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
           InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer())
               .requestToServer(LocalHostUtil.getLocalHost(), port0, req, 5000);
diff --git a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java
index 6e73366..a0947e5 100644
--- a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java
+++ b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerJUnitTest.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.distributed.internal.tcpserver;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
@@ -96,9 +95,8 @@ public class TcpServerJUnitTest {
         () -> CoreLoggingExecutors.newThreadPoolWithSynchronousFeed("locator request thread ",
             InternalLocator.MAX_POOL_SIZE, stats, InternalLocator.POOL_IDLE_TIMEOUT,
             new ThreadPoolExecutor.CallerRunsPolicy()),
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer(),
         GeodeGlossary.GEMFIRE_PREFIX + "TcpServer.READ_TIMEOUT",
@@ -150,10 +148,8 @@ public class TcpServerJUnitTest {
   }
 
   private TcpClient createTcpClient() {
-    return new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    return new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerProductVersionDUnitTest.java b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerProductVersionDUnitTest.java
index a00e3c7..e98cbf8 100644
--- a/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerProductVersionDUnitTest.java
+++ b/geode-tcp-server/src/distributedTest/java/org/apache/geode/distributed/internal/tcpserver/TcpServerProductVersionDUnitTest.java
@@ -17,7 +17,6 @@ package org.apache.geode.distributed.internal.tcpserver;
 import static org.apache.geode.distributed.ConfigurationProperties.ENABLE_CLUSTER_CONFIGURATION;
 import static org.apache.geode.distributed.ConfigurationProperties.NAME;
 import static org.apache.geode.distributed.ConfigurationProperties.USE_CLUSTER_CONFIGURATION;
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import java.io.File;
@@ -198,9 +197,8 @@ public class TcpServerProductVersionDUnitTest implements Serializable {
         .setDistributionConfig(new DistributionConfigImpl(getDistributedSystemProperties()));
 
     return new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+        SocketCreatorFactory
+            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/ConnectionWatcher.java b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/ConnectionWatcher.java
deleted file mode 100755
index a68da56..0000000
--- a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/ConnectionWatcher.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-package org.apache.geode.distributed.internal.tcpserver;
-
-import java.net.Socket;
-
-/**
- * ConnectionWatcher is used to observe tcp/ip connection formation in SockCreator implementations.
- *
- *
- */
-public interface ConnectionWatcher {
-  /**
-   * this is invoked with the connecting socket just prior to issuing a connect() call. It can be
-   * used to start another thread or task to monitor the connection attempt.
-   */
-  void beforeConnect(Socket socket);
-
-  /**
-   * this is invoked after the connection attempt has finished. It can be used to cancel the task
-   * started by beforeConnect
-   */
-  void afterConnect(Socket socket);
-}
diff --git a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
index 70548ee..26793e0 100755
--- a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
+++ b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
@@ -149,7 +149,11 @@ public class TcpServer {
     this.executor = executorServiceSupplier.get();
     this.threadName = threadName;
     this.nanoTimeSupplier = nanoTimeSupplier;
-    this.socketCreator = socketCreator;
+    if (socketCreator == null) {
+      this.socketCreator = new TcpSocketCreatorImpl();
+    } else {
+      this.socketCreator = socketCreator;
+    }
     this.objectSerializer = objectSerializer;
     this.objectDeserializer = objectDeserializer;
     readTimeout = Integer.getInteger(readTimeoutPropertyName, 60 * 1000);
diff --git a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpSocketCreator.java b/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpSocketCreator.java
deleted file mode 100644
index 11b7876..0000000
--- a/geode-tcp-server/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpSocketCreator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more contributor license
- * agreements. See the NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the License. You may obtain a
- * copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package org.apache.geode.distributed.internal.tcpserver;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.ServerSocket;
-import java.net.Socket;
-
-
-/**
- * Create sockets for TcpServer (and TcpClient).
- */
-public interface TcpSocketCreator {
-  boolean useSSL();
-
-  ServerSocket createServerSocket(int nport, int backlog) throws IOException;
-
-  ServerSocket createServerSocket(int nport, int backlog, InetAddress bindAddr)
-      throws IOException;
-
-  ServerSocket createServerSocketUsingPortRange(InetAddress ba, int backlog,
-      boolean isBindAddress, boolean useNIO, int tcpBufferSize, int[] tcpPortRange,
-      boolean sslConnection) throws IOException;
-
-  Socket connect(InetAddress inetadd, int port, int timeout,
-      ConnectionWatcher optionalWatcher, boolean clientSide) throws IOException;
-
-  Socket connect(InetAddress inetadd, int port, int timeout,
-      ConnectionWatcher optionalWatcher, boolean clientSide, int socketBufferSize,
-      boolean sslConnection) throws IOException;
-
-  void handshakeIfSocketIsSSL(Socket socket, int timeout) throws IOException;
-
-}
diff --git a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorDiscovery.java b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorDiscovery.java
index a0aefda..ce1c7e2 100644
--- a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorDiscovery.java
+++ b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorDiscovery.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.cache.client.internal.locator.wan;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.IOException;
 import java.util.concurrent.ConcurrentHashMap;
@@ -66,10 +65,8 @@ public class LocatorDiscovery {
     this.locatorId = locator;
     this.request = request;
     this.locatorListener = locatorListener;
-    this.locatorClient = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    this.locatorClient = new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorMembershipListenerImpl.java b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorMembershipListenerImpl.java
index d0eaf58..31315ed 100644
--- a/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorMembershipListenerImpl.java
+++ b/geode-wan/src/main/java/org/apache/geode/cache/client/internal/locator/wan/LocatorMembershipListenerImpl.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.cache.client.internal.locator.wan;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.util.Arrays;
 import java.util.HashMap;
@@ -62,10 +61,8 @@ public class LocatorMembershipListenerImpl implements LocatorMembershipListener
       new ConcurrentHashMap<>();
 
   LocatorMembershipListenerImpl() {
-    this.tcpClient = new TcpClient(
-        asTcpSocketCreator(
-            SocketCreatorFactory
-                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+    this.tcpClient = new TcpClient(SocketCreatorFactory
+        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
         InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
         InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
   }
diff --git a/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/AbstractRemoteGatewaySender.java b/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/AbstractRemoteGatewaySender.java
index 24159b2..a728d8f 100644
--- a/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/AbstractRemoteGatewaySender.java
+++ b/geode-wan/src/main/java/org/apache/geode/internal/cache/wan/AbstractRemoteGatewaySender.java
@@ -14,7 +14,6 @@
  */
 package org.apache.geode.internal.cache.wan;
 
-import static org.apache.geode.distributed.internal.membership.adapter.TcpSocketCreatorAdapter.asTcpSocketCreator;
 
 import java.io.IOException;
 import java.net.ConnectException;
@@ -81,10 +80,8 @@ public abstract class AbstractRemoteGatewaySender extends AbstractGatewaySender
       DistributionLocatorId locatorID = new DistributionLocatorId(localLocator);
       try {
         RemoteLocatorResponse response =
-            (RemoteLocatorResponse) new TcpClient(
-                asTcpSocketCreator(
-                    SocketCreatorFactory
-                        .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR)),
+            (RemoteLocatorResponse) new TcpClient(SocketCreatorFactory
+                .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
                 InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
                 InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer())
                     .requestToServer(locatorID.getHost(), request,