allow tests to run if port 1099 is in use

git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1050087 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Gary Tully 2010-12-16 18:20:56 +00:00
parent 44d6be4e33
commit 7a7b380def
3 changed files with 27 additions and 56 deletions

View File

@ -125,13 +125,12 @@ public class DuplexNetworkMBeanTest {
if (timeout > 0) {
Thread.sleep(100);
}
MBeanServerConnection mbsc = getMBeanServerConnection();
if (mbsc != null) {
LOG.info("Query name: " + beanName);
mbeans = mbsc.queryMBeans(beanName, null);
if (mbeans != null) {
count = mbeans.size();
}
LOG.info("Query name: " + beanName);
mbeans = broker.getManagementContext().queryNames(beanName, null);
if (mbeans != null) {
count = mbeans.size();
} else {
logAllMbeans(broker);
}
} while ((mbeans == null || mbeans.isEmpty()) && expiryTime > System.currentTimeMillis());
@ -145,15 +144,10 @@ public class DuplexNetworkMBeanTest {
return count;
}
private MBeanServerConnection getMBeanServerConnection() throws MalformedURLException {
final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
MBeanServerConnection mbsc = null;
private void logAllMbeans(BrokerService broker) throws MalformedURLException {
try {
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
mbsc = jmxc.getMBeanServerConnection();
// trace all existing MBeans
Set<?> all = mbsc.queryMBeans(null, null);
Set<?> all = broker.getManagementContext().queryNames(null, null);
LOG.info("Total MBean count=" + all.size());
for (Object o : all) {
ObjectInstance bean = (ObjectInstance)o;
@ -162,6 +156,5 @@ public class DuplexNetworkMBeanTest {
} catch (Exception ignored) {
LOG.warn("getMBeanServer ex: " + ignored);
}
return mbsc;
}
}

View File

@ -140,7 +140,7 @@ public class NetworkBrokerDetachTest {
}
assertTrue("got expected consumer count from mbean within time limit",
verifyConsumerCount(1, destination, BROKER_NAME));
verifyConsumerCount(1, destination, broker));
LOG.info("Stopping Consumer on the networked broker ...");
@ -148,7 +148,7 @@ public class NetworkBrokerDetachTest {
consConn.close();
// We should have 0 consumer for the queue on the local broker
assertTrue("got expected 0 count from mbean within time limit", verifyConsumerCount(0, destination, BROKER_NAME));
assertTrue("got expected 0 count from mbean within time limit", verifyConsumerCount(0, destination, broker));
}
@ -167,10 +167,10 @@ public class NetworkBrokerDetachTest {
registerDurableConsumer(broker, counter);
assertTrue("got expected consumer count from local broker mbean within time limit",
verifyConsumerCount(2, destination, BROKER_NAME));
verifyConsumerCount(2, destination, broker));
assertTrue("got expected consumer count from network broker mbean within time limit",
verifyConsumerCount(2, destination, REM_BROKER_NAME));
verifyConsumerCount(2, destination, networkedBroker));
sendMessageTo(destination, broker);
@ -194,14 +194,14 @@ public class NetworkBrokerDetachTest {
// expect similar after restart
assertTrue("got expected consumer count from local broker mbean within time limit",
verifyConsumerCount(2, destination, BROKER_NAME));
verifyConsumerCount(2, destination, broker));
// a durable sub is auto bridged on restart unless dynamicOnly=true
assertTrue("got expected consumer count from network broker mbean within time limit",
verifyConsumerCount(2, destination, REM_BROKER_NAME));
verifyConsumerCount(2, destination, networkedBroker));
assertTrue("got no inactive subs on broker", verifyDurableConsumerCount(0, BROKER_NAME));
assertTrue("got no inactive subs on other broker", verifyDurableConsumerCount(0, REM_BROKER_NAME));
assertTrue("got no inactive subs on broker", verifyDurableConsumerCount(0, broker));
assertTrue("got no inactive subs on other broker", verifyDurableConsumerCount(0, networkedBroker));
assertTrue("Got two more messages after restart", verifyMessageCount(4, count));
TimeUnit.SECONDS.sleep(1);
@ -259,20 +259,20 @@ public class NetworkBrokerDetachTest {
}
// JMX Helper Methods
private boolean verifyConsumerCount(final long expectedCount, final ActiveMQDestination destination, final String brokerName) throws Exception {
private boolean verifyConsumerCount(final long expectedCount, final ActiveMQDestination destination, final BrokerService broker) throws Exception {
return Wait.waitFor(new Wait.Condition() {
public boolean isSatisified() throws Exception {
boolean result = false;
MBeanServerConnection mbsc = getMBeanServerConnection();
if (mbsc != null) {
try {
// We should have 1 consumer for the queue on the local broker
Object consumers = getAttribute(mbsc, brokerName, destination.isQueue() ? "Queue" : "Topic", "Destination=" + destination.getPhysicalName(), "ConsumerCount");
Object consumers = broker.getManagementContext().getAttribute(getObjectName(broker.getBrokerName(), destination.isQueue() ? "Queue" : "Topic", "Destination=" + destination.getPhysicalName()), "ConsumerCount");
if (consumers != null) {
LOG.info("Consumers for " + destination.getPhysicalName() + " on " + brokerName + " : " + consumers);
LOG.info("Consumers for " + destination.getPhysicalName() + " on " + broker + " : " + consumers);
if (expectedCount == ((Long)consumers).longValue()) {
result = true;
}
}
} catch (Exception ignoreAndRetry) {
}
return result;
}
@ -280,15 +280,15 @@ public class NetworkBrokerDetachTest {
}
private boolean verifyDurableConsumerCount(final long expectedCount, final String brokerName) throws Exception {
private boolean verifyDurableConsumerCount(final long expectedCount, final BrokerService broker) throws Exception {
return Wait.waitFor(new Wait.Condition() {
public boolean isSatisified() throws Exception {
boolean result = false;
MBeanServerConnection mbsc = getMBeanServerConnection();
if (mbsc != null) {
Set subs = getMbeans(mbsc, brokerName, "Subscription", "active=false,*");
Set subs = broker.getManagementContext().queryNames(getObjectName(broker.getBrokerName(), "Subscription", "active=false,*"), null);
if (subs != null) {
LOG.info("inactive durable subs on " + brokerName + " : " + subs);
LOG.info("inactive durable subs on " + broker + " : " + subs);
if (expectedCount == subs.size()) {
result = true;
}
@ -299,7 +299,6 @@ public class NetworkBrokerDetachTest {
});
}
private MBeanServerConnection getMBeanServerConnection() throws MalformedURLException {
final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
MBeanServerConnection mbsc = null;
@ -317,26 +316,6 @@ public class NetworkBrokerDetachTest {
}
private Set getMbeans(MBeanServerConnection mbsc, String brokerName, String type, String pattern) throws Exception {
Set obj = null;
try {
obj = mbsc.queryMBeans(getObjectName(brokerName, type, pattern), null);
} catch (InstanceNotFoundException ignored) {
LOG.warn("getAttribute ex: " + ignored);
}
return obj;
}
private Object getAttribute(MBeanServerConnection mbsc, String brokerName, String type, String pattern, String attrName) throws Exception {
Object obj = null;
try {
obj = mbsc.getAttribute(getObjectName(brokerName, type, pattern), attrName);
} catch (InstanceNotFoundException ignored) {
LOG.warn("getAttribute ex: " + ignored);
}
return obj;
}
private ObjectName getObjectName(String brokerName, String type, String pattern) throws Exception {
ObjectName beanName = new ObjectName(
"org.apache.activemq:BrokerName=" + brokerName + ",Type=" + type +"," + pattern

View File

@ -46,10 +46,9 @@ public class ManagedDurableSubscriptionTest extends org.apache.activemq.TestSupp
stopBroker();
startBroker();
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName inactiveSubscriptionObjectName = broker.getAdminView().getInactiveDurableTopicSubscribers()[0];
Object inactive = mbs.getAttribute(inactiveSubscriptionObjectName, "Active");
Object inactive = broker.getManagementContext().getAttribute(inactiveSubscriptionObjectName, "Active");
assertTrue("Subscription is active.", Boolean.FALSE.equals(inactive));
// activate
@ -58,14 +57,14 @@ public class ManagedDurableSubscriptionTest extends org.apache.activemq.TestSupp
ObjectName activeSubscriptionObjectName = broker.getAdminView().getDurableTopicSubscribers()[0];
Object active = mbs.getAttribute(activeSubscriptionObjectName, "Active");
Object active = broker.getManagementContext().getAttribute(activeSubscriptionObjectName, "Active");
assertTrue("Subscription is INactive.", Boolean.TRUE.equals(active));
// deactivate
connection.close();
connection = null;
inactive = mbs.getAttribute(inactiveSubscriptionObjectName, "Active");
inactive = broker.getManagementContext().getAttribute(inactiveSubscriptionObjectName, "Active");
assertTrue("Subscription is active.", Boolean.FALSE.equals(inactive));
}