added patch with addition of getter for link stealing enabled and a unit
test.
This commit is contained in:
Timothy Bish 2014-07-22 17:53:39 -04:00
parent 9e139017e4
commit d223ea979f
4 changed files with 125 additions and 7 deletions

View File

@ -66,4 +66,10 @@ public interface Connector extends Service {
* @return true/false if link stealing is enabled * @return true/false if link stealing is enabled
*/ */
boolean isAllowLinkStealing(); boolean isAllowLinkStealing();
/**
* @return The comma separated string of regex patterns to match
* broker names for cluster client updates
*/
String getUpdateClusterFilter();
} }

View File

@ -27,6 +27,7 @@ public class ConnectorView implements ConnectorViewMBean {
this.connector = connector; this.connector = connector;
} }
@Override
public void start() throws Exception { public void start() throws Exception {
connector.start(); connector.start();
} }
@ -35,6 +36,7 @@ public class ConnectorView implements ConnectorViewMBean {
return getBrokerInfo().getBrokerName(); return getBrokerInfo().getBrokerName();
} }
@Override
public void stop() throws Exception { public void stop() throws Exception {
connector.stop(); connector.stop();
} }
@ -50,6 +52,7 @@ public class ConnectorView implements ConnectorViewMBean {
/** /**
* Resets the statistics * Resets the statistics
*/ */
@Override
public void resetStatistics() { public void resetStatistics() {
connector.getStatistics().reset(); connector.getStatistics().reset();
} }
@ -57,6 +60,7 @@ public class ConnectorView implements ConnectorViewMBean {
/** /**
* enable statistics gathering * enable statistics gathering
*/ */
@Override
public void enableStatistics() { public void enableStatistics() {
connector.getStatistics().setEnabled(true); connector.getStatistics().setEnabled(true);
} }
@ -64,15 +68,17 @@ public class ConnectorView implements ConnectorViewMBean {
/** /**
* disable statistics gathering * disable statistics gathering
*/ */
@Override
public void disableStatistics() { public void disableStatistics() {
connector.getStatistics().setEnabled(false); connector.getStatistics().setEnabled(false);
} }
/** /**
* Returns true if statistics is enabled * Returns true if statistics is enabled
* *
* @return true if statistics is enabled * @return true if statistics is enabled
*/ */
@Override
public boolean isStatisticsEnabled() { public boolean isStatisticsEnabled() {
return connector.getStatistics().isEnabled(); return connector.getStatistics().isEnabled();
} }
@ -80,8 +86,54 @@ public class ConnectorView implements ConnectorViewMBean {
/** /**
* Returns the number of current connections * Returns the number of current connections
*/ */
@Override
public int connectionCount() { public int connectionCount() {
return connector.connectionCount(); return connector.connectionCount();
} }
/**
* Returns true if updating cluster client URL is enabled
*
* @return true if update cluster client URL is enabled
*/
@Override
public boolean isUpdateClusterClients() {
return this.connector.isUpdateClusterClientsOnRemove();
}
/**
* Returns true if rebalancing cluster clients is enabled
*
* @return true if rebalance cluster clients is enabled
*/
@Override
public boolean isRebalanceClusterClients() {
return this.connector.isRebalanceClusterClients();
}
/**
* Returns true if updating cluster client URL when brokers are removed is
* enabled
*
* @return true if update cluster client URL when brokers are removed is
* enabled
*/
@Override
public boolean isUpdateClusterClientsOnRemove() {
return this.connector.isUpdateClusterClientsOnRemove();
}
/**
* @return The comma separated string of regex patterns to match broker
* names for cluster client updates
*/
@Override
public String getUpdateClusterFilter() {
return this.connector.getUpdateClusterFilter();
}
@Override
public boolean isAllowLinkStealingEnabled() {
return this.connector.isAllowLinkStealing();
}
} }

View File

@ -22,13 +22,13 @@ public interface ConnectorViewMBean extends Service {
@MBeanInfo("Connection count") @MBeanInfo("Connection count")
int connectionCount(); int connectionCount();
/** /**
* Resets the statistics * Resets the statistics
*/ */
@MBeanInfo("Resets the statistics") @MBeanInfo("Resets the statistics")
void resetStatistics(); void resetStatistics();
/** /**
* enable statistics gathering * enable statistics gathering
*/ */
@ -37,16 +37,51 @@ public interface ConnectorViewMBean extends Service {
/** /**
* disable statistics gathering * disable statistics gathering
*/ */
@MBeanInfo("Disables statistics gathering") @MBeanInfo("Disables statistics gathering")
void disableStatistics(); void disableStatistics();
/** /**
* Returns true if statistics is enabled * Returns true if statistics is enabled
* *
* @return true if statistics is enabled * @return true if statistics is enabled
*/ */
@MBeanInfo("Statistics gathering enabled") @MBeanInfo("Statistics gathering enabled")
boolean isStatisticsEnabled(); boolean isStatisticsEnabled();
/**
* Returns true if link stealing is enabled on this Connector
*
* @returns true if link stealing is enabled.
*/
@MBeanInfo("Link Stealing enabled")
boolean isAllowLinkStealingEnabled();
/**
* @return true if update client connections when brokers leave/join a cluster
*/
@MBeanInfo("Update client URL's when brokers leave/join a custer enabled")
boolean isUpdateClusterClients();
/**
* @return true if clients should be re-balanced across the cluster
*/
@MBeanInfo("Rebalance clients across the broker cluster enabled")
boolean isRebalanceClusterClients();
/**
* @return true if clients should be updated when
* a broker is removed from a broker
*/
@MBeanInfo("Update clients when a broker is removed from a network enabled.")
boolean isUpdateClusterClientsOnRemove();
/**
* @return The comma separated string of regex patterns to match
* broker names for cluster client updates
*/
@MBeanInfo("Comma separated list of regex patterns to match broker names for cluster client updates.")
String getUpdateClusterFilter();
} }

View File

@ -1361,6 +1361,31 @@ public class MBeanTest extends EmbeddedBrokerTestSupport {
session.close(); session.close();
} }
public void testConnectorView() throws Exception {
ConnectorViewMBean connector = getProxyToConnectionView("tcp");
assertNotNull(connector);
assertFalse(connector.isRebalanceClusterClients());
assertFalse(connector.isUpdateClusterClientsOnRemove());
assertFalse(connector.isUpdateClusterClients());
assertFalse(connector.isAllowLinkStealingEnabled());
}
protected ConnectorViewMBean getProxyToConnectionView(String connectionType) throws Exception {
ObjectName connectorQuery = new ObjectName(
"org.apache.activemq:type=Broker,brokerName=localhost,connector=clientConnectors,connectorName="+connectionType+"_//*");
Set<ObjectName> results = broker.getManagementContext().queryNames(connectorQuery, null);
if (results == null || results.isEmpty() || results.size() > 1) {
throw new Exception("Unable to find the exact Connector instance.");
}
ConnectorViewMBean proxy = (ConnectorViewMBean) broker.getManagementContext()
.newProxyInstance(results.iterator().next(), ConnectorViewMBean.class, true);
return proxy;
}
public void testDynamicProducers() throws Exception { public void testDynamicProducers() throws Exception {
connection = connectionFactory.createConnection(); connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);