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());

Reply via email to