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) { if (timeout > 0) {
Thread.sleep(100); Thread.sleep(100);
} }
MBeanServerConnection mbsc = getMBeanServerConnection(); LOG.info("Query name: " + beanName);
if (mbsc != null) { mbeans = broker.getManagementContext().queryNames(beanName, null);
LOG.info("Query name: " + beanName); if (mbeans != null) {
mbeans = mbsc.queryMBeans(beanName, null); count = mbeans.size();
if (mbeans != null) { } else {
count = mbeans.size(); logAllMbeans(broker);
}
} }
} while ((mbeans == null || mbeans.isEmpty()) && expiryTime > System.currentTimeMillis()); } while ((mbeans == null || mbeans.isEmpty()) && expiryTime > System.currentTimeMillis());
@ -145,15 +144,10 @@ public class DuplexNetworkMBeanTest {
return count; return count;
} }
private MBeanServerConnection getMBeanServerConnection() throws MalformedURLException { private void logAllMbeans(BrokerService broker) throws MalformedURLException {
final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
MBeanServerConnection mbsc = null;
try { try {
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
mbsc = jmxc.getMBeanServerConnection();
// trace all existing MBeans // trace all existing MBeans
Set<?> all = mbsc.queryMBeans(null, null); Set<?> all = broker.getManagementContext().queryNames(null, null);
LOG.info("Total MBean count=" + all.size()); LOG.info("Total MBean count=" + all.size());
for (Object o : all) { for (Object o : all) {
ObjectInstance bean = (ObjectInstance)o; ObjectInstance bean = (ObjectInstance)o;
@ -162,6 +156,5 @@ public class DuplexNetworkMBeanTest {
} catch (Exception ignored) { } catch (Exception ignored) {
LOG.warn("getMBeanServer ex: " + 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", 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 ..."); LOG.info("Stopping Consumer on the networked broker ...");
@ -148,7 +148,7 @@ public class NetworkBrokerDetachTest {
consConn.close(); consConn.close();
// We should have 0 consumer for the queue on the local broker // 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); registerDurableConsumer(broker, counter);
assertTrue("got expected consumer count from local broker mbean within time limit", 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", 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); sendMessageTo(destination, broker);
@ -194,14 +194,14 @@ public class NetworkBrokerDetachTest {
// expect similar after restart // expect similar after restart
assertTrue("got expected consumer count from local broker mbean within time limit", 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 // a durable sub is auto bridged on restart unless dynamicOnly=true
assertTrue("got expected consumer count from network broker mbean within time limit", 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 broker", verifyDurableConsumerCount(0, broker));
assertTrue("got no inactive subs on other broker", verifyDurableConsumerCount(0, REM_BROKER_NAME)); assertTrue("got no inactive subs on other broker", verifyDurableConsumerCount(0, networkedBroker));
assertTrue("Got two more messages after restart", verifyMessageCount(4, count)); assertTrue("Got two more messages after restart", verifyMessageCount(4, count));
TimeUnit.SECONDS.sleep(1); TimeUnit.SECONDS.sleep(1);
@ -259,20 +259,20 @@ public class NetworkBrokerDetachTest {
} }
// JMX Helper Methods // 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() { return Wait.waitFor(new Wait.Condition() {
public boolean isSatisified() throws Exception { public boolean isSatisified() throws Exception {
boolean result = false; boolean result = false;
MBeanServerConnection mbsc = getMBeanServerConnection(); try {
if (mbsc != null) {
// We should have 1 consumer for the queue on the local broker // 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) { 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()) { if (expectedCount == ((Long)consumers).longValue()) {
result = true; result = true;
} }
} }
} catch (Exception ignoreAndRetry) {
} }
return result; 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() { return Wait.waitFor(new Wait.Condition() {
public boolean isSatisified() throws Exception { public boolean isSatisified() throws Exception {
boolean result = false; boolean result = false;
MBeanServerConnection mbsc = getMBeanServerConnection(); MBeanServerConnection mbsc = getMBeanServerConnection();
if (mbsc != null) { 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) { if (subs != null) {
LOG.info("inactive durable subs on " + brokerName + " : " + subs); LOG.info("inactive durable subs on " + broker + " : " + subs);
if (expectedCount == subs.size()) { if (expectedCount == subs.size()) {
result = true; result = true;
} }
@ -299,7 +299,6 @@ public class NetworkBrokerDetachTest {
}); });
} }
private MBeanServerConnection getMBeanServerConnection() throws MalformedURLException { private MBeanServerConnection getMBeanServerConnection() throws MalformedURLException {
final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi"); final JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
MBeanServerConnection mbsc = null; 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 { private ObjectName getObjectName(String brokerName, String type, String pattern) throws Exception {
ObjectName beanName = new ObjectName( ObjectName beanName = new ObjectName(
"org.apache.activemq:BrokerName=" + brokerName + ",Type=" + type +"," + pattern "org.apache.activemq:BrokerName=" + brokerName + ",Type=" + type +"," + pattern

View File

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