This is an automated email from the ASF dual-hosted git repository.
khowe pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 4885473 GEODE-5361: Add wait for MBean federation after member
restarts (#2090)
4885473 is described below
commit 4885473d30aac675aa9917160a03a2e996f78c10
Author: Helena Bales <[email protected]>
AuthorDate: Thu Jul 5 12:29:41 2018 -0700
GEODE-5361: Add wait for MBean federation after member restarts (#2090)
---
.../geode/management/JMXMBeanReconnectDUnitTest.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git
a/geode-core/src/test/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
b/geode-core/src/test/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
index 2bf49c7..6e19a9c 100644
---
a/geode-core/src/test/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
+++
b/geode-core/src/test/java/org/apache/geode/management/JMXMBeanReconnectDUnitTest.java
@@ -16,6 +16,7 @@
package org.apache.geode.management;
import static java.util.concurrent.TimeUnit.MINUTES;
+import static java.util.concurrent.TimeUnit.SECONDS;
import static java.util.stream.Collectors.toList;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
@@ -34,6 +35,7 @@ import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
+import org.awaitility.Awaitility;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -193,6 +195,8 @@ public class JMXMBeanReconnectDUnitTest {
List<ObjectName> locatorBeansExcludingStoppedMember =
initialLocator1GemfireBeans.stream()
.filter(excludingBeansFor("server-" + SERVER_1_VM_INDEX))
.collect(toList());
+ int numServerMBeans =
+ initialLocator1GemfireBeans.size() -
locatorBeansExcludingStoppedMember.size();
assertSoftly(softly -> {
softly.assertThat(intermediateLocator2GemfireBeans)
@@ -203,6 +207,7 @@ public class JMXMBeanReconnectDUnitTest {
server1.waitTilServerFullyReconnected();
locator1.waitTillRegionsAreReadyOnServers(REGION_PATH, SERVER_COUNT);
+ waitForMBeanFederationFrom(numServerMBeans, server1);
waitForLocatorsToAgreeOnMembership();
List<ObjectName> finalLocator1GemfireBeans =
@@ -218,6 +223,21 @@ public class JMXMBeanReconnectDUnitTest {
});
}
+ private void waitForMBeanFederationFrom(int numMemberMBeans, MemberVM
member) {
+ String memberName = "server-" + member.getVM().getId();
+ Awaitility.waitAtMost(10, SECONDS).until(() -> {
+ List<ObjectName> beans = null;
+ try {
+ beans = getFederatedGemfireBeansFrom(locator1);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ List<ObjectName> beanList =
+ beans.stream().filter(b ->
b.toString().contains(memberName)).sorted().collect(toList());
+ assertThat(beanList.size()).isEqualTo(numMemberMBeans);
+ });
+ }
+
private static List<ObjectName> getFederatedGemfireBeansFrom(MemberVM member)
throws IOException {
String url = jmxBeanLocalhostUrlString(member.getJmxPort());