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) {
|
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue