mirror of https://github.com/apache/activemq.git
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:
parent
44d6be4e33
commit
7a7b380def
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue