Skip to content

Commit

Permalink
Enh 36384371 - [35575212->14.1.1.0.17] ENH: Improve JOINING member re…
Browse files Browse the repository at this point in the history
…porting version for 14c releases.

Remote remote.full on release/coherence-v14.1.1.0 success, changes 107343, synced @107392, job.9.20240311145654.23347
(auto-submit integ 107400 release/coherence-v14.1.1.0 -> coherence-ce/release/coherence-ce-v14.1.1.0 after successfully running remote remote.full)
Job ID: job.9.20240311165602.17348

[git-p4: depot-paths = "//dev/coherence-ce/release/coherence-ce-v14.1.1.0/": change = 107408]
  • Loading branch information
jfialli committed Mar 11, 2024
1 parent 79892fd commit 006c7f8
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
/*
* Copyright (c) 2000, 2020, Oracle and/or its affiliates.
* Copyright (c) 2000, 2024, Oracle and/or its affiliates.
*
* Licensed under the Universal Permissive License v 1.0 as shown at
* http://oss.oracle.com/licenses/upl.
* https://oss.oracle.com/licenses/upl.
*/

package com.tangosol.coherence.component.net;

import com.tangosol.coherence.component.net.memberSet.ActualMemberSet;
import com.tangosol.coherence.component.net.memberSet.actualMemberSet.ServiceMemberSet;
import com.tangosol.coherence.component.net.memberSet.actualMemberSet.serviceMemberSet.MasterMemberSet;

import org.junit.Test;

import java.util.HashSet;
import java.util.Set;

import static com.tangosol.coherence.component.net.memberSet.actualMemberSet.serviceMemberSet.MasterMemberSet.TRANSPORT_COMPATIBILITY;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;

Expand Down Expand Up @@ -59,6 +62,40 @@ public void testRandom()
assertThat(nMember, is(0));
}

// unit test for COH-28004
@Test
public void validateCompatForMemberJoiningVersion()
{
MasterMemberSet setMembers = instantiateMasterMemberSet(new int[] {1,2,3,4,5});

// simulate various MEMBER states encountered during Coherence member joining cluster
setMembers.setState(1, ServiceMemberSet.MEMBER_JOINED);
setMembers.setState(2, ServiceMemberSet.MEMBER_JOINED);
setMembers.setState(3, ServiceMemberSet.MEMBER_JOINING);
setMembers.setState(4, ServiceMemberSet.MEMBER_NEW);
setMembers.setState(5, ServiceMemberSet.MEMBER_LEAVING);


// validate MasterMemberset.getDescription() from joined cluster log message
int nCompatCount = 0;

for (String sLine : setMembers.getDescription().split("\\R"))
{
if (sLine.contains("JOINING") || sLine.contains("NEW"))
{
assertThat("validating " + sLine + " contains \" + TRANSPORT_COMPATIBILITY\"",
sLine.contains(TRANSPORT_COMPATIBILITY), is(true));
nCompatCount++;
}
else if (sLine.contains("JOINED") || sLine.contains("LEAVING"))
{
assertThat("validating " + sLine + " does not contain " + TRANSPORT_COMPATIBILITY,
sLine.contains(TRANSPORT_COMPATIBILITY), is(false));
}
}
assertThat(nCompatCount, is(2));
}

protected static MemberSet instantiateMemberSet(int[] anMember)
{
MemberSet setMembers = new ActualMemberSet();
Expand All @@ -68,4 +105,14 @@ protected static MemberSet instantiateMemberSet(int[] anMember)
}
return setMembers;
}

protected static MasterMemberSet instantiateMasterMemberSet(int[] anMember)
{
MasterMemberSet setMembers = new MasterMemberSet();
for (int nMember : anMember)
{
setMembers.add(MemberTest.instantiateMember(nMember));
}
return setMembers;
}
}
Binary file not shown.

0 comments on commit 006c7f8

Please sign in to comment.