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/30 23:31:26 UTC

[geode] branch feature/GEODE-7742b created (now 1c370b9)

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

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


      at 1c370b9  move GMSLocatorRecoveryIntegrationTest to geode-membership

This branch includes the following new commits:

     new 12ebf4e  GEODE-7742: move membership unit tests to geode-membership
     new 150d052  move JGroupsMessengerJUnitTest
     new 33850bb  move GMSJoinLeaveJUnitTest to geode-membership
     new 1c370b9  move GMSLocatorRecoveryIntegrationTest to geode-membership

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[geode] 03/04: move GMSJoinLeaveJUnitTest to geode-membership

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 33850bb3b115f2a7e3ef4893a342cdb3c0704691
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Thu Jan 30 14:07:56 2020 -0800

    move GMSJoinLeaveJUnitTest to geode-membership
---
 .../gms/membership/GMSJoinLeaveTestHelper.java     | 68 -------------------
 .../gms/membership/GMSJoinLeaveJUnitTest.java      | 76 ++++++++++------------
 2 files changed, 34 insertions(+), 110 deletions(-)

diff --git a/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveTestHelper.java b/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveTestHelper.java
deleted file mode 100755
index ca4e98d..0000000
--- a/geode-dunit/src/main/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveTestHelper.java
+++ /dev/null
@@ -1,68 +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.membership;
-
-
-import org.apache.geode.distributed.Locator;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.test.awaitility.GeodeAwaitility;
-import org.apache.geode.test.dunit.WaitCriterion;
-
-public class GMSJoinLeaveTestHelper {
-
-  public static void becomeCoordinatorForTest(GMSJoinLeave gmsJoinLeave) {
-    synchronized (gmsJoinLeave.getViewInstallationLock()) {
-      gmsJoinLeave.becomeCoordinator();
-    }
-  }
-
-  private static void waitCriterion() {
-    WaitCriterion waitCriterion = new WaitCriterion() {
-      @Override
-      public boolean done() {
-        try {
-          return getIDS() != null;
-        } catch (Exception e) {
-          e.printStackTrace();
-        }
-        return false; // NOTREACHED
-      }
-
-      @Override
-      public String description() {
-        return "Distributed system is null";
-      }
-    };
-    GeodeAwaitility.await().untilAsserted(waitCriterion);
-  }
-
-  public static InternalDistributedSystem getInternalDistributedSystem() {
-    waitCriterion();
-    return getIDS();
-  }
-
-  private static InternalDistributedSystem getIDS() {
-    InternalDistributedSystem distributedSystem = InternalDistributedSystem.getAnyInstance();
-    if (distributedSystem == null) {
-      Locator locator = Locator.getLocator();
-      if (locator == null) {
-        return null;
-      }
-      return (InternalDistributedSystem) locator.getDistributedSystem();
-    } else {
-      return distributedSystem;
-    }
-  }
-}
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
similarity index 96%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
index 82818f3..80c1926 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java
@@ -40,7 +40,6 @@ import java.net.InetSocketAddress;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -55,14 +54,11 @@ import org.junit.experimental.categories.Category;
 import org.mockito.internal.verification.Times;
 import org.mockito.verification.Timeout;
 
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.adapter.ServiceConfig;
 import org.apache.geode.distributed.internal.membership.api.Authenticator;
-import org.apache.geode.distributed.internal.membership.api.MemberData;
 import org.apache.geode.distributed.internal.membership.api.MemberDataBuilder;
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
-import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFactory;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFactoryImpl;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierImpl;
 import org.apache.geode.distributed.internal.membership.api.MemberStartupException;
 import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
 import org.apache.geode.distributed.internal.membership.api.MembershipConfigurationException;
@@ -86,9 +82,9 @@ import org.apache.geode.distributed.internal.membership.gms.messages.LeaveReques
 import org.apache.geode.distributed.internal.membership.gms.messages.NetworkPartitionMessage;
 import org.apache.geode.distributed.internal.membership.gms.messages.RemoveMemberMessage;
 import org.apache.geode.distributed.internal.membership.gms.messages.ViewAckMessage;
+import org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil;
 import org.apache.geode.distributed.internal.tcpserver.TcpClient;
 import org.apache.geode.internal.serialization.Version;
-import org.apache.geode.security.AuthenticationFailedException;
 import org.apache.geode.test.junit.categories.MembershipTest;
 
 @Category({MembershipTest.class})
@@ -120,7 +116,7 @@ public class GMSJoinLeaveJUnitTest {
 
   public void initMocks(boolean enableNetworkPartition, boolean useTestGMSJoinLeave)
       throws Exception {
-    mockConfig = mock(ServiceConfig.class);
+    mockConfig = mock(MembershipConfig.class);
     when(mockConfig.isNetworkPartitionDetectionEnabled()).thenReturn(enableNetworkPartition);
     when(mockConfig.getSecurityUDPDHAlgo()).thenReturn("");
     when(mockConfig.getStartLocator()).thenReturn("localhost[12345]");
@@ -145,17 +141,7 @@ public class GMSJoinLeaveJUnitTest {
     when(services.getManager()).thenReturn(manager);
     when(services.getHealthMonitor()).thenReturn(healthMonitor);
     when(services.getMemberFactory())
-        .thenReturn(new MemberIdentifierFactory<InternalDistributedMember>() {
-          @Override
-          public InternalDistributedMember create(MemberData memberInfo) {
-            return new InternalDistributedMember(memberInfo);
-          }
-
-          @Override
-          public Comparator<InternalDistributedMember> getComparator() {
-            return InternalDistributedMember::compareTo;
-          }
-        });
+        .thenReturn(new MemberIdentifierFactoryImpl());
 
     gmsJoinLeaveMemberId = services.getMemberFactory().create(
         MemberDataBuilder.newBuilderForLocalHost("localhost")
@@ -172,7 +158,7 @@ public class GMSJoinLeaveJUnitTest {
     Timer t = new Timer(true);
     when(services.getTimer()).thenReturn(t);
 
-    mockMembers = new InternalDistributedMember[4];
+    mockMembers = new MemberIdentifier[4];
     for (int i = 0; i < mockMembers.length; i++) {
       mockMembers[i] = services.getMemberFactory().create(
           MemberDataBuilder.newBuilderForLocalHost("localhost")
@@ -181,7 +167,7 @@ public class GMSJoinLeaveJUnitTest {
     mockOldMember = services.getMemberFactory().create(
         MemberDataBuilder.newBuilderForLocalHost("localhost")
             .setMembershipPort(8700).build());
-    ((InternalDistributedMember) mockOldMember).setVersionObjectForTest(Version.GFE_56);
+    ((MemberIdentifierImpl) mockOldMember).setVersionObjectForTest(Version.GFE_56);
     locatorClient = mock(TcpClient.class);
 
     if (useTestGMSJoinLeave) {
@@ -297,7 +283,7 @@ public class GMSJoinLeaveJUnitTest {
   @Test
   public void testViewWithoutMemberInitiatesForcedDisconnect() throws Exception {
     initMocks();
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     List<MemberIdentifier> members = Arrays.asList(mockMembers);
     GMSMembershipView v = new GMSMembershipView(mockMembers[0], 2, members);
     InstallViewMessage message = getInstallViewMessage(v, null, false);
@@ -310,7 +296,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testProcessJoinMessageWithBadAuthentication() throws Exception {
     initMocks();
     when(authenticator.authenticate(mockMembers[0], credentials))
-        .thenThrow(new AuthenticationFailedException("we want to fail auth here"));
+        .thenThrow(new SecurityException("we want to fail auth here"));
 
     gmsJoinLeave
         .processMessage(new JoinRequestMessage(mockMembers[0], mockMembers[0], credentials, -1, 0));
@@ -323,7 +309,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testProcessJoinMessageWithAuthenticationButNullCredentials() throws Exception {
     initMocks();
     when(authenticator.authenticate(mockMembers[0], null))
-        .thenThrow(new AuthenticationFailedException("we want to fail auth here"));
+        .thenThrow(new SecurityException("we want to fail auth here"));
 
     gmsJoinLeave
         .processMessage(new JoinRequestMessage(mockMembers[0], mockMembers[0], null, -1, 0));
@@ -337,7 +323,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testProcessJoinResponseIsRecorded() throws Exception {
     initMocks();
     when(authenticator.authenticate(mockMembers[0], null))
-        .thenThrow(new AuthenticationFailedException("we want to fail auth here"));
+        .thenThrow(new SecurityException("we want to fail auth here"));
 
     JoinResponseMessage[] joinResponse = gmsJoinLeave.getJoinResponseMessage();
 
@@ -422,7 +408,7 @@ public class GMSJoinLeaveJUnitTest {
 
     gmsJoinLeave.delayViewCreationForTest(5000); // ensures multiple requests are queued for a view
                                                  // change
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     await()
         .until(() -> gmsJoinLeave.getView() != null);
@@ -495,7 +481,7 @@ public class GMSJoinLeaveJUnitTest {
     prepareAndInstallView(mockMembers[0], createMemberList(mockMembers[0], gmsJoinLeaveMemberId));
     // test that a non-member can't remove another member
     RemoveMemberMessage msg = new RemoveMemberMessage(mockMembers[0], mockMembers[1], reason);
-    msg.setSender(new InternalDistributedMember("localhost", 9000));
+    msg.setSender(MemberIdentifierUtil.createMemberID(9000));
     gmsJoinLeave.processMessage(msg);
     assertTrue("RemoveMemberMessage should not have been added to view requests",
         gmsJoinLeave.getViewRequests().size() == 0);
@@ -508,7 +494,7 @@ public class GMSJoinLeaveJUnitTest {
     gmsJoinLeave.unitTesting.add("noRandomViewChange");
     prepareAndInstallView(gmsJoinLeaveMemberId,
         createMemberList(gmsJoinLeaveMemberId, mockMembers[0]));
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     LeaveRequestMessage msg =
         new LeaveRequestMessage(gmsJoinLeave.getMemberID(), mockMembers[0], reason);
@@ -535,7 +521,7 @@ public class GMSJoinLeaveJUnitTest {
         createMemberList(gmsJoinLeaveMemberId, mockMembers[0]));
     gmsJoinLeave.getView().add(mockMembers[1]);
     gmsJoinLeave.unitTesting.add("noRandomViewChange");
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     RemoveMemberMessage msg =
         new RemoveMemberMessage(gmsJoinLeave.getMemberID(), mockMembers[0], reason);
     msg.setSender(mockMembers[0]);
@@ -563,7 +549,7 @@ public class GMSJoinLeaveJUnitTest {
     prepareAndInstallView(gmsJoinLeaveMemberId,
         createMemberList(gmsJoinLeaveMemberId, mockMembers[0]));
     gmsJoinLeave.getView().add(mockMembers[1]);
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     JoinRequestMessage msg =
         new JoinRequestMessage(gmsJoinLeaveMemberId, mockMembers[2], null, -1, 0);
     msg.setSender(mockMembers[2]);
@@ -615,7 +601,7 @@ public class GMSJoinLeaveJUnitTest {
         createMemberList(gmsJoinLeaveMemberId, mockMembers[0], mockMembers[1]));
     reset(messenger);
     RemoveMemberMessage msg = new RemoveMemberMessage(gmsJoinLeaveMemberId,
-        new InternalDistributedMember("localhost", 10000), "removing for test");
+        MemberIdentifierUtil.createMemberID(10000), "removing for test");
     msg.setSender(mockMembers[0]);
     gmsJoinLeave.processMessage(msg);
     verify(messenger).send(isA(RemoveMemberMessage.class));
@@ -691,7 +677,7 @@ public class GMSJoinLeaveJUnitTest {
   @Test
   public void testBecomeCoordinatorOnStartup() throws Exception {
     initMocks();
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     await().until(() -> gmsJoinLeave.isCoordinator());
   }
 
@@ -835,7 +821,7 @@ public class GMSJoinLeaveJUnitTest {
     GMSMembershipView oldView = gmsJoinLeave.getView();
     oldView.add(gmsJoinLeaveMemberId);
     MemberIdentifier creator = oldView.getCreator();
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     GMSMembershipView view = new GMSMembershipView(2, gmsJoinLeave.getView().getViewId() + 1);
     view.setCreator(creator);
     view.add(creator);
@@ -894,7 +880,7 @@ public class GMSJoinLeaveJUnitTest {
   @Test
   public void testNetworkPartitionMessageReceived() throws Exception {
     initMocks();
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     NetworkPartitionMessage message = new NetworkPartitionMessage();
     gmsJoinLeave.processMessage(message);
     verify(manager).forceDisconnect(isA(String.class));
@@ -1048,7 +1034,7 @@ public class GMSJoinLeaveJUnitTest {
     // create the GMSJoinLeave instance we'll be testing
     initMocks(false);
     MemberIdentifier otherMember = mockMembers[0];
-    gmsJoinLeaveMemberId.setVmKind(ClusterDistributionManager.NORMAL_DM_TYPE);
+    gmsJoinLeaveMemberId.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
     List<MemberIdentifier> members = createMemberList(gmsJoinLeaveMemberId, otherMember);
     prepareAndInstallView(gmsJoinLeaveMemberId, members);
     GMSMembershipView installedView = gmsJoinLeave.getView();
@@ -1056,9 +1042,9 @@ public class GMSJoinLeaveJUnitTest {
     gmsJoinLeave.unitTesting.add("noRandomViewChange"); // keep view numbers predictable
 
     // create a view coming from the locator that conflicts with the installed view
-    MemberIdentifier locatorMemberId = new InternalDistributedMember("localhost",
+    MemberIdentifier locatorMemberId = MemberIdentifierUtil.createMemberID(
         mockMembers[mockMembers.length - 1].getMembershipPort() + 1);
-    locatorMemberId.setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+    locatorMemberId.setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
     List<MemberIdentifier> newMemberList = new ArrayList<>(members);
     newMemberList.add(locatorMemberId);
     GMSMembershipView locatorView =
@@ -1132,7 +1118,7 @@ public class GMSJoinLeaveJUnitTest {
     gmsJoinLeaveMemberId.setVmViewId(1);
     members.add(gmsJoinLeaveMemberId);
     prepareAndInstallView(gmsJoinLeaveMemberId, members);
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
     GMSJoinLeave.ViewBroadcaster b = gmsJoinLeave.new ViewBroadcaster();
     b.run();
     verify(messenger).sendUnreliably(isA(InstallViewMessage.class));
@@ -1351,7 +1337,7 @@ public class GMSJoinLeaveJUnitTest {
     InstallViewMessage msg = getInstallViewMessage(preparedView, null, true);
     gmsJoinLeave.processMessage(msg);
 
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     Thread.sleep(2000);
     ViewCreator vc = gmsJoinLeave.getViewCreator();
@@ -1398,7 +1384,7 @@ public class GMSJoinLeaveJUnitTest {
     InstallViewMessage msg = getInstallViewMessage(preparedView, null, true);
     gmsJoinLeave.processMessage(msg);
 
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     Thread.sleep(2000);
     ViewCreator vc = gmsJoinLeave.getViewCreator();
@@ -1528,7 +1514,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testRemoveRequestWhileWaitingForFinalResponse() throws Exception {
     initMocks(true, true);
 
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     installView();
 
@@ -1551,7 +1537,7 @@ public class GMSJoinLeaveJUnitTest {
   public void testLeaveRequestWhileWaitingForFinalResponse() throws Exception {
     initMocks(true, true);
 
-    GMSJoinLeaveTestHelper.becomeCoordinatorForTest(gmsJoinLeave);
+    becomeCoordinatorForTest(gmsJoinLeave);
 
     installView();
 
@@ -1589,6 +1575,12 @@ public class GMSJoinLeaveJUnitTest {
     }
   }
 
+  private void becomeCoordinatorForTest(GMSJoinLeave gmsJoinLeave) {
+    synchronized (gmsJoinLeave.getViewInstallationLock()) {
+      gmsJoinLeave.becomeCoordinator();
+    }
+  }
+
   private void installView() throws Exception {
     final int viewInstallationTime = 15000;
 


[geode] 01/04: GEODE-7742: move membership unit tests to geode-membership

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 12ebf4ec4fd8cf3b7187c9662561203ec6320e2a
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Thu Jan 30 13:01:45 2020 -0800

    GEODE-7742: move membership unit tests to geode-membership
    
    Moving health monitor test to geode-membership
---
 .../membership/GMSMembershipViewJUnitTest.java     |   2 +-
 .../membership/gms/GMSMembershipJUnitTest.java     |   2 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |  94 +++++++-----------
 .../gms/messenger/GMSEncryptJUnitTest.java         |   2 +-
 .../gms/messenger/GMSQuorumCheckerJUnitTest.java   |   4 +-
 ...pAddressUtil.java => MemberIdentifierUtil.java} |   2 +-
 ...sNoOp.java => DefaultMembershipStatistics.java} | 105 +++++++++++++--------
 .../membership/gms/MembershipBuilderImpl.java      |   2 +-
 8 files changed, 108 insertions(+), 105 deletions(-)

diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
index 006ee53..65e66b9 100755
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.distributed.internal.membership;
 
-import static org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil.createMemberID;
+import static org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil.createMemberID;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java
index 8e3f614..428653f 100644
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.distributed.internal.membership.gms;
 
-import static org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil.createMemberID;
+import static org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil.createMemberID;
 import static org.apache.geode.internal.serialization.DataSerializableFixedID.HIGH_PRIORITY_ACKED_MESSAGE;
 import static org.apache.geode.test.awaitility.GeodeAwaitility.await;
 import static org.assertj.core.api.Assertions.assertThat;
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
similarity index 92%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
index 6ddf75b..9b8e7a3 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
@@ -14,15 +14,6 @@
  */
 package org.apache.geode.distributed.internal.membership.gms.fd;
 
-import static org.apache.geode.distributed.ConfigurationProperties.ACK_SEVERE_ALERT_THRESHOLD;
-import static org.apache.geode.distributed.ConfigurationProperties.ACK_WAIT_THRESHOLD;
-import static org.apache.geode.distributed.ConfigurationProperties.DISABLE_TCP;
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-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.ConfigurationProperties.MEMBER_TIMEOUT;
 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;
@@ -52,7 +43,6 @@ import java.net.UnknownHostException;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
-import java.util.Properties;
 import java.util.Set;
 import java.util.Timer;
 import java.util.concurrent.locks.Condition;
@@ -67,22 +57,15 @@ import org.junit.experimental.categories.Category;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 
-import org.apache.geode.DataSerializer;
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
-import org.apache.geode.distributed.internal.DistributionConfig;
-import org.apache.geode.distributed.internal.DistributionConfigImpl;
-import org.apache.geode.distributed.internal.DistributionManager;
-import org.apache.geode.distributed.internal.DistributionStats;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.adapter.ServiceConfig;
 import org.apache.geode.distributed.internal.membership.api.MemberData;
 import org.apache.geode.distributed.internal.membership.api.MemberDataBuilder;
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFactoryImpl;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierImpl;
 import org.apache.geode.distributed.internal.membership.api.MemberStartupException;
 import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
 import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
+import org.apache.geode.distributed.internal.membership.gms.DefaultMembershipStatistics;
 import org.apache.geode.distributed.internal.membership.gms.Services;
 import org.apache.geode.distributed.internal.membership.gms.Services.Stopper;
 import org.apache.geode.distributed.internal.membership.gms.fd.GMSHealthMonitor.ClientSocketHandler;
@@ -94,11 +77,11 @@ import org.apache.geode.distributed.internal.membership.gms.messages.HeartbeatMe
 import org.apache.geode.distributed.internal.membership.gms.messages.HeartbeatRequestMessage;
 import org.apache.geode.distributed.internal.membership.gms.messages.SuspectMembersMessage;
 import org.apache.geode.distributed.internal.membership.gms.messages.SuspectRequest;
-import org.apache.geode.internal.HeapDataOutputStream;
-import org.apache.geode.internal.InternalDataSerializer;
-import org.apache.geode.internal.net.SocketCreatorFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil;
+import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreatorImpl;
+import org.apache.geode.internal.serialization.BufferDataOutputStream;
 import org.apache.geode.internal.serialization.Version;
+import org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl;
 import org.apache.geode.test.junit.categories.MembershipTest;
 
 @Category({MembershipTest.class})
@@ -106,50 +89,49 @@ public class GMSHealthMonitorJUnitTest {
 
   private Services services;
   private MembershipConfig mockConfig;
-  private DistributionConfig mockDistConfig;
   private List<MemberIdentifier> mockMembers;
   private Messenger messenger;
   private JoinLeave joinLeave;
   private GMSHealthMonitor gmsHealthMonitor;
   private Manager manager;
-  private long statsId = 123;
   final long memberTimeout = 1000l;
   private int[] portRange = new int[] {0, 65535};
   private boolean useGMSHealthMonitorTestClass = false;
   private boolean simulateHeartbeatInGMSHealthMonitorTestClass = true;
   private boolean allowSelfCheckToSucceed = true;
   private final int myAddressIndex = 3;
+  private DSFIDSerializerImpl dsfidSerializer;
 
   @Before
   public void initMocks() throws MemberStartupException {
     // ensure that Geode's serialization and version are initialized
     Version currentVersion = Version.CURRENT;
-    InternalDataSerializer.getDSFIDSerializer();
+    dsfidSerializer = new DSFIDSerializerImpl();
+    Services.registerSerializables(dsfidSerializer);
 
     // System.setProperty("gemfire.bind-address", "localhost");
-    mockDistConfig = mock(DistributionConfig.class);
-    mockConfig = mock(ServiceConfig.class);
+    mockConfig = mock(MembershipConfig.class);
     messenger = mock(Messenger.class);
     joinLeave = mock(JoinLeave.class);
     manager = mock(Manager.class);
     services = mock(Services.class);
     Stopper stopper = mock(Stopper.class);
 
-    Properties nonDefault = new Properties();
-    nonDefault.put(ACK_WAIT_THRESHOLD, "1");
-    nonDefault.put(ACK_SEVERE_ALERT_THRESHOLD, "10");
-    nonDefault.put(DISABLE_TCP, "true");
-    nonDefault.put(MCAST_PORT, "0");
-    nonDefault.put(MCAST_TTL, "0");
-    nonDefault.put(LOG_FILE, "");
-    nonDefault.put(LOG_LEVEL, "fine");
-    nonDefault.put(MEMBER_TIMEOUT, "" + memberTimeout);
-    nonDefault.put(LOCATORS, "localhost[10344]");
-    DistributionManager dm = mock(DistributionManager.class);
-    SocketCreatorFactory.setDistributionConfig(new DistributionConfigImpl(new Properties()));
-    InternalDistributedSystem system = new InternalDistributedSystem.BuilderForTesting(nonDefault)
-        .setDistributionManager(dm)
-        .build();
+    // nonDefault.put(ACK_WAIT_THRESHOLD, "1");
+    // nonDefault.put(ACK_SEVERE_ALERT_THRESHOLD, "10");
+    // nonDefault.put(DISABLE_TCP, "true");
+    // nonDefault.put(MCAST_PORT, "0");
+    // nonDefault.put(MCAST_TTL, "0");
+    // nonDefault.put(LOG_FILE, "");
+    // nonDefault.put(LOG_LEVEL, "fine");
+    // nonDefault.put(MEMBER_TIMEOUT, "" + memberTimeout);
+    // nonDefault.put(LOCATORS, "localhost[10344]");
+    // DistributionManager dm = mock(DistributionManager.class);
+    // SocketCreatorFactory.setDistributionConfig(new DistributionConfigImpl(new Properties()));
+    // InternalDistributedSystem system = new
+    // InternalDistributedSystem.BuilderForTesting(nonDefault)
+    // .setDistributionManager(dm)
+    // .build();
 
     when(mockConfig.getMemberTimeout()).thenReturn(memberTimeout);
     when(mockConfig.getMembershipPortRange()).thenReturn(portRange);
@@ -158,7 +140,7 @@ public class GMSHealthMonitorJUnitTest {
     when(services.getJoinLeave()).thenReturn(joinLeave);
     when(services.getCancelCriterion()).thenReturn(stopper);
     when(services.getManager()).thenReturn(manager);
-    when(services.getStatistics()).thenReturn(new DistributionStats(system, statsId));
+    when(services.getStatistics()).thenReturn(new DefaultMembershipStatistics());
     when(services.getTimer()).thenReturn(new Timer("Geode Membership Timer", true));
     when(stopper.isCancelInProgress()).thenReturn(false);
     when(services.getMemberFactory()).thenReturn(new MemberIdentifierFactoryImpl());
@@ -166,10 +148,10 @@ public class GMSHealthMonitorJUnitTest {
     if (mockMembers == null) {
       mockMembers = new ArrayList<>();
       for (int i = 0; i < 7; i++) {
-        MemberIdentifier mbr = new InternalDistributedMember("localhost", 8888 + i);
+        MemberIdentifier mbr = MemberIdentifierUtil.createMemberID(8888 + i);
 
         if (i == 0 || i == 1) {
-          mbr.setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+          mbr.setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
           mbr.setPreferredForCoordinator(true);
         }
         mockMembers.add(mbr);
@@ -185,21 +167,17 @@ public class GMSHealthMonitorJUnitTest {
   @After
   public void tearDown() {
     gmsHealthMonitor.stop();
-    SocketCreatorFactory.close();
     // System.getProperties().remove("gemfire.bind-address");
   }
 
   @Test
   public void testHMServiceStarted() throws Exception {
 
-    MemberIdentifier mbr =
-        new InternalDistributedMember("localhost", 12345);
+    MemberIdentifier mbr = MemberIdentifierUtil.createMemberID(12345);
     mbr.setVmViewId(1);
     when(messenger.getMemberID()).thenReturn(mbr);
     gmsHealthMonitor.started();
 
-    GMSMembershipView v = new GMSMembershipView(mbr, 1, mockMembers);
-
     gmsHealthMonitor.processMessage(new HeartbeatRequestMessage(mbr, 1));
     verify(messenger, atLeastOnce()).send(any(HeartbeatMessage.class));
     assertEquals(1, gmsHealthMonitor.getStats().getHeartbeatRequestsReceived());
@@ -612,7 +590,7 @@ public class GMSHealthMonitorJUnitTest {
       gmsHealthMonitor.setNextNeighbor(v, memberToCheck);
       assertNotEquals(memberToCheck, gmsHealthMonitor.getNextNeighbor());
 
-      ((InternalDistributedMember) mockMembers.get(0)).setVersionObjectForTest(Version.GEODE_1_3_0);
+      ((MemberIdentifierImpl) mockMembers.get(0)).setVersionObjectForTest(Version.GEODE_1_3_0);
       boolean retVal = gmsHealthMonitor.inlineCheckIfAvailable(mockMembers.get(0), v, true,
           memberToCheck, "Not responding");
 
@@ -627,14 +605,15 @@ public class GMSHealthMonitorJUnitTest {
   @Test
   public void testFinalCheckPassedMessageCanBeSerializedAndDeserialized()
       throws IOException, ClassNotFoundException {
-    HeapDataOutputStream heapDataOutputStream = new HeapDataOutputStream(500, Version.CURRENT);
+    BufferDataOutputStream BufferDataOutputStream =
+        new BufferDataOutputStream(500, Version.CURRENT);
     FinalCheckPassedMessage message =
         new FinalCheckPassedMessage(mockMembers.get(0), mockMembers.get(1));
-    DataSerializer.writeObject(message, heapDataOutputStream);
+    dsfidSerializer.getObjectSerializer().writeObject(message, BufferDataOutputStream);
     ByteArrayInputStream byteArrayInputStream =
-        new ByteArrayInputStream(heapDataOutputStream.toByteArray());
+        new ByteArrayInputStream(BufferDataOutputStream.toByteArray());
     DataInputStream dataInputStream = new DataInputStream(byteArrayInputStream);
-    message = DataSerializer.readObject(dataInputStream);
+    message = dsfidSerializer.getObjectDeserializer().readObject(dataInputStream);
     assertEquals(mockMembers.get(1), message.getSuspect());
   }
 
@@ -1022,8 +1001,7 @@ public class GMSHealthMonitorJUnitTest {
     public Set<MemberIdentifier> availabilityCheckedMembers = new HashSet<>();
 
     public GMSHealthMonitorTest() {
-      super(SocketCreatorFactory
-          .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER));
+      super(new TcpSocketCreatorImpl());
     }
 
     @Override
diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java
index adee65f..e3226d6 100755
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java
@@ -14,7 +14,7 @@
  */
 package org.apache.geode.distributed.internal.membership.gms.messenger;
 
-import static org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil.createMemberID;
+import static org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil.createMemberID;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java
index 783917d..e7c2a5c 100644
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java
@@ -41,7 +41,7 @@ import org.mockito.stubbing.Answer;
 
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
 import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
-import org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil;
+import org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil;
 import org.apache.geode.test.junit.categories.MembershipTest;
 
 @Category({MembershipTest.class})
@@ -55,7 +55,7 @@ public class GMSQuorumCheckerJUnitTest {
   public void initMocks() {
     mockMembers = new MemberIdentifier[12];
     for (int i = 0; i < mockMembers.length; i++) {
-      mockMembers[i] = MembershipAddressUtil.createMemberID(8888 + i);
+      mockMembers[i] = MemberIdentifierUtil.createMemberID(8888 + i);
     }
     channel = mock(JChannel.class);
     address = mock(JGAddress.class);
diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MembershipAddressUtil.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MemberIdentifierUtil.java
similarity index 98%
rename from geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MembershipAddressUtil.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MemberIdentifierUtil.java
index 975548c..e8f4aa2 100644
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MembershipAddressUtil.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MemberIdentifierUtil.java
@@ -26,7 +26,7 @@ import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFact
 import org.apache.geode.distributed.internal.membership.gms.GMSMemberData;
 import org.apache.geode.internal.serialization.Version;
 
-public class MembershipAddressUtil {
+public class MemberIdentifierUtil {
   public static MemberIdentifier createMemberID(short version, int viewId, long msb, long lsb)
       throws UnknownHostException {
     MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("localhost")
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipStatisticsNoOp.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/DefaultMembershipStatistics.java
similarity index 64%
rename from geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipStatisticsNoOp.java
rename to geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/DefaultMembershipStatistics.java
index 1971f8c..ef4ae72 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipStatisticsNoOp.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/DefaultMembershipStatistics.java
@@ -17,10 +17,35 @@ package org.apache.geode.distributed.internal.membership.gms;
 import org.apache.geode.distributed.internal.membership.api.MembershipStatistics;
 
 /**
- * MembeshipStatisticsNoOp is the default implementation of MembershipStatistics. Create
+ * DefaultMembeshipStatistics is the default implementation of MembershipStatistics. Create
  * and install your own if you want to record membership stats.
  */
-public class MembershipStatisticsNoOp implements MembershipStatistics {
+public class DefaultMembershipStatistics implements MembershipStatistics {
+  private long sentBytes;
+  private long ucastWriteBytes;
+  private long ucastReadBytes;
+  private long mcastWriteBytes;
+  private long mcastReadBytes;
+  private long ucastRetransmits;
+  private long mcastRetransmits;
+  private long mcastRetransmitRequests;
+  private long heartbeatRequestsSent;
+  private long heartbeatRequestsReceived;
+  private long heartbeatsSent;
+  private long heartbeatsReceived;
+  private long suspectsSent;
+  private long suspectsReceived;
+  private long finalCheckRequestsSent;
+  private long finalCheckRequestsReceived;
+  private long finalCheckResponsesSent;
+  private long finalCheckResponsesReceived;
+  private long tcpFinalCheckRequestsSent;
+  private long tcpFinalCheckRequestsReceived;
+  private long tcpFinalCheckResponsesSent;
+  private long tcpFinalCheckResponsesReceived;
+  private long udpFinalCheckRequestsSent;
+  private long udpFinalCheckResponsesReceived;
+
   @Override
   public long startMsgSerialization() {
     return 0;
@@ -63,7 +88,7 @@ public class MembershipStatisticsNoOp implements MembershipStatistics {
 
   @Override
   public void incSentBytes(final long bytes) {
-
+    sentBytes++;
   }
 
   @Override
@@ -78,186 +103,186 @@ public class MembershipStatisticsNoOp implements MembershipStatistics {
 
   @Override
   public void incUcastWriteBytes(final int bytesWritten) {
-
+    ucastWriteBytes++;
   }
 
   @Override
   public void incUcastReadBytes(final int amount) {
-
+    ucastReadBytes++;
   }
 
   @Override
   public void incMcastWriteBytes(final int bytesWritten) {
-
+    mcastWriteBytes++;
   }
 
   @Override
   public void incMcastReadBytes(final int amount) {
-
+    mcastReadBytes++;
   }
 
   @Override
   public void incUcastRetransmits() {
-
+    ucastRetransmits++;
   }
 
   @Override
   public void incMcastRetransmits() {
-
+    mcastRetransmits++;
   }
 
   @Override
   public void incMcastRetransmitRequests() {
-
+    mcastRetransmitRequests++;
   }
 
   @Override
   public void incHeartbeatRequestsSent() {
-
+    heartbeatRequestsSent++;
   }
 
   @Override
   public void incHeartbeatRequestsReceived() {
-
+    heartbeatRequestsReceived++;
   }
 
   @Override
   public void incHeartbeatsSent() {
-
+    heartbeatsSent++;
   }
 
   @Override
   public void incHeartbeatsReceived() {
-
+    heartbeatsReceived++;
   }
 
   @Override
   public void incSuspectsSent() {
-
+    suspectsSent++;
   }
 
   @Override
   public void incSuspectsReceived() {
-
+    suspectsReceived++;
   }
 
   @Override
   public void incFinalCheckRequestsSent() {
-
+    finalCheckRequestsSent++;
   }
 
   @Override
   public void incFinalCheckRequestsReceived() {
-
+    finalCheckRequestsReceived++;
   }
 
   @Override
   public void incFinalCheckResponsesSent() {
-
+    finalCheckResponsesSent++;
   }
 
   @Override
   public void incFinalCheckResponsesReceived() {
-
+    finalCheckResponsesReceived++;
   }
 
   @Override
   public void incTcpFinalCheckRequestsSent() {
-
+    tcpFinalCheckRequestsSent++;
   }
 
   @Override
   public void incTcpFinalCheckRequestsReceived() {
-
+    tcpFinalCheckRequestsReceived++;
   }
 
   @Override
   public void incTcpFinalCheckResponsesSent() {
-
+    tcpFinalCheckResponsesSent++;
   }
 
   @Override
   public void incTcpFinalCheckResponsesReceived() {
-
+    tcpFinalCheckResponsesReceived++;
   }
 
   @Override
   public void incUdpFinalCheckRequestsSent() {
-
+    udpFinalCheckRequestsSent++;
   }
 
   @Override
   public long getUdpFinalCheckRequestsSent() {
-    return 0;
+    return udpFinalCheckRequestsSent;
   }
 
   @Override
   public void incUdpFinalCheckResponsesReceived() {
-
+    udpFinalCheckResponsesReceived++;
   }
 
   @Override
   public long getHeartbeatRequestsReceived() {
-    return 0;
+    return heartbeatRequestsReceived;
   }
 
   @Override
   public long getHeartbeatsSent() {
-    return 0;
+    return heartbeatsSent;
   }
 
   @Override
   public long getSuspectsSent() {
-    return 0;
+    return suspectsSent;
   }
 
   @Override
   public long getSuspectsReceived() {
-    return 0;
+    return suspectsReceived;
   }
 
   @Override
   public long getFinalCheckRequestsSent() {
-    return 0;
+    return finalCheckRequestsSent;
   }
 
   @Override
   public long getFinalCheckRequestsReceived() {
-    return 0;
+    return finalCheckRequestsReceived;
   }
 
   @Override
   public long getFinalCheckResponsesSent() {
-    return 0;
+    return finalCheckResponsesSent;
   }
 
   @Override
   public long getFinalCheckResponsesReceived() {
-    return 0;
+    return finalCheckResponsesReceived;
   }
 
   @Override
   public long getTcpFinalCheckRequestsSent() {
-    return 0;
+    return tcpFinalCheckRequestsSent;
   }
 
   @Override
   public long getTcpFinalCheckRequestsReceived() {
-    return 0;
+    return tcpFinalCheckRequestsReceived;
   }
 
   @Override
   public long getTcpFinalCheckResponsesSent() {
-    return 0;
+    return tcpFinalCheckResponsesSent;
   }
 
   @Override
   public long getTcpFinalCheckResponsesReceived() {
-    return 0;
+    return tcpFinalCheckResponsesReceived;
   }
 
   @Override
   public long getHeartbeatRequestsSent() {
-    return 0;
+    return heartbeatRequestsSent;
   }
 }
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipBuilderImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipBuilderImpl.java
index 742c046..3cb692c 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipBuilderImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MembershipBuilderImpl.java
@@ -42,7 +42,7 @@ public class MembershipBuilderImpl<ID extends MemberIdentifier> implements Membe
   private MembershipListener<ID> membershipListener = new MembershipListenerNoOp();
   private MessageListener<ID> messageListener = message -> {
   };
-  private MembershipStatistics statistics = new MembershipStatisticsNoOp();
+  private MembershipStatistics statistics = new DefaultMembershipStatistics();
   private Authenticator<ID> authenticator = new AuthenticatorNoOp();
   private MembershipConfig membershipConfig = new MembershipConfig() {};
   private final DSFIDSerializer serializer;


[geode] 02/04: move JGroupsMessengerJUnitTest

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 150d05290cf8a3ff7df7335ac6d88198df941c7f
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Thu Jan 30 13:51:07 2020 -0800

    move JGroupsMessengerJUnitTest
---
 .../internal/membership/adapter/ServiceConfig.java |   2 +-
 .../gms/fd/GMSHealthMonitorJUnitTest.java          |  18 +--
 .../membership/gms/messenger/InterceptUDP.java     |   0
 .../gms/messenger/JGroupsMessengerJUnitTest.java   | 151 +++++++++++----------
 .../internal/membership/api/MembershipConfig.java  |   2 +-
 .../membership/gms/messenger/JGroupsMessenger.java |   2 +-
 6 files changed, 83 insertions(+), 92 deletions(-)

diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/ServiceConfig.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/ServiceConfig.java
index 6d60513..8788f34 100644
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/ServiceConfig.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/adapter/ServiceConfig.java
@@ -318,7 +318,7 @@ public class ServiceConfig implements MembershipConfig {
   }
 
   @Override
-  public Object getOldDSMembershipInfo() {
+  public Object getOldMembershipInfo() {
     return transport.getOldDSMembershipInfo();
   }
 
diff --git a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
index 9b8e7a3..458d63e 100644
--- a/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/fd/GMSHealthMonitorJUnitTest.java
@@ -64,8 +64,8 @@ import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFact
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifierImpl;
 import org.apache.geode.distributed.internal.membership.api.MemberStartupException;
 import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
-import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
 import org.apache.geode.distributed.internal.membership.gms.DefaultMembershipStatistics;
+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.Services.Stopper;
 import org.apache.geode.distributed.internal.membership.gms.fd.GMSHealthMonitor.ClientSocketHandler;
@@ -117,22 +117,6 @@ public class GMSHealthMonitorJUnitTest {
     services = mock(Services.class);
     Stopper stopper = mock(Stopper.class);
 
-    // nonDefault.put(ACK_WAIT_THRESHOLD, "1");
-    // nonDefault.put(ACK_SEVERE_ALERT_THRESHOLD, "10");
-    // nonDefault.put(DISABLE_TCP, "true");
-    // nonDefault.put(MCAST_PORT, "0");
-    // nonDefault.put(MCAST_TTL, "0");
-    // nonDefault.put(LOG_FILE, "");
-    // nonDefault.put(LOG_LEVEL, "fine");
-    // nonDefault.put(MEMBER_TIMEOUT, "" + memberTimeout);
-    // nonDefault.put(LOCATORS, "localhost[10344]");
-    // DistributionManager dm = mock(DistributionManager.class);
-    // SocketCreatorFactory.setDistributionConfig(new DistributionConfigImpl(new Properties()));
-    // InternalDistributedSystem system = new
-    // InternalDistributedSystem.BuilderForTesting(nonDefault)
-    // .setDistributionManager(dm)
-    // .build();
-
     when(mockConfig.getMemberTimeout()).thenReturn(memberTimeout);
     when(mockConfig.getMembershipPortRange()).thenReturn(portRange);
     when(services.getConfig()).thenReturn(mockConfig);
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/InterceptUDP.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/InterceptUDP.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/InterceptUDP.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/InterceptUDP.java
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
similarity index 90%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
index 169ae0b..9138ced 100755
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessengerJUnitTest.java
@@ -14,13 +14,6 @@
  */
 package org.apache.geode.distributed.internal.membership.gms.messenger;
 
-import static org.apache.geode.distributed.ConfigurationProperties.ACK_WAIT_THRESHOLD;
-import static org.apache.geode.distributed.ConfigurationProperties.DISABLE_TCP;
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-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.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -29,7 +22,6 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.isA;
 import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.doCallRealMethod;
@@ -66,21 +58,19 @@ import org.jgroups.protocols.pbcast.NAKACK2;
 import org.jgroups.util.Digest;
 import org.jgroups.util.UUID;
 import org.junit.After;
+import org.junit.Assert;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
+import org.mockito.Mockito;
 
-import org.apache.geode.SerializationException;
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.distributed.internal.DistributionConfigImpl;
-import org.apache.geode.distributed.internal.DistributionStats;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
-import org.apache.geode.distributed.internal.membership.adapter.ServiceConfig;
 import org.apache.geode.distributed.internal.membership.api.MemberDisconnectedException;
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
 import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFactoryImpl;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierImpl;
 import org.apache.geode.distributed.internal.membership.api.MembershipClosedException;
 import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
 import org.apache.geode.distributed.internal.membership.api.Message;
+import org.apache.geode.distributed.internal.membership.gms.DefaultMembershipStatistics;
 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.Services.Stopper;
@@ -96,12 +86,7 @@ import org.apache.geode.distributed.internal.membership.gms.messages.JoinRequest
 import org.apache.geode.distributed.internal.membership.gms.messages.JoinResponseMessage;
 import org.apache.geode.distributed.internal.membership.gms.messages.LeaveRequestMessage;
 import org.apache.geode.distributed.internal.membership.gms.messenger.JGroupsMessenger.JGroupsReceiver;
-import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreator;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.internal.InternalDataSerializer;
-import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
-import org.apache.geode.internal.net.SocketCreatorFactory;
-import org.apache.geode.internal.security.SecurableCommunicationChannel;
+import org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil;
 import org.apache.geode.internal.serialization.BufferDataOutputStream;
 import org.apache.geode.internal.serialization.DSFIDSerializer;
 import org.apache.geode.internal.serialization.DataSerializableFixedID;
@@ -109,6 +94,7 @@ import org.apache.geode.internal.serialization.DeserializationContext;
 import org.apache.geode.internal.serialization.SerializationContext;
 import org.apache.geode.internal.serialization.StaticSerialization;
 import org.apache.geode.internal.serialization.Version;
+import org.apache.geode.internal.serialization.internal.DSFIDSerializerImpl;
 import org.apache.geode.test.junit.categories.MembershipTest;
 
 @Category({MembershipTest.class})
@@ -123,35 +109,20 @@ public class JGroupsMessengerJUnitTest {
   private Stopper stopper;
   private HealthMonitor healthMonitor;
   private InterceptUDP interceptor;
-  private long statsId = 123;
   private MembershipConfig membershipConfig;
-  private RemoteTransportConfig tconfig;
-  private TcpSocketCreator socketCreator;
 
   private void initMocks(boolean enableMcast) throws Exception {
-    initMocks(enableMcast, new Properties());
+    initMocks(enableMcast, false);
   }
 
   /**
    * Create stub and mock objects
    */
-  private void initMocks(boolean enableMcast, Properties addProp) throws Exception {
+  private void initMocks(boolean enableMcast, boolean secure) throws Exception {
     if (messenger != null) {
       messenger.stop();
       messenger = null;
     }
-    Properties nonDefault = new Properties();
-    nonDefault.put(DISABLE_TCP, "true");
-    nonDefault.put(MCAST_PORT,
-        enableMcast ? "" + AvailablePortHelper.getRandomAvailableUDPPort() : "0");
-    nonDefault.put(MCAST_TTL, "0");
-    nonDefault.put(LOG_FILE, "");
-    nonDefault.put(LOG_LEVEL, "fine");
-    nonDefault.put(LOCATORS, "localhost[10344]");
-    nonDefault.put(ACK_WAIT_THRESHOLD, "1");
-    nonDefault.putAll(addProp);
-    DistributionConfigImpl config = new DistributionConfigImpl(nonDefault);
-    tconfig = new RemoteTransportConfig(config, MemberIdentifier.NORMAL_DM_TYPE);
 
     stopper = mock(Stopper.class);
     when(stopper.isCancelInProgress()).thenReturn(false);
@@ -163,7 +134,46 @@ public class JGroupsMessengerJUnitTest {
 
     joinLeave = mock(JoinLeave.class);
 
-    membershipConfig = new ServiceConfig(tconfig, config);
+
+    membershipConfig = new TestMembershipConfig() {
+      @Override
+      public String getLocators() {
+        return "localhost[10344]";
+      }
+
+      @Override
+      public long getAckWaitThreshold() {
+        return 1;
+      }
+
+      @Override
+      public int getMcastTtl() {
+        return 0;
+      }
+
+      @Override
+      public boolean getDisableTcp() {
+        return true;
+      }
+
+      @Override
+      public int getMcastPort() {
+        if (enableMcast) {
+          return 1234;
+        } else {
+          return 0;
+        }
+      }
+
+      @Override
+      public String getSecurityUDPDHAlgo() {
+        if (secure) {
+          return AES_128;
+        } else {
+          return "";
+        }
+      }
+    };
 
     services = mock(Services.class);
     when(services.getConfig()).thenReturn(membershipConfig);
@@ -171,17 +181,15 @@ public class JGroupsMessengerJUnitTest {
     when(services.getHealthMonitor()).thenReturn(healthMonitor);
     when(services.getManager()).thenReturn(manager);
     when(services.getJoinLeave()).thenReturn(joinLeave);
-    DSFIDSerializer serializer = InternalDataSerializer.getDSFIDSerializer();
+    DSFIDSerializer serializer = new DSFIDSerializerImpl();
     Services.registerSerializables(serializer);
     when(services.getSerializer()).thenReturn(serializer);
     Version current = Version.CURRENT; // force Version static initialization to set
                                        // Version
 
-    when(services.getStatistics()).thenReturn(mock(DistributionStats.class));
+    when(services.getStatistics()).thenReturn(new DefaultMembershipStatistics());
 
-    socketCreator = SocketCreatorFactory.setDistributionConfig(config)
-        .getSocketCreatorForComponent(SecurableCommunicationChannel.CLUSTER);
-    messenger = new JGroupsMessenger<MemberIdentifier>();
+    messenger = new JGroupsMessenger<>();
     messenger.init(services);
 
     // if I do this earlier then test this return messenger as null
@@ -279,7 +287,7 @@ public class JGroupsMessengerJUnitTest {
     mbr.getMemberData().setMemberWeight((byte) 40);
     mbr.toData(out, mock(SerializationContext.class));
     DataInputStream in = new DataInputStream(new ByteArrayInputStream(out.toByteArray()));
-    mbr = new InternalDistributedMember();
+    mbr = new MemberIdentifierImpl();
     mbr.fromData(in, mock(DeserializationContext.class));
     assertEquals(40, mbr.getMemberWeight());
   }
@@ -299,7 +307,7 @@ public class JGroupsMessengerJUnitTest {
       // for code coverage we need to test with both a SerializationException and
       // an IOException. The former is wrapped in a MembershipIOException while the
       // latter is not
-      doThrow(new SerializationException("")).when(msg).toData(any(DataOutput.class),
+      Mockito.doThrow(new IOException("test exception")).when(msg).toData(any(DataOutput.class),
           any(SerializationContext.class));
       Set<?> failures = messenger.send(msg);
       assertThat(failures).isNotNull();
@@ -790,14 +798,14 @@ public class JGroupsMessengerJUnitTest {
 
     interceptor.collectMessages = true;
     pinger.sendPingMessage(messenger.myChannel, null, addr);
-    assertEquals("expected 1 message but found " + interceptor.collectedMessages,
+    Assert.assertEquals("expected 1 message but found " + interceptor.collectedMessages,
         interceptor.collectedMessages.size(), 1);
     pingMessage = interceptor.collectedMessages.get(0);
     assertTrue(pinger.isPingMessage(pingMessage.getBuffer()));
 
     interceptor.collectedMessages.clear();
     pinger.sendPongMessage(messenger.myChannel, null, addr);
-    assertEquals("expected 1 message but found " + interceptor.collectedMessages,
+    Assert.assertEquals("expected 1 message but found " + interceptor.collectedMessages,
         interceptor.collectedMessages.size(), 1);
     pongMessage = interceptor.collectedMessages.get(0);
     assertTrue(pinger.isPongMessage(pongMessage.getBuffer()));
@@ -808,7 +816,7 @@ public class JGroupsMessengerJUnitTest {
     receiver.receive(pongMessage);
     assertEquals(pongsReceived + 1, messenger.pongsReceived.longValue());
     receiver.receive(pingMessage);
-    assertEquals("expected 1 message but found " + interceptor.collectedMessages,
+    Assert.assertEquals("expected 1 message but found " + interceptor.collectedMessages,
         interceptor.collectedMessages.size(), 1);
     org.jgroups.Message m = interceptor.collectedMessages.get(0);
     assertTrue(pinger.isPongMessage(m.getBuffer()));
@@ -867,16 +875,14 @@ public class JGroupsMessengerJUnitTest {
     when(manager.shutdownInProgress()).thenReturn(Boolean.TRUE);
     receiver.receive(msg);
     verify(manager, never()).processMessage(isA(Message.class));
-    verify(services.getStatistics(), times(3)).startUDPDispatchRequest();
-    verify(services.getStatistics(), times(3)).endUDPDispatchRequest(anyLong());
   }
 
   @Test
   public void testUseOldJChannel() throws Exception {
-    initMocks(false);
-    JChannel channel = messenger.myChannel;
-    tconfig.setOldDSMembershipInfo(new MembershipInformationImpl(channel,
-        new ConcurrentLinkedQueue<>()));
+    initMocks(false, true);
+    ((TestMembershipConfig) membershipConfig).oldMembershipInfo =
+        new MembershipInformationImpl(messenger.myChannel,
+            new ConcurrentLinkedQueue<>());
     JGroupsMessenger newMessenger = new JGroupsMessenger();
     newMessenger.init(services);
     newMessenger.start();
@@ -959,17 +965,14 @@ public class JGroupsMessengerJUnitTest {
 
   @Test
   public void testEncryptedFindCoordinatorRequest() throws Exception {
-    MemberIdentifier otherMbr = new InternalDistributedMember("localhost", 8888);
+    MemberIdentifier otherMbr = MemberIdentifierUtil.createMemberID(8888);
 
-    Properties p = new Properties();
-    final String udpDhalgo = "AES:128";
-    p.put(ConfigurationProperties.SECURITY_UDP_DHALGO, udpDhalgo);
-    initMocks(false, p);
+    initMocks(false, true);
 
     GMSMembershipView v = createView(otherMbr);
     when(joinLeave.getMemberID(messenger.getMemberID()))
         .thenReturn(messenger.getMemberID());
-    GMSEncrypt otherMbrEncrptor = new GMSEncrypt(services, udpDhalgo);
+    GMSEncrypt otherMbrEncrptor = new GMSEncrypt(services, AES_128);
 
     messenger.setPublicKey(otherMbrEncrptor.getPublicKeyBytes(), otherMbr);
     messenger.initClusterKey();
@@ -1000,12 +1003,11 @@ public class JGroupsMessengerJUnitTest {
 
   @Test
   public void testEncryptedFindCoordinatorResponse() throws Exception {
-    MemberIdentifier otherMbr = new InternalDistributedMember("localhost", 8888);
+    MemberIdentifier otherMbr = MemberIdentifierUtil.createMemberID(8888);
 
     Properties p = new Properties();
 
-    p.put(ConfigurationProperties.SECURITY_UDP_DHALGO, AES_128);
-    initMocks(false, p);
+    initMocks(false, true);
 
     GMSMembershipView v = createView(otherMbr);
 
@@ -1043,11 +1045,9 @@ public class JGroupsMessengerJUnitTest {
 
   @Test
   public void testEncryptedJoinRequest() throws Exception {
-    MemberIdentifier otherMbr = new InternalDistributedMember("localhost", 8888);
+    MemberIdentifier otherMbr = MemberIdentifierUtil.createMemberID(8888);
 
-    Properties p = new Properties();
-    p.put(ConfigurationProperties.SECURITY_UDP_DHALGO, AES_128);
-    initMocks(false, p);
+    initMocks(false, true);
 
     GMSMembershipView v = createView(otherMbr);
 
@@ -1078,11 +1078,9 @@ public class JGroupsMessengerJUnitTest {
 
   @Test
   public void testEncryptedJoinResponse() throws Exception {
-    MemberIdentifier otherMbr = new InternalDistributedMember("localhost", 8888);
+    MemberIdentifier otherMbr = MemberIdentifierUtil.createMemberID(8888);
 
-    Properties p = new Properties();
-    p.put(ConfigurationProperties.SECURITY_UDP_DHALGO, AES_128);
-    initMocks(false, p);
+    initMocks(false, true);
 
     GMSMembershipView v = createView(otherMbr);
 
@@ -1136,7 +1134,7 @@ public class JGroupsMessengerJUnitTest {
   }
 
   private MemberIdentifier createAddress(int port) {
-    MemberIdentifier gms = new InternalDistributedMember("localhost", port);
+    MemberIdentifier gms = MemberIdentifierUtil.createMemberID(port);
     gms.getMemberData().setUUID(UUID.randomUUID());
     gms.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
     gms.getMemberData().setVersionOrdinal(Version.getCurrentVersion().ordinal());
@@ -1177,4 +1175,13 @@ public class JGroupsMessengerJUnitTest {
     }
   }
 
+  static class TestMembershipConfig implements MembershipConfig {
+    Object oldMembershipInfo;
+
+    @Override
+    public Object getOldMembershipInfo() {
+      return oldMembershipInfo;
+    }
+  }
+
 }
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipConfig.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipConfig.java
index 814c923..01f1ca5 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipConfig.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MembershipConfig.java
@@ -224,7 +224,7 @@ public interface MembershipConfig {
     return MemberIdentifier.NORMAL_DM_TYPE;
   }
 
-  default Object getOldDSMembershipInfo() {
+  default Object getOldMembershipInfo() {
     return DEFAULT_OLD_MEMBERSHIP_INFO;
   }
 
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
index 8275689..75aa13c 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/messenger/JGroupsMessenger.java
@@ -331,7 +331,7 @@ public class JGroupsMessenger<ID extends MemberIdentifier> implements Messenger<
     // start the jgroups channel and establish the membership ID
     boolean reconnecting = false;
     try {
-      Object oldDSMembershipInfo = services.getConfig().getOldDSMembershipInfo();
+      Object oldDSMembershipInfo = services.getConfig().getOldMembershipInfo();
       if (oldDSMembershipInfo != null) {
         logger.debug("Reusing JGroups channel from previous system", properties);
         MembershipInformationImpl oldInfo = (MembershipInformationImpl) oldDSMembershipInfo;


[geode] 04/04: move GMSLocatorRecoveryIntegrationTest to geode-membership

Posted by bs...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 1c370b9bc311f1807cce3bbb05b8baf303f5fb73
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Thu Jan 30 15:30:25 2020 -0800

    move GMSLocatorRecoveryIntegrationTest to geode-membership
---
 .../locator/GMSLocatorRecoveryIntegrationTest.java | 171 ++++++++++-----------
 1 file changed, 80 insertions(+), 91 deletions(-)

diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
similarity index 53%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
index 94a7e7e..66184ba 100644
--- a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/locator/GMSLocatorRecoveryIntegrationTest.java
@@ -14,14 +14,10 @@
  */
 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.gms.locator.GMSLocator.LOCATOR_FILE_STAMP;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.catchThrowable;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import java.io.DataOutput;
 import java.io.DataOutputStream;
@@ -30,7 +26,9 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.ObjectOutputStream;
 import java.net.InetAddress;
-import java.util.Properties;
+import java.net.UnknownHostException;
+import java.util.concurrent.ExecutorService;
+import java.util.function.Supplier;
 
 import org.junit.After;
 import org.junit.Before;
@@ -40,30 +38,25 @@ import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
 import org.junit.rules.TestName;
 
-import org.apache.geode.DataSerializer;
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
-import org.apache.geode.distributed.internal.DMStats;
-import org.apache.geode.distributed.internal.Distribution;
-import org.apache.geode.distributed.internal.DistributionConfigImpl;
-import org.apache.geode.distributed.internal.DistributionImpl;
-import org.apache.geode.distributed.internal.InternalDistributedSystem;
-import org.apache.geode.distributed.internal.InternalLocator;
-import org.apache.geode.distributed.internal.LocatorStats;
-import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
-import org.apache.geode.distributed.internal.membership.api.MembershipListener;
-import org.apache.geode.distributed.internal.membership.api.MessageListener;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierFactoryImpl;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifierImpl;
+import org.apache.geode.distributed.internal.membership.api.Membership;
+import org.apache.geode.distributed.internal.membership.api.MembershipBuilder;
+import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
+import org.apache.geode.distributed.internal.membership.api.MembershipLocator;
+import org.apache.geode.distributed.internal.membership.api.MembershipLocatorBuilder;
 import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
+import org.apache.geode.distributed.internal.membership.gms.MembershipLocatorStatisticsNoOp;
 import org.apache.geode.distributed.internal.membership.gms.Services;
+import org.apache.geode.distributed.internal.membership.gms.util.MemberIdentifierUtil;
 import org.apache.geode.distributed.internal.tcpserver.TcpClient;
 import org.apache.geode.distributed.internal.tcpserver.TcpServer;
-import org.apache.geode.internal.AvailablePortHelper;
-import org.apache.geode.internal.InternalDataSerializer;
-import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
+import org.apache.geode.distributed.internal.tcpserver.TcpSocketCreatorImpl;
 import org.apache.geode.internal.inet.LocalHostUtil;
-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;
+import org.apache.geode.logging.internal.executors.LoggingExecutors;
 import org.apache.geode.test.junit.categories.MembershipTest;
 
 @Category(MembershipTest.class)
@@ -77,40 +70,31 @@ public class GMSLocatorRecoveryIntegrationTest {
 
   private File stateFile;
   private GMSLocator gmsLocator;
-  private InternalLocator locator;
+  private MembershipLocator locator;
   private DSFIDSerializer serializer;
-  private Distribution distribution;
 
   @Before
   public void setUp() throws Exception {
 
-    SocketCreatorFactory.setDistributionConfig(new DistributionConfigImpl(new Properties()));
-
-    serializer = InternalDataSerializer.getDSFIDSerializer();
+    serializer = new DSFIDSerializerImpl();
     Services.registerSerializables(serializer);
     Version current = Version.CURRENT; // force version initialization
 
     stateFile = new File(temporaryFolder.getRoot(), getClass().getSimpleName() + "_locator.dat");
 
-    gmsLocator = new GMSLocator(null, null, false, false, new LocatorStats(), "",
-        temporaryFolder.getRoot().toPath(), new TcpClient(SocketCreatorFactory
-            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
-            InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-            InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer()),
-        InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-        InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
+    gmsLocator = new GMSLocator(null, null, false,
+        false, new MembershipLocatorStatisticsNoOp(), "",
+        temporaryFolder.getRoot().toPath(), new TcpClient(new TcpSocketCreatorImpl(),
+            serializer.getObjectSerializer(),
+            serializer.getObjectDeserializer()),
+        serializer.getObjectSerializer(),
+        serializer.getObjectDeserializer());
     gmsLocator.setViewFile(stateFile);
   }
 
   @After
   public void tearDown() throws Exception {
-    if (distribution != null) {
-      distribution.disconnect(false);
-    }
-    if (locator != null) {
-      locator.stop();
-    }
-    SocketCreatorFactory.close();
+    // TODO stop locator threads?
   }
 
   @Test
@@ -131,7 +115,8 @@ public class GMSLocatorRecoveryIntegrationTest {
   @Test
   public void testRecoverFromFileWithWrongFileStamp() throws Exception {
     // add 1 to file stamp to make it invalid
-    populateStateFile(stateFile, LOCATOR_FILE_STAMP + 1, Version.CURRENT_ORDINAL, 1);
+    populateStateFile(stateFile, LOCATOR_FILE_STAMP + 1, Version.CURRENT_ORDINAL,
+        MemberIdentifierUtil.createMemberID(2345));
 
     assertThat(gmsLocator.recoverFromFile(stateFile)).isFalse();
   }
@@ -139,7 +124,8 @@ public class GMSLocatorRecoveryIntegrationTest {
   @Test
   public void testRecoverFromFileWithWrongOrdinal() throws Exception {
     // add 1 to ordinal to make it wrong
-    populateStateFile(stateFile, LOCATOR_FILE_STAMP, Version.CURRENT_ORDINAL + 1, 1);
+    populateStateFile(stateFile, LOCATOR_FILE_STAMP, Version.CURRENT_ORDINAL + 1,
+        MemberIdentifierUtil.createMemberID(1234));
 
     boolean recovered = gmsLocator.recoverFromFile(stateFile);
     assertThat(recovered).isFalse();
@@ -147,7 +133,8 @@ public class GMSLocatorRecoveryIntegrationTest {
 
   @Test
   public void testRecoverFromFileWithInvalidViewObject() throws Exception {
-    populateStateFile(stateFile, LOCATOR_FILE_STAMP, Version.CURRENT_ORDINAL, 1);
+    populateStateFile(stateFile, LOCATOR_FILE_STAMP, Version.CURRENT_ORDINAL,
+        MemberIdentifierUtil.createMemberID(1234));
 
     Throwable thrown = catchThrowable(() -> gmsLocator.recoverFromFile(stateFile));
 
@@ -158,54 +145,56 @@ public class GMSLocatorRecoveryIntegrationTest {
 
   @Test
   public void testRecoverFromOther() throws Exception {
-    int port = AvailablePortHelper.getRandomAvailableTCPPort();
     InetAddress localHost = LocalHostUtil.getLocalHost();
 
-    // this locator will hook itself up with the first Membership to be created
-    locator = InternalLocator.startLocator(port, null, null, null, localHost, false,
-        new Properties(), null, temporaryFolder.getRoot().toPath());
-
-    // create configuration objects
-    Properties nonDefault = new Properties();
-    nonDefault.setProperty(BIND_ADDRESS, localHost.getHostAddress());
-    nonDefault.setProperty(DISABLE_TCP, "true");
-    nonDefault.setProperty(LOCATORS, localHost.getHostAddress() + '[' + port + ']');
-
-    DistributionConfigImpl config = new DistributionConfigImpl(nonDefault);
-    RemoteTransportConfig transport =
-        new RemoteTransportConfig(config, MemberIdentifier.LOCATOR_DM_TYPE);
-
-    MembershipListener mockListener = mock(MembershipListener.class);
-    MessageListener mockMessageListener = mock(MessageListener.class);
-    InternalDistributedSystem mockSystem = mock(InternalDistributedSystem.class);
-    ClusterDistributionManager mockClusterDistributionManager =
-        mock(ClusterDistributionManager.class);
-    DMStats mockDmStats = mock(DMStats.class);
-
-    when(mockSystem.getConfig()).thenReturn(config);
-
-    final TcpClient locatorClient = new TcpClient(
-        SocketCreatorFactory
-            .getSocketCreatorForComponent(SecurableCommunicationChannel.LOCATOR),
-        InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-        InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
-
-    distribution =
-        new DistributionImpl(mockClusterDistributionManager, transport, mockSystem, mockListener,
-            mockMessageListener, locator.getMembershipLocator());
-    distribution.start();
-
-    GMSLocator gmsLocator = new GMSLocator(localHost,
-        distribution.getLocalMember().getHost() + "[" + port + "]", true, true,
-        new LocatorStats(), "", temporaryFolder.getRoot().toPath(), locatorClient,
-        InternalDataSerializer.getDSFIDSerializer().getObjectSerializer(),
-        InternalDataSerializer.getDSFIDSerializer().getObjectDeserializer());
-    gmsLocator.setViewFile(new File(temporaryFolder.getRoot(), "locator2.dat"));
-    TcpServer server = mock(TcpServer.class);
-    gmsLocator.init(server);
-
-    assertThat(gmsLocator.getMembers())
-        .contains(distribution.getLocalMember());
+    final Supplier<ExecutorService> executorServiceSupplier =
+        () -> LoggingExecutors.newCachedThreadPool("membership", false);
+    final TcpSocketCreatorImpl socketCreator = new TcpSocketCreatorImpl();
+    locator = MembershipLocatorBuilder.newLocatorBuilder(socketCreator, serializer,
+        temporaryFolder.getRoot().toPath(), executorServiceSupplier)
+        .setBindAddress(localHost).create();
+    final int port = locator.start();
+
+    try {
+      final TcpClient locatorClient =
+          new TcpClient(socketCreator, serializer.getObjectSerializer(),
+              serializer.getObjectDeserializer());
+
+      MembershipConfig membershipConfig = new MembershipConfig() {
+        public String getLocators() {
+          try {
+            return LocalHostUtil.getLocalHost().getHostName() + "[" + port + "]";
+          } catch (UnknownHostException e) {
+            throw new RuntimeException("unable to locate localhost for this machine");
+          }
+        }
+      };
+      final Membership<MemberIdentifierImpl> membership =
+          MembershipBuilder.newMembershipBuilder(socketCreator, locatorClient, serializer,
+              new MemberIdentifierFactoryImpl()).setConfig(membershipConfig)
+              .setMembershipLocator(locator)
+              .create();
+      membership.start();
+      membership.startEventProcessing();
+      assertThat(membership.getView().size()).isEqualTo(1);
+
+      // now create a peer location handler that should recover from our real locator and know
+      // that real locator's identifier
+      GMSLocator gmsLocator = new GMSLocator(localHost,
+          membership.getLocalMember().getHost() + "[" + port + "]", true, true,
+          new MembershipLocatorStatisticsNoOp(), "", temporaryFolder.getRoot().toPath(),
+          locatorClient,
+          serializer.getObjectSerializer(),
+          serializer.getObjectDeserializer());
+      gmsLocator.setViewFile(new File(temporaryFolder.getRoot(), "locator2.dat"));
+      TcpServer server = mock(TcpServer.class);
+      gmsLocator.init(server);
+
+      assertThat(gmsLocator.getMembers())
+          .contains(membership.getLocalMember());
+    } finally {
+      locator.stop();
+    }
   }
 
   @Test
@@ -230,7 +219,7 @@ public class GMSLocatorRecoveryIntegrationTest {
       oos.writeInt(ordinal);
       oos.flush();
       DataOutput dataOutput = new DataOutputStream(oos);
-      DataSerializer.writeObject(object, dataOutput);
+      serializer.getObjectSerializer().writeObject(object, dataOutput);
       fileStream.flush();
     }
   }