[hornetq-commits] JBoss hornetq SVN: r12144 - trunk/hornetq-core/src/test/java/org/hornetq/tests/util.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Feb 17 17:47:38 EST 2012
Author: clebert.suconic at jboss.com
Date: 2012-02-17 17:47:37 -0500 (Fri, 17 Feb 2012)
New Revision: 12144
Modified:
trunk/hornetq-core/src/test/java/org/hornetq/tests/util/ServiceTestBase.java
Log:
Adding new method on waitForTopology
Modified: trunk/hornetq-core/src/test/java/org/hornetq/tests/util/ServiceTestBase.java
===================================================================
--- trunk/hornetq-core/src/test/java/org/hornetq/tests/util/ServiceTestBase.java 2012-02-17 20:14:46 UTC (rev 12143)
+++ trunk/hornetq-core/src/test/java/org/hornetq/tests/util/ServiceTestBase.java 2012-02-17 22:47:37 UTC (rev 12144)
@@ -34,6 +34,7 @@
import org.hornetq.api.core.client.HornetQClient;
import org.hornetq.api.core.client.ServerLocator;
import org.hornetq.core.client.impl.Topology;
+import org.hornetq.core.client.impl.TopologyMember;
import org.hornetq.core.config.Configuration;
import org.hornetq.core.logging.Logger;
import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
@@ -91,15 +92,20 @@
- protected void waitForTopology(final HornetQServer server, final int nodes) throws Exception
+ protected Topology waitForTopology(final HornetQServer server, final int nodes) throws Exception
{
- waitForTopology(server, nodes, WAIT_TIMEOUT);
+ return waitForTopology(server, nodes, -1, WAIT_TIMEOUT);
}
- protected void waitForTopology(final HornetQServer server, final int nodes, final long timeout) throws Exception
+ protected Topology waitForTopology(final HornetQServer server, final int nodes, final int backups) throws Exception
{
- log.debug("waiting for " + nodes + " on the topology for server = " + server);
+ return waitForTopology(server, nodes, backups, WAIT_TIMEOUT);
+ }
+ protected Topology waitForTopology(final HornetQServer server, final int liveNodes, final int backupNodes, final long timeout) throws Exception
+ {
+ log.debug("waiting for " + liveNodes + " on the topology for server = " + server);
+
long start = System.currentTimeMillis();
Set<ClusterConnection> ccs = server.getClusterManager().getClusterConnections();
@@ -109,24 +115,44 @@
throw new IllegalStateException("You need a single cluster connection on this version of waitForTopology on ServiceTestBase");
}
- Topology topology = ccs.iterator().next().getTopology();
+ Topology topology = server.getClusterManager().getDefaultConnection().getTopology();
+ int liveNodesCount = 0;
+
+ int backupNodesCount = 0;
+
+
do
{
- if (nodes == topology.getMembers().size())
+
+ liveNodesCount = 0;
+ backupNodesCount = 0;
+
+ for (TopologyMember member : topology.getMembers())
+ {
+ if (member.getA() != null)
+ {
+ liveNodesCount ++;
+ }
+ if (member.getB() != null)
+ {
+ backupNodesCount ++;
+ }
+ }
+
+ if ((liveNodes == -1 || liveNodes == liveNodesCount) && (backupNodes == -1 || backupNodes == backupNodesCount))
{
- return;
+ return topology;
}
Thread.sleep(10);
}
while (System.currentTimeMillis() - start < timeout);
- String msg = "Timed out waiting for cluster topology of " + nodes +
- " (received " +
- topology.getMembers().size() +
+ String msg = "Timed out waiting for cluster topology of live=" + liveNodes + ",backup=" + backupNodes +
+ " (received live="+ liveNodesCount + ", backup=" + backupNodesCount +
") topology = " +
- topology +
+ topology.describe() +
")";
log.error(msg);
More information about the hornetq-commits
mailing list