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 18:57:37 UTC
[geode] 01/01: GEODE-7742: move existing membership
unit/integration tests to geode-membership
This is an automated email from the ASF dual-hosted git repository.
bschuchardt pushed a commit to branch feature/GEODE-7742
in repository https://gitbox.apache.org/repos/asf/geode.git
commit 96f344619c568b0b9b0f3e243c48813e870f772d
Author: Bruce Schuchardt <bs...@pivotal.io>
AuthorDate: Mon Jan 27 10:51:38 2020 -0800
GEODE-7742: move existing membership unit/integration tests to geode-membership
Moved all membership integration tests that do not rely on
AvailablePortHelper to the geode-membership sub-project.
There don't appear to be any regular unit tests for membership - all are
integration and dunit tests. DUnit tests won't be moved to the
membership sub-project.
Remaining integration tests are:
GMSHealthMonitorJUnitTest
GMSJoinLeaveJUnitTest
GMSLocatorIntegrationTest
GMSLocatorRecoveryIntegrationTest
JGroupsMessengerJUnitTest
These need to be moved to geode-membership after required
AvailablePortHelper and SocketCreator functionality has been moved out
of geode-core into a sub-project used by geode-membership.
---
.../membership/InternalDistributedMember.java | 5 +
geode-membership/build.gradle | 5 +-
.../membership/GMSMembershipViewJUnitTest.java | 23 +--
.../MembershipDependenciesJUnitTest.java | 4 +
.../api/MemberIdentifierFactoryImplTest.java | 0
.../membership/api/MembershipAPIArchUnitTest.java | 4 +-
.../membership/gms/GMSMemberDataJUnitTest.java | 0
.../membership/gms/GMSMembershipJUnitTest.java | 156 +++++++++++++--------
.../internal/membership/gms/GMSUtilTest.java | 0
.../membership/gms/MemberDataBuilderImplTest.java | 3 +-
.../gms/messenger/GMSEncryptJUnitTest.java | 23 ++-
.../gms/messenger/GMSQuorumCheckerJUnitTest.java | 29 ++--
.../gms/messenger/StatRecorderJUnitTest.java | 6 -
.../membership/gms/util/MembershipAddressUtil.java | 68 +++++++++
.../membership/api/MemberIdentifierImpl.java | 2 +-
.../internal/membership/gms/GMSMemberData.java | 3 +
.../membership/gms/MemberDataBuilderImpl.java | 3 +-
.../internal/membership/gms/Services.java | 4 +-
.../gms/locator/MembershipLocatorImpl.java | 6 +
.../serialization/DataSerializableFixedID.java | 2 +-
20 files changed, 228 insertions(+), 118 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/InternalDistributedMember.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/InternalDistributedMember.java
index 912dd42..88124b6 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/InternalDistributedMember.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/InternalDistributedMember.java
@@ -60,6 +60,11 @@ public class InternalDistributedMember extends MemberIdentifierImpl
// Used only by deserialization
public InternalDistributedMember() {}
+ @Override
+ public int getDSFID() {
+ return DISTRIBUTED_MEMBER;
+ }
+
/**
* Construct a InternalDistributedMember
* <p>
diff --git a/geode-membership/build.gradle b/geode-membership/build.gradle
index 3a36871..9d549c5 100644
--- a/geode-membership/build.gradle
+++ b/geode-membership/build.gradle
@@ -52,9 +52,6 @@ dependencies {
integrationTestCompile(project(':geode-junit')) {
exclude module: 'geode-logging'
}
- integrationTestCompile(project(':geode-dunit')) {
- exclude module: 'geode-logging'
- }
integrationTestCompile('pl.pragmatists:JUnitParams')
distributedTestCompile(project(':geode-junit')) {
exclude module: 'geode-logging'
@@ -68,6 +65,8 @@ dependencies {
testImplementation('com.tngtech.archunit:archunit-junit4')
+ integrationTestCompile('com.tngtech.archunit:archunit-junit4')
+
}
distributedTest {
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
similarity index 93%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
index f17a8c2..223d5fe 100755
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/GMSMembershipViewJUnitTest.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.distributed.internal.membership;
+import static org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil.createMemberID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
@@ -32,7 +33,6 @@ import org.junit.experimental.categories.Category;
import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
import org.apache.geode.distributed.internal.membership.gms.GMSMembershipView;
-import org.apache.geode.internal.inet.LocalHostUtil;
import org.apache.geode.test.junit.categories.MembershipTest;
@Category({MembershipTest.class})
@@ -45,7 +45,7 @@ public class GMSMembershipViewJUnitTest {
int numMembers = 10;
members = new ArrayList<>(numMembers);
for (int i = 0; i < numMembers; i++) {
- members.add(new InternalDistributedMember(LocalHostUtil.getLocalHost(), 1000 + i));
+ members.add(createMemberID(1000 + i));
}
// view creator is a locator
members.get(0).setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
@@ -96,7 +96,8 @@ public class GMSMembershipViewJUnitTest {
assertFalse(view.shouldBeCoordinator(members.get(1)));
assertTrue(view.shouldBeCoordinator(members.get(0)));
- assertEquals(members.get(numMembers - 1),
+ System.out.println("view is " + view + " and members are " + members);
+ assertEquals(members.get(1),
view.getCoordinator(Collections.singletonList(members.get(0))));
members.get(numMembers - 1).setPreferredForCoordinator(false);
assertEquals(members.get(1), view.getCoordinator(Collections.singletonList(members.get(0))));
@@ -182,7 +183,7 @@ public class GMSMembershipViewJUnitTest {
int oldSize = view.size();
for (int i = 0; i < 100; i++) {
- MemberIdentifier mbr = new InternalDistributedMember(LocalHostUtil.getLocalHost(), 2000 + i);
+ MemberIdentifier mbr = createMemberID(2000 + i);
mbr.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
mbr.setVmViewId(2);
view.add(mbr);
@@ -224,12 +225,12 @@ public class GMSMembershipViewJUnitTest {
// in the previous view-weight, causing a spurious network partition to be declared
MemberIdentifier members[] =
new MemberIdentifier[] {
- new InternalDistributedMember("localhost", 1),
- new InternalDistributedMember("localhost", 2),
- new InternalDistributedMember("localhost", 3),
- new InternalDistributedMember("localhost", 4),
- new InternalDistributedMember("localhost", 5),
- new InternalDistributedMember("localhost", 6)};
+ createMemberID(1),
+ createMemberID(2),
+ createMemberID(3),
+ createMemberID(4),
+ createMemberID(5),
+ createMemberID(6)};
int i = 0;
// weight 3
members[i].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
@@ -260,7 +261,7 @@ public class GMSMembershipViewJUnitTest {
MemberIdentifier leader = (MemberIdentifier) members[2];
assertTrue(!leader.preferredForCoordinator());
- MemberIdentifier joiningMember = new InternalDistributedMember("localhost", 7);
+ MemberIdentifier joiningMember = createMemberID(7);
joiningMember.setVmKind(MemberIdentifier.NORMAL_DM_TYPE);
joiningMember.setPreferredForCoordinator(false);
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
similarity index 94%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
index 2767bb2..a1b1260 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/MembershipDependenciesJUnitTest.java
@@ -16,6 +16,7 @@ package org.apache.geode.distributed.internal.membership;
import static com.tngtech.archunit.base.DescribedPredicate.not;
import static com.tngtech.archunit.core.domain.JavaClass.Predicates.resideInAPackage;
+import static com.tngtech.archunit.core.domain.JavaClass.Predicates.type;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
import com.tngtech.archunit.core.importer.ImportOption;
@@ -26,6 +27,8 @@ import com.tngtech.archunit.junit.CacheMode;
import com.tngtech.archunit.lang.ArchRule;
import org.junit.runner.RunWith;
+import org.apache.geode.internal.AvailablePortHelper;
+
@RunWith(ArchUnitRunner.class)
@AnalyzeClasses(packages = "org.apache.geode.distributed.internal.membership.gms..",
cacheMode = CacheMode.PER_CLASS,
@@ -56,6 +59,7 @@ public class MembershipDependenciesJUnitTest {
.or(resideInAPackage("org.apache.geode.internal.lang.."))
.or(not(resideInAPackage("org.apache.geode..")))
+ .or(type(AvailablePortHelper.class))
// TODO: we dursn't depend on the test package cause it depends on pkgs in geode-core
.or(resideInAPackage("org.apache.geode.test..")));
diff --git a/geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierFactoryImplTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierFactoryImplTest.java
similarity index 100%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierFactoryImplTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierFactoryImplTest.java
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java
similarity index 94%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java
index adf677d..2c280df 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/api/MembershipAPIArchUnitTest.java
@@ -30,6 +30,7 @@ import org.junit.runner.RunWith;
import org.apache.geode.distributed.internal.membership.gms.MemberDataBuilderImpl;
import org.apache.geode.distributed.internal.membership.gms.MembershipBuilderImpl;
import org.apache.geode.distributed.internal.membership.gms.MembershipLocatorBuilderImpl;
+import org.apache.geode.internal.inet.LocalHostUtil;
@RunWith(ArchUnitRunner.class)
@AnalyzeClasses(packages = "org.apache.geode.distributed.internal.membership.api",
@@ -51,5 +52,6 @@ public class MembershipAPIArchUnitTest {
// allowed
.or(type(MembershipBuilderImpl.class))
.or(type(MembershipLocatorBuilderImpl.class))
- .or(type(MemberDataBuilderImpl.class)));
+ .or(type(MemberDataBuilderImpl.class)
+ .or(type(LocalHostUtil.class))));
}
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberDataJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberDataJUnitTest.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberDataJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberDataJUnitTest.java
diff --git a/geode-core/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
similarity index 73%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSMembershipJUnitTest.java
index ffe14b8..8e3f614 100644
--- a/geode-core/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,15 +14,8 @@
*/
package org.apache.geode.distributed.internal.membership.gms;
-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.distributed.internal.membership.gms.util.MembershipAddressUtil.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;
import static org.junit.Assert.assertEquals;
@@ -35,10 +28,12 @@ import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.Properties;
import java.util.Random;
import java.util.Set;
import java.util.Timer;
@@ -51,13 +46,6 @@ import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
-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.DistributionMessage;
-import org.apache.geode.distributed.internal.HighPriorityAckedMessage;
-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.LifecycleListener;
import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
@@ -73,7 +61,12 @@ import org.apache.geode.distributed.internal.membership.gms.Services.Stopper;
import org.apache.geode.distributed.internal.membership.gms.interfaces.HealthMonitor;
import org.apache.geode.distributed.internal.membership.gms.interfaces.JoinLeave;
import org.apache.geode.distributed.internal.membership.gms.interfaces.Messenger;
-import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
+import org.apache.geode.distributed.internal.membership.gms.messages.AbstractGMSMessage;
+import org.apache.geode.internal.serialization.DSFIDSerializer;
+import org.apache.geode.internal.serialization.DeserializationContext;
+import org.apache.geode.internal.serialization.SerializationContext;
+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})
@@ -81,40 +74,50 @@ public class GMSMembershipJUnitTest {
private Services services;
private MembershipConfig mockConfig;
- private DistributionConfig distConfig;
private Authenticator authenticator;
private HealthMonitor healthMonitor;
- private InternalDistributedMember myMemberId;
- private InternalDistributedMember[] mockMembers;
+ private MemberIdentifier myMemberId;
+ private MemberIdentifier[] mockMembers;
private Messenger messenger;
private JoinLeave joinLeave;
private Stopper stopper;
private MembershipListener listener;
- private GMSMembership<InternalDistributedMember> manager;
- private List<InternalDistributedMember> members;
+ private GMSMembership<MemberIdentifier> manager;
+ private List<MemberIdentifier> members;
private MessageListener messageListener;
private LifecycleListener directChannelCallback;
@Before
public void initMocks() throws Exception {
- 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, "2000");
- nonDefault.put(LOCATORS, "localhost[10344]");
- distConfig = new DistributionConfigImpl(nonDefault);
- RemoteTransportConfig tconfig =
- new RemoteTransportConfig(distConfig, ClusterDistributionManager.NORMAL_DM_TYPE);
-
- mockConfig = new ServiceConfig(tconfig, distConfig);
+ mockConfig = new MembershipConfig() {
+ @Override
+ public long getMemberTimeout() {
+ return 2000;
+ }
+
+ @Override
+ public String getLocators() {
+ return "localhost[10344]";
+ }
+
+ @Override
+ public boolean getDisableTcp() {
+ return true;
+ }
+
+ @Override
+ public long getAckWaitThreshold() {
+ return 1;
+ }
+
+ @Override
+ public long getAckSevereAlertThreshold() {
+ return 10;
+ }
+ };
authenticator = mock(Authenticator.class);
- myMemberId = new InternalDistributedMember("localhost", 8887);
+ myMemberId = createMemberID(8887);
GMSMemberData m = (GMSMemberData) myMemberId.getMemberData();
UUID uuid = new UUID(12345, 12345);
m.setUUID(uuid);
@@ -142,9 +145,9 @@ public class GMSMembershipJUnitTest {
when(services.getTimer()).thenReturn(t);
Random r = new Random();
- mockMembers = new InternalDistributedMember[5];
+ mockMembers = new MemberIdentifier[5];
for (int i = 0; i < mockMembers.length; i++) {
- mockMembers[i] = new InternalDistributedMember("localhost", 8888 + i);
+ mockMembers[i] = createMemberID(8888 + i);
m = (GMSMemberData) mockMembers[i].getMemberData();
uuid = new UUID(r.nextLong(), r.nextLong());
m.setUUID(uuid);
@@ -157,6 +160,10 @@ public class GMSMembershipJUnitTest {
manager = new GMSMembership(listener, messageListener, directChannelCallback);
manager.getGMSManager().init(services);
when(services.getManager()).thenReturn(manager.getGMSManager());
+
+ DSFIDSerializer serializer = new DSFIDSerializerImpl();
+ when(services.getSerializer()).thenReturn(serializer);
+ Services.registerSerializables(serializer);
}
@After
@@ -169,7 +176,8 @@ public class GMSMembershipJUnitTest {
@Test
public void testSendMessage() throws Exception {
- HighPriorityAckedMessage m = new HighPriorityAckedMessage();
+ services.getSerializer().registerDSFID(HIGH_PRIORITY_ACKED_MESSAGE, TestMessage.class);
+ TestMessage m = new TestMessage();
m.setRecipient(mockMembers[0]);
manager.getGMSManager().start();
manager.getGMSManager().started();
@@ -177,8 +185,9 @@ public class GMSMembershipJUnitTest {
List<MemberIdentifier> gmsMembers =
members.stream().map(x -> ((MemberIdentifier) x)).collect(Collectors.toList());
manager.getGMSManager().installView(new GMSMembershipView(myGMSMemberId, 1, gmsMembers));
- Set<InternalDistributedMember> failures =
- manager.send(m.getRecipientsArray(), m);
+ MemberIdentifier[] destinations = new MemberIdentifier[] {mockMembers[0]};
+ Set<MemberIdentifier> failures =
+ manager.send(destinations, m);
verify(messenger).send(isA(Message.class));
if (failures != null) {
assertEquals(0, failures.size());
@@ -187,8 +196,8 @@ public class GMSMembershipJUnitTest {
- private GMSMembershipView createView(InternalDistributedMember creator, int viewId,
- List<InternalDistributedMember> members) {
+ private GMSMembershipView createView(MemberIdentifier creator, int viewId,
+ List<MemberIdentifier> members) {
List<MemberIdentifier> gmsMembers = new ArrayList<>(members);
return new GMSMembershipView(creator, viewId, gmsMembers);
}
@@ -199,32 +208,32 @@ public class GMSMembershipJUnitTest {
manager.getGMSManager().started();
manager.isJoining = true;
- List<InternalDistributedMember> viewmembers =
- Arrays.asList(new InternalDistributedMember[] {mockMembers[0], myMemberId});
+ List<MemberIdentifier> viewmembers =
+ Arrays.asList(new MemberIdentifier[] {mockMembers[0], myMemberId});
manager.getGMSManager().installView(createView(myMemberId, 2, viewmembers));
// add a surprise member that will be shunned due to it's having
// an old view ID
- InternalDistributedMember surpriseMember = mockMembers[2];
+ MemberIdentifier surpriseMember = mockMembers[2];
surpriseMember.setVmViewId(1);
manager.handleOrDeferSurpriseConnect(surpriseMember);
assertEquals(1, manager.getStartupEvents().size());
// add a surprise member that will be accepted
- InternalDistributedMember surpriseMember2 = mockMembers[3];
+ MemberIdentifier surpriseMember2 = mockMembers[3];
surpriseMember2.setVmViewId(3);
manager.handleOrDeferSurpriseConnect(surpriseMember2);
assertEquals(2, manager.getStartupEvents().size());
// suspect a member
- InternalDistributedMember suspectMember = mockMembers[1];
+ MemberIdentifier suspectMember = mockMembers[1];
manager.handleOrDeferSuspect(
new SuspectMember(mockMembers[0], suspectMember, "testing"));
// suspect messages aren't queued - they're ignored before joining the system
assertEquals(2, manager.getStartupEvents().size());
verify(listener, never()).memberSuspect(suspectMember, mockMembers[0], "testing");
- HighPriorityAckedMessage m = new HighPriorityAckedMessage();
+ TestMessage m = new TestMessage();
mockMembers[0].setVmViewId(1);
m.setRecipient(mockMembers[0]);
m.setSender(mockMembers[1]);
@@ -233,13 +242,13 @@ public class GMSMembershipJUnitTest {
// this view officially adds surpriseMember2
viewmembers = Arrays
- .asList(new InternalDistributedMember[] {mockMembers[0], myMemberId, surpriseMember2});
+ .asList(new MemberIdentifier[] {mockMembers[0], myMemberId, surpriseMember2});
manager.handleOrDeferViewEvent(new MembershipView(myMemberId, 3, viewmembers));
assertEquals(4, manager.getStartupEvents().size());
// add a surprise member that will be shunned due to it's having
// an old view ID
- InternalDistributedMember surpriseMember3 = mockMembers[4];
+ MemberIdentifier surpriseMember3 = mockMembers[4];
surpriseMember.setVmViewId(1);
manager.handleOrDeferSurpriseConnect(surpriseMember);
assertEquals(5, manager.getStartupEvents().size());
@@ -247,7 +256,7 @@ public class GMSMembershipJUnitTest {
// process a new view after we finish joining but before event processing has started
manager.isJoining = false;
mockMembers[4].setVmViewId(4);
- viewmembers = Arrays.asList(new InternalDistributedMember[] {mockMembers[0], myMemberId,
+ viewmembers = Arrays.asList(new MemberIdentifier[] {mockMembers[0], myMemberId,
surpriseMember2, mockMembers[4]});
manager.handleOrDeferViewEvent(new MembershipView(myMemberId, 4, viewmembers));
assertEquals(6, manager.getStartupEvents().size());
@@ -292,16 +301,16 @@ public class GMSMembershipJUnitTest {
manager.getGMSManager().started();
manager.isJoining = true;
- List<InternalDistributedMember> viewmembers =
- Arrays.asList(new InternalDistributedMember[] {mockMembers[0], mockMembers[1], myMemberId});
+ List<MemberIdentifier> viewmembers =
+ Arrays.asList(new MemberIdentifier[] {mockMembers[0], mockMembers[1], myMemberId});
GMSMembershipView view = createView(myMemberId, 2, viewmembers);
manager.getGMSManager().installView(view);
when(services.getJoinLeave().getView()).thenReturn(view);
- InternalDistributedMember[] destinations = new InternalDistributedMember[viewmembers.size()];
+ MemberIdentifier[] destinations = new MemberIdentifier[viewmembers.size()];
for (int i = 0; i < destinations.length; i++) {
- InternalDistributedMember id = viewmembers.get(i);
- destinations[i] = new InternalDistributedMember(id.getHost(), id.getMembershipPort());
+ MemberIdentifier id = viewmembers.get(i);
+ destinations[i] = createMemberID(id.getMembershipPort());
}
manager.checkAddressesForUUIDs(destinations);
// each destination w/o a UUID should have been replaced with the corresponding
@@ -313,7 +322,7 @@ public class GMSMembershipJUnitTest {
@Test
public void noDispatchWhenSick() throws MemberShunnedException, MemberStartupException {
- final DistributionMessage msg = mock(DistributionMessage.class);
+ final Message msg = mock(Message.class);
when(msg.dropMessageWhenMembershipIsPlayingDead()).thenReturn(true);
final GMSMembership spy = Mockito.spy(manager);
@@ -324,8 +333,31 @@ public class GMSMembershipJUnitTest {
spy.handleOrDeferMessage(msg);
- verify(spy, never()).dispatchMessage(any(DistributionMessage.class));
+ verify(spy, never()).dispatchMessage(any(Message.class));
assertThat(spy.getStartupEvents()).isEmpty();
}
+ public static class TestMessage extends AbstractGMSMessage {
+
+ @Override
+ public int getDSFID() {
+ return HIGH_PRIORITY_ACKED_MESSAGE;
+ }
+
+ @Override
+ public void toData(DataOutput out, SerializationContext context) throws IOException {
+
+ }
+
+ @Override
+ public void fromData(DataInput in, DeserializationContext context)
+ throws IOException, ClassNotFoundException {
+
+ }
+
+ @Override
+ public Version[] getSerializationVersions() {
+ return null;
+ }
+ }
}
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/GMSUtilTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSUtilTest.java
similarity index 100%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/GMSUtilTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/GMSUtilTest.java
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java
similarity index 98%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java
index 8a3cb67..00dfe8b 100644
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImplTest.java
@@ -24,6 +24,7 @@ import org.junit.Test;
import org.apache.geode.distributed.internal.membership.api.MemberData;
import org.apache.geode.distributed.internal.membership.api.MemberDataBuilder;
+import org.apache.geode.internal.inet.LocalHostUtil;
import org.apache.geode.internal.serialization.Version;
public class MemberDataBuilderImplTest {
@@ -38,7 +39,7 @@ public class MemberDataBuilderImplTest {
@Test
public void testNewBuilderForLocalHost() throws UnknownHostException {
- InetAddress localhost = InetAddress.getLocalHost();
+ InetAddress localhost = LocalHostUtil.getLocalHost();
MemberData data = MemberDataBuilder.newBuilderForLocalHost("hostname").build();
assertThat(data.getInetAddress()).isEqualTo(localhost);
assertThat(data.getHostName()).isEqualTo("hostname");
diff --git a/geode-core/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
similarity index 92%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSEncryptJUnitTest.java
index 318acb5..adee65f 100755
--- a/geode-core/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,13 +14,13 @@
*/
package org.apache.geode.distributed.internal.membership.gms.messenger;
+import static org.apache.geode.distributed.internal.membership.gms.util.MembershipAddressUtil.createMemberID;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
-import java.util.Properties;
import java.util.concurrent.Callable;
import org.junit.Assert;
@@ -28,16 +28,10 @@ import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import org.apache.geode.distributed.ConfigurationProperties;
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
-import org.apache.geode.distributed.internal.DistributionConfigImpl;
-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.MemberIdentifier;
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.Services;
-import org.apache.geode.internal.admin.remote.RemoteTransportConfig;
import org.apache.geode.test.junit.categories.MembershipTest;
import org.apache.geode.test.junit.rules.ConcurrencyRule;
@@ -61,20 +55,19 @@ public class GMSEncryptJUnitTest {
}
private void initMocks(String algo) throws Exception {
- Properties nonDefault = new Properties();
- nonDefault.put(ConfigurationProperties.SECURITY_UDP_DHALGO, algo);
- DistributionConfigImpl config = new DistributionConfigImpl(nonDefault);
- RemoteTransportConfig tconfig =
- new RemoteTransportConfig(config, ClusterDistributionManager.NORMAL_DM_TYPE);
-
- MembershipConfig membershipConfig = new ServiceConfig(tconfig, config);
+ MembershipConfig membershipConfig = new MembershipConfig() {
+ @Override
+ public String getSecurityUDPDHAlgo() {
+ return algo;
+ }
+ };
services = mock(Services.class);
when(services.getConfig()).thenReturn(membershipConfig);
mockMembers = new MemberIdentifier[4];
for (int i = 0; i < mockMembers.length; i++) {
- mockMembers[i] = new InternalDistributedMember("localhost", 8888 + i);
+ mockMembers[i] = createMemberID(8888 + i);
}
int viewId = 1;
List<MemberIdentifier> mbrs = new LinkedList<>();
diff --git a/geode-core/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
similarity index 92%
rename from geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/GMSQuorumCheckerJUnitTest.java
index 54ebc20..783917d 100644
--- a/geode-core/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
@@ -39,10 +39,9 @@ import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
-import org.apache.geode.distributed.internal.ClusterDistributionManager;
-import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
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.test.junit.categories.MembershipTest;
@Category({MembershipTest.class})
@@ -56,7 +55,7 @@ public class GMSQuorumCheckerJUnitTest {
public void initMocks() {
mockMembers = new MemberIdentifier[12];
for (int i = 0; i < mockMembers.length; i++) {
- mockMembers[i] = new InternalDistributedMember("localhost", 8888 + i);
+ mockMembers[i] = MembershipAddressUtil.createMemberID(8888 + i);
}
channel = mock(JChannel.class);
address = mock(JGAddress.class);
@@ -136,8 +135,8 @@ public class GMSQuorumCheckerJUnitTest {
@Test
public void testQuorumChecker10Servers2Locators4ServersLost() throws Exception {
GMSMembershipView view = prepareView();
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < mockMembers.length; i++) {
@@ -163,8 +162,8 @@ public class GMSQuorumCheckerJUnitTest {
@Test
public void testQuorumChecker10Servers2Locators4ServersAnd1LocatorLost() throws Exception {
GMSMembershipView view = prepareView();
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < mockMembers.length; i++) {
@@ -194,8 +193,8 @@ public class GMSQuorumCheckerJUnitTest {
public void testQuorumChecker10Servers2Locators5ServersAnd2LocatorsButNotLeadMemberLost()
throws Exception {
GMSMembershipView view = prepareView();
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < mockMembers.length; i++) {
@@ -227,8 +226,8 @@ public class GMSQuorumCheckerJUnitTest {
public void testQuorumChecker10Servers2Locators5ServerAnd1LocatorWithLeadMemberLost()
throws Exception {
GMSMembershipView view = prepareView();
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < mockMembers.length; i++) {
@@ -258,8 +257,8 @@ public class GMSQuorumCheckerJUnitTest {
public void testQuorumChecker2Servers2LocatorsLeadMemberLost() throws Exception {
int numMembers = 4;
GMSMembershipView view = prepareView(numMembers);
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < numMembers; i++) {
@@ -282,8 +281,8 @@ public class GMSQuorumCheckerJUnitTest {
public void testQuorumChecker2Servers2LocatorsLeadMemberAnd1LocatorLost() throws Exception {
int numMembers = 4;
GMSMembershipView view = prepareView(numMembers);
- mockMembers[0].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
- mockMembers[1].setVmKind(ClusterDistributionManager.LOCATOR_DM_TYPE);
+ mockMembers[0].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
+ mockMembers[1].setVmKind(MemberIdentifier.LOCATOR_DM_TYPE);
Set<Integer> pongResponders = new HashSet<>();
for (int i = 0; i < numMembers; i++) {
diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java
similarity index 95%
rename from geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java
rename to geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java
index 3a4f3c5..2af832c 100755
--- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/messenger/StatRecorderJUnitTest.java
@@ -14,8 +14,6 @@
*/
package org.apache.geode.distributed.internal.membership.gms.messenger;
-import static org.apache.geode.distributed.ConfigurationProperties.LOCATORS;
-import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.isA;
@@ -25,7 +23,6 @@ import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import java.util.Properties;
import java.util.concurrent.RejectedExecutionException;
import org.jgroups.Event;
@@ -163,9 +160,6 @@ public class StatRecorderJUnitTest {
Services mockServices = mock(Services.class);
// first test to see if the non-multicast stack has the recorder installed
- Properties nonDefault = new Properties();
- nonDefault.put(MCAST_PORT, "0");
- nonDefault.put(LOCATORS, "localhost[12345]");
MembershipConfig mockConfig = mock(MembershipConfig.class);
when(mockConfig.getMembershipPortRange()).thenReturn(new int[] {0, 10});
when(mockConfig.getSecurityUDPDHAlgo()).thenReturn("");
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/MembershipAddressUtil.java
new file mode 100644
index 0000000..975548c
--- /dev/null
+++ b/geode-membership/src/integrationTest/java/org/apache/geode/distributed/internal/membership/gms/util/MembershipAddressUtil.java
@@ -0,0 +1,68 @@
+/*
+ * 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.util;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import org.jgroups.util.UUID;
+
+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.gms.GMSMemberData;
+import org.apache.geode.internal.serialization.Version;
+
+public class MembershipAddressUtil {
+ public static MemberIdentifier createMemberID(short version, int viewId, long msb, long lsb)
+ throws UnknownHostException {
+ MemberData memberData = MemberDataBuilder.newBuilderForLocalHost("localhost")
+ .setVersionOrdinal(version)
+ .setVmViewId(viewId)
+ .setUuidMostSignificantBits(msb)
+ .setUuidLeastSignificantBits(lsb)
+ .build();
+ MemberIdentifier gmsMember = new MemberIdentifierFactoryImpl().create(memberData);
+ return gmsMember;
+ }
+
+ /**
+ * Create a new membership ID that is preferred for coordinator and has a UUID established
+ */
+ public static MemberIdentifier createMemberID(int port) {
+ UUID uuid = UUID.randomUUID();
+ try {
+ return new MemberIdentifierFactoryImpl().create(new GMSMemberData(InetAddress.getLocalHost(),
+ port, Version.CURRENT_ORDINAL, uuid.getMostSignificantBits(),
+ uuid.getLeastSignificantBits(), -1));
+ } catch (UnknownHostException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ /**
+ * Create a new membership ID that is preferred for coordinator and has no UUID
+ */
+ public static MemberIdentifier createMemberIDWithNoUUID(int port) {
+ try {
+ return new MemberIdentifierFactoryImpl().create(new GMSMemberData(InetAddress.getLocalHost(),
+ port, Version.CURRENT_ORDINAL, 0l, 0l, -1));
+ } catch (UnknownHostException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+}
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierImpl.java
index 0b63583..bc3aa73 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/api/MemberIdentifierImpl.java
@@ -608,7 +608,7 @@ public class MemberIdentifierImpl implements MemberIdentifier, DataSerializableF
@Override
public int getDSFID() {
- return DISTRIBUTED_MEMBER;
+ return DEFAULT_MEMBER_ID;
}
@Override
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberData.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberData.java
index 4fed230..c8c1c57 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberData.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/GMSMemberData.java
@@ -23,6 +23,7 @@ import java.net.InetAddress;
import org.jgroups.util.UUID;
import org.apache.geode.distributed.internal.membership.api.MemberData;
+import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
import org.apache.geode.internal.serialization.DeserializationContext;
import org.apache.geode.internal.serialization.SerializationContext;
import org.apache.geode.internal.serialization.StaticSerialization;
@@ -120,6 +121,8 @@ public class GMSMemberData implements MemberData, Comparable<GMSMemberData> {
this.uuidMSBs = msbs;
this.uuidLSBs = lsbs;
this.vmViewId = viewId;
+ this.vmKind = MemberIdentifier.NORMAL_DM_TYPE;
+ this.preferredForCoordinator = true;
}
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImpl.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImpl.java
index f38a7a9..7545290 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImpl.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/MemberDataBuilderImpl.java
@@ -20,6 +20,7 @@ import java.net.UnknownHostException;
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.internal.inet.LocalHostUtil;
import org.apache.geode.internal.serialization.Version;
/**
@@ -75,7 +76,7 @@ public class MemberDataBuilderImpl implements MemberDataBuilder {
private MemberDataBuilderImpl(String fakeHostName) {
try {
- inetAddress = InetAddress.getLocalHost();
+ inetAddress = LocalHostUtil.getLocalHost();
} catch (UnknownHostException e2) {
throw new RuntimeException("Unable to resolve local host address", e2);
}
diff --git a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/Services.java b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/Services.java
index 2592a20..33aabab 100644
--- a/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/Services.java
+++ b/geode-membership/src/main/java/org/apache/geode/distributed/internal/membership/gms/Services.java
@@ -14,6 +14,7 @@
*/
package org.apache.geode.distributed.internal.membership.gms;
+import static org.apache.geode.internal.serialization.DataSerializableFixedID.DEFAULT_MEMBER_ID;
import static org.apache.geode.internal.serialization.DataSerializableFixedID.FINAL_CHECK_PASSED_MESSAGE;
import static org.apache.geode.internal.serialization.DataSerializableFixedID.FIND_COORDINATOR_REQ;
import static org.apache.geode.internal.serialization.DataSerializableFixedID.FIND_COORDINATOR_RESP;
@@ -40,6 +41,7 @@ import org.apache.geode.distributed.internal.membership.api.Authenticator;
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.MemberIdentifierFactory;
+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.MembershipClosedException;
import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
@@ -173,7 +175,7 @@ public class Services<ID extends MemberIdentifier> {
serializer.registerDSFID(FIND_COORDINATOR_RESP, FindCoordinatorResponse.class);
serializer.registerDSFID(JOIN_RESPONSE, JoinResponseMessage.class);
serializer.registerDSFID(JOIN_REQUEST, JoinRequestMessage.class);
-
+ serializer.registerDSFID(DEFAULT_MEMBER_ID, MemberIdentifierImpl.class);
}
/**
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..982d06f 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
@@ -27,6 +27,7 @@ import java.util.function.Supplier;
import org.apache.logging.log4j.Logger;
+import org.apache.geode.annotations.VisibleForTesting;
import org.apache.geode.distributed.internal.membership.api.MemberIdentifier;
import org.apache.geode.distributed.internal.membership.api.Membership;
import org.apache.geode.distributed.internal.membership.api.MembershipConfig;
@@ -153,6 +154,11 @@ public class MembershipLocatorImpl<ID extends MemberIdentifier> implements Membe
return this.handler.isHandled(clazz);
}
+ @VisibleForTesting
+ public GMSLocator getGMSLocator() {
+ return this.gmsLocator;
+ }
+
public void stop() {
if (isAlive()) {
logger.info("Stopping {}", this);
diff --git a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DataSerializableFixedID.java b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DataSerializableFixedID.java
index d4e45ab..812f8f4 100644
--- a/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DataSerializableFixedID.java
+++ b/geode-serialization/src/main/java/org/apache/geode/internal/serialization/DataSerializableFixedID.java
@@ -70,7 +70,7 @@ public interface DataSerializableFixedID extends SerializationVersions, BasicSer
short VIEW_ACK_MESSAGE = -151;
short INSTALL_VIEW_MESSAGE = -150;
- // -149 is unused;
+ short DEFAULT_MEMBER_ID = -149; // membership module's default identifier
short NETVIEW = -148;
short GET_VIEW_REQ = -147;
short GET_VIEW_RESP = -146;